2002-07-11 Mike Kestner * glib/SList.cs : fix a couple DllImports 2002-07-11 Duncan Mak * glue/Makefile.am: Added dialog.c and colorseldialog.c * glue/dialog.c: * gtk/Dialog.custom: C# glue for getting more fields from a GtkDialog. * glue/colorseldialog.c: * gtk/ColorSelectionDialog.custom: C# glue for getting more fields from a ColorSelectionDialog. 2002-07-09 Mike Kestner * generator/ClassBase.cs : handle overloaded method hash collision * generator/SignalHandler.cs : generate *Handler delegates. stub *Args * parser/Gtk.metadata : add *Defaults method renaming 2002-07-08 Mike Kestner * glue/Makefile.in : s/BASE_SOURCES/BASESOURCES * parser/gapi_pp.pl : handle nested #if/#endif in ignored #if's * parser/makefile : make gtkapi.xml depend on gapi*.pl 2002-07-06 Rachel Hestilow * generator/Parameters.cs (Initialize): Initialize error to zero. 2002-07-06 Rachel Hestilow * ObjectGen.cs: Support static string elements. Do not generate Ctors or Signals if it is not a GObject. * parser/gapi2xml.pl: Add stock defines. 2002-07-05 Rachel Hestilow * glue/Makefile.am: Make this work cleanly, with all automake. 2002-07-05 Rachel Hestilow * configure.in: Conditionally compile Gnome. * parser/gapi_pp.pl: Handle line breaks in function declarations. * parser/gapi2xml.pl: Handle non-literals in property definitions. * glue/program.c: Added. * glue/Makefile.am: Add program.c (conditionally compiled). Update INCLUDES. * gnome/Makefile.in: Conditionally compile this. * gnome/Program.custom, Modules.cs: Added. * samples/Makefile.in: Conditionally compile gnome example. * samples/GnomeHelloWorld.cs: Use Gnome.Program. 2002-07-01 Rachel Hestilow * generator/gtkapi.xml: * parser/build.pl: Fix to use 3.0 (accidentally reverted in last commit). * generator/SymbolTable.cs (simple_types): Map gssize and gsize. * parser/Gdk.metadata: Tag PixbufLoader.Write's data parameter as array. 2002-07-01 Rachel Hestilow * generator/gtkapi.xml: * parser/build.pl: Qualify gnome lib names; this is needed because of debian/LSB policy. 2002-06-26 Duncan Mak * generator/gtkapi.xml: * parser/build.pl: Point to 'gtkhtml-3.0' instead of gtkhtml-2. 2002-06-26 Rachel Hestilow * 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! 2002-06-26 Rachel Hestilow * parser/Gtk.metadata: Change gtk_label_new to be the preferred constructor. * gdk/Event.cs: Add "IsValid" property (sometimes NULL events get sent in signals). * sample/GnomeHelloWorld.cs: Check to make sure iconlist event is valid. 2002-06-26 Rachel Hestilow * 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. 2002-06-25 Mike Kestner * generator/gtkapi.xml : lots of fixes, plus GtkHTML! * parser/Gtk.metadata : add a bunch of renames. * parser/build.pl : Add the gtkhtml parse. * parser/README : module list to parse 2002-06-25 Mike Kestner * parser/gapi2xml.pl : some GtkHTML related parsing tweaks. 2002-06-25 Rachel Hestilow * makefile: back out a premature add of gnome 2002-06-25 Rachel Hestilow * doc/: Added the makeshift doc generation toolchain. 2002-06-25 Mike Kestner * configure.in : back out a premature add of gnome/Makefile.in 2002-06-24 Rachel Hestilow * glib/UnwrappedObject.cs: New class which holds an IntPtr. This is used in Value so that we can retrieve the IntPtr itself for an object property. * glib/Value.cs: Add UnwrappedObject cast operator. * glib/Property.cs: If the retrieved value is an object, and there is no wrapper object, create a new one. 2002-06-24 Rachel Hestilow * gtk/FileSelection.custom: Remove random cruft that was at the beginning of this file. 2002-06-24 Rachel Hestilow * 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). 2002-06-24 Duncan Mak * glue/fileselection.c: New file, defines accessor functions to fields inside a GtkFileSelection. * gtk/FileSelection.custom: C# glue that makes use of new accessor functions defined in fileselection.c. * glue/Makefile.am: Added fileselection.c 2002-06-23 Rachel Hestilow * 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. 2002-06-23 Rachel Hestilow * 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. 2002-06-22 Mike Kestner * */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 2002-06-21 Michael Meeks * sample/Makefile.in: re-factor slightly. 2002-06-21 Mike Kestner * gtk/*akefile* : lose the gdk-imaging-sharp refs 2002-06-21 Mike Kestner * configure.in : remove gdk.imaging/Makefile creation. 2002-06-21 Mike Kestner * 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. 2002-06-21 Rachel Hestilow * 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. 2002-06-21 Mike Kestner * */makefile.win32 : add /doc flags * */.cvsignore : ignore .xml files 2002-06-21 Mike Kestner * gdk.imaging/Makefile.in : add a missing -L * gtk/Makefile.in : add a missing -L * generator/Method.cs : Add some docs stubbage 2002-06-20 Mike Kestner * generator/Parameters.cs : GError handling overhaul * generator/SymbolTable.cs : map GError to IntPtr * glib/GException.cs : Refactor to use glue. * glue/Makefile.am : add the error.c file. * glue/error.c : glue for error message string access * gtk/makefile.win32 : ref the gdk-imaging-sharp assembly 2002-06-19 Mike Kestner * generator/Parameters.cs : csc build error fixes 2002-06-14 Rachel Hestilow * glib/GException.cs: Added. * generator/Ctor.cs, Method.cs: Tag function as unsafe if it throws an exception. Call parms.HandleException. * generator/Paramaters.cs: Add property ThrowsException (based on a trailing GError**). If ThrowsException, mask GError in the signature, initialize a GError in Initialize, and add new method HandleException to throw an exception if error != null. * generator/SymbolTable.cs: Add gdk-pixbuf DLL, and GError type. * gdk.imaging, gdk.imaging/Makefile.in, gdk.imaging/makefile.win32: Added. * configure.in, Makefile, makefile.win32: Build gdk.imaging. * gtk/Makefile.in, gtk/makefile.win32: Link against gdk.imaging. * parser/gapi2xml.pl: Support namespace renaming. * parser/build.pl: Build gdk-pixbuf as gdk.imaging. 2002-06-09 Rachel Hestilow * 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. 2002-06-06 Mike Kestner * glib/Timeout.cs : new Timeout class with Add() and TimeoutHandler delegate. 2002-06-05 Mike Kestner * 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. 2002-05-29 Mike Kestner * */Makefile.in : remove generated source in clean target. 2002-05-29 Mike Kestner * generator/CallbackGen.cs : Fix build breaker from refactoring. * sample/Makefile.in : Build the menu sample on linux. 2002-05-28 Mike Kestner * makefile : add separate targets for native and platform independent products per request from debian packager Alp Toker 2002-05-26 Mike Kestner * generator/Parser.cs : Implement Alias node parsing. * generator/SymbolTable.cs : resolve aliased types. 2002-05-23 Mike Kestner * 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. 2002-05-13 Joe Shaw * sample/Makefile.in: Use -L compiler flags and specify all of the assemblies to link against. 2002-05-13 Joe Shaw * gtk/Makefile.in: Add the System.Drawing assembly to the compiler command-line. 2002-05-08 Joe Shaw * generator/ObjectGen.cs (GenProperty): And uncomment it out because the compiler bug is fixed. 2002-05-08 Joe Shaw * generator/ObjectGen.cs (GenProperty): Comment the last checkin out because it exposes a compiler bug. (GenSignal): Back this change out. 2002-05-08 Joe Shaw * */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. 2002-05-07 Mike Kestner * generator/SymbolTable.cs : map char to string. 2002-05-07 Mike Kestner * */Makefile.in : Add clean targets. Add -L parms. 2002-05-06 Mike Kestner * generator/ObjectGen.cs : When generating a ctor(void) for subclassing purposes, mark it protected, not public. Thanks to Miguel for reporting this bug. 2002-05-03 Mike Kestner * sample/makefile.win32 : add the Menu sample * sample/Menu.cs : A menu and box packing sample. 2002-05-02 Mike Kestner * 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. 2002-05-02 Mike Kestner * 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. 2002-04-25 Mike Kestner * autogen.sh : simple config for the glue build * configure.in : simple config for the glue build * makefile : add glue dir to build * glib/SList.cs : Fix some leakage. * glue/value.c : a helper function for heap alloc of GValues * glue/Makefile.am : build for libgtksharpglue 2002-04-19 Mike Kestner * glib/SList.cs : A more sane approach. * glib/Value.cs : Marshal strings directly with pinvoke 2002-04-18 Joe Shaw * */makefile: Allow a different MCS to be passed in on the make command line. 2002-04-09 Mike Kestner * tagging for gtk-sharp-0.1 2002-04-09 Mike Kestner * sample/ButtonApp.cs : Get it to run on linux. 2002-04-04 Mike Kestner * generator/CallbackGen.cs : Unstubify. * generator/SymbolTable.cs : qualify some simple typenames. 2002-03-29 Mike Kestner * */makefile : add make linux target. 2002-03-29 Mike Kestner * generator/SymbolTable.cs (Trim): revamp TrimEnd call. 2002-03-28 Mike Kestner * 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 2002-03-26 Mike Kestner * generator/SignalHandler.cs : Use Path.DirectorySeparatorChar. 2002-03-25 Mike Kestner * 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. 2002-03-24 Mike Kestner * generator/*Gen.cs : Use Path.DirectorySeparatorChar. * generator/Parser.cs : better debug for unexpected types. * generator/SymbolTable.cs : Use linux library names. 2002-03-07 Mike Kestner * generator/CodeGenerator.cs : Refactor generatable iteration. * generator/SymbolTable.cs : Add Generatables property to expose complex_types.Values. 2002-03-02 Mike Kestner * makefile : add linux build. * generator/makefile : add linux build. 2002-02-19 Mike Kestner * 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. 2002-02-19 Mike Kestner * generator/Statistics.cs : New. Gathers stats about generation. * generator/*.cs : Hook in the stat counters. 2002-02-18 Mike Kestner * generator/StructBase.cs (GenCtor): StudCapsify static method names. * generator/SymbolTable.cs (Trim): strip const- prefix. * sample/ButtonApp.cs (Window_delete): handle RetVal. 2002-02-17 Mike Kestner * generator/StructBase.cs (MangleName): add object and event. * parser/gapi2xml.pl : Handle embedded callback declarations in method parameter lists. 2002-02-15 Mike Kestner * 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. 2002-02-14 Mike Kestner * 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. 2002-02-10 Mike Kestner * 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. 2002-02-09 Mike Kestner * generator/StructBase.cs (GenMethod): Add handle arg to paramless method call and extern. 2002-02-08 Mike Kestner * 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. 2002-02-06 Mike Kestner * 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. 2002-02-02 Mike Kestner * 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. 2002-01-17 Mike Kestner * 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 bugs. 2002-01-16 Mike Kestner * 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. 2002-01-11 Mike Kestner * 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. 2002-01-10 Mike Kestner * 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. 2002-01-08 Mike Kestner * 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. 2002-01-08 Mike Kestner * 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. 2002-01-07 Mike Kestner * 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. 2002-01-06 Mike Kestner * */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. 2002-01-06 Mike Kestner * 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. 2002-01-05 Mike Kestner * generator/SymbolTable.cs : First pass at simple_types hash. 2002-01-05 Mike Kestner * generator/*.cs : Move into GtkSharp.Generation namespace. * generator/CodeGenerator.cs (Main): Add usage check. Add SymbolTable. * generator/EnumGen.cs (QualifiedName): New. (Generate): Add SymbolTable to signature. * generator/IGeneratable : Add QualifiedName prop and update Generate signature. * generator/Parser.cs : Switch from plain Hashtable to SymbolTable. (Parse): Replaces the Types property and returns a SymbolTable. * generator/StructBase.cs : New base class to derive struct and object types. Initial implementation of protected GenField method and ctor. * generator/StructGen.cs : New non-object struct type generatable. * generator/SymbolTable.cs : New. Manages complex types hash and a simple types hash. Will provide generic lookup interface. 2002-01-04 Mike Kestner * makefile : switch to the new generator. * generator/CodeGenerator.cs : New main program class. * generator/IGeneratable.cs : Interface for generation methods/props. * generator/EnumGen.cs : Subclass of IGeneratable for enums. * generator/Parser.cs : The XML parser. * parser/gapi_pp.pl : A source preprocessor for api extraction. * parser/gapi2xml.pl : Produces Xml document for GObject based APIs. 2001-12-31 Mike Kestner * codegen/defs-parse.pl : Fix EOL handling for DOS \r\n patterns as reported by David Dawkins. 2001-12-17 Mike Kestner * makefile : Add the pango subdir. * codegen/defs-parse.pl : Add a buttload of type entries to %maptypes and %marshaltypes. Ignore props, sigs, and methods for non GObject types. Turn on all classes. Major beefup of struct generation. Start to use the new sighandlers. Rip out const- types. Handle Unicode string marshalling. * codegen/gdk-structs.defs : Regenerated. * codegen/get-structs-from-source.pl : Handle typedef x y; Suppress structs with "Private" in the typename. Handle multiple levels of typedeffing. Handle function pointers. Suppress comments sanely. * codegen/gtk-props.defs : Fill out the rest of the classes. * codegen/gtk-signals.defs : Fill out the rest of the classes. * codegen/gtk-structs.defs : First pass. Hacked obscenely. * codegen/hardcoded.defs : Kill. No hardcoding needed anymore. * codegen/makefile : Use the new defs files. * codegen/pango.defs : Ripped from pygtk. * codegen/pango-structs.defs : New struct defs gen'd with my tool. * codegen/pango-types.defs : Ripped from pygtk. * gdk/makefile : Add the pango-sharp.dll ref. * gdk/SimpleEvent.cs : Killed. * glib/SimpleSignal.cs : Killed. * gtk/makefile : Add the pango-sharp.dll ref. * gtk/Widget.cs : Killed. * pango/makefile : New build dir. 2001-12-11 Mike Kestner * codegen/get-structs-from-source.pl : New define-struct extractor. * codegen/gdk-structs.defs : generated defs with a few hand edits. 2001-12-04 Mike Kestner * codegen/defs-parse.pl : Index %structs by cname, not name. Derive structs from class to facilitate marshalling since Value types can't use the Marshal.PtrToStructure method. Generate StructLayout attr for struct class defs. Stuff the signal args into a SignalArgs inst to pass to the EventHandlers. * sample/HelloWorld.cs : some cleanup and temporary signal playcode. 2001-12-01 Mike Kestner * makefile : Make ROOT /cygdrive/, not //. 2001-11-25 Mike Kestner * codegen/defs-parse.pl (get_sighandler): gen the helper class. arg passing and return value handling need beefing up still. * glib/SignalArgs.cs : New arg passing/ return value handling class. * glib/SignalCallback.cs (dtor): kill, this will be gen'd in the subclasses. (ctor): prune down to two params. 2001-11-24 Mike Kestner * codegen/defs-parse.pl : mkdir the glib/generated dir. (gen_signal): Call new get_sighandler sub. Doesn't use the returned value yet. s/event/ev3nt on arg names. (get_sighandler): new sub to lookup or gen a signal helper/delegate. Only generates the delegate so far. * codegen/hardcoded.defs : Added a stub for Gdk.Event. * gdk/Event.cs : Killed, now a generated struct. * gdk/SimpleEvent.cs (SimpleEventCallback): Use Marshal.PtrToStructure to create the Event, not a ctor(IntPtr). * glib/SignalCallback.cs : New abstract base class for signal helpers. 2001-11-14 Mike Kestner * codegen/defs-parse.pl : Add System.Collections to usings. s/event/signal. Add gen_signal sub and call it from gen_object. Mangle method names that collide with signal names by prepending Emit to the method name. * codegen/makefile : add gtk-signals.defs to the build. 2001-11-13 Mike Kestner * codegen/get-signals-from-source.pl : My own little perl signal parser. * codegen/gtk-signals.defs : Ripped the GtkWindow signals into here to goof with. 2001-11-10 Mike Kestner * codegen/defs-parse.pl : Fix String prop generation code. * gtk/Window.custom : Fix ctor param casting error. 2001-11-09 Mike Kestner * codegen/defs-parse.pl : Use the @ctors list to determine if a class is abstract. There is an abstract indicator in the new defs format description, but it doesn't appear in the defs files currently. This method should be reliable though, even in the long term. Use the same check to determine if ctor(IntPtr obj) should be gen'd. 2001-11-09 Mike Kestner * codegen/defs-parse.pl : Now genning Window, AccelGroup, Bin, and GdkPixbuf classes to peel the csc error onion. Explicitly add GObject to the "exists ($objects{...})" branches, since GObject is a hard coded Class. 2001-11-08 Mike Kestner * codegen/defs-parse.pl : Build a structs hash and gen the structs after the first pass of the defs. For structs and functions, mangle the 100s of params/fields named object to objekt. Insert using stmnts for structs too. * codegen/hardcoded.defs : Add GtkAccelEntry struct. 2001-11-07 Mike Kestner * codegen/defs-parse.pl (gen_object): Insert using statements. Insert class members from corresponding .custom file. * gtk/Window.custom : Renamed file from Window.cs. Removed all the automatically generated members. This will be the mechanism used to improve upon the mechanically generated binding. 2001-11-05 Mike Kestner * codegen/defs-parse.pl (gen_object): Generate a ctor (IntPtr obj) for every object. This is a wrapper constructor for use by an Object manager which will be called by GLib.Object.GetObject eventually to wrap raw GObject pointers returned by methods/props. 2001-11-04 Mike Kestner * codegen/defs-parse.pl : struct generation. Added float and double type mapping entries. * codegen/hardcoded.defs : GdkGeometry definition. define-struct doesn't appear to be supported in the current defs files. This file will be used for manual definition of unsupported defs. * codegen/makefile : add hardcoded.defs. 2001-11-02 Mike Kestner * codegen/defs-parse.pl : define-struct detection. Partial ctor support. Still need to deal with ctor signiature collisions. Refactored gen_method to share get_param_strings with ctors. 2001-10-30 Mike Kestner * 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. 2001-10-25 Mike Kestner * glib/Object.cs : Added Get|SetProperty methods for Object properties. 2001-10-25 Mike Kestner * codegen/get-props-from-source.pl : Temporary (possibly) defs generator for props. Will probably kill this when the official defs support props. * codegen/defs-parse.pl : Added object-based aggregation of defs. Generate the class shells, methods, and props. * codegen/gdk-types.defs : ripped from pygtk. * codegen/gtk.defs : ripped from pygtk. * codegen/gtk-props.defs : some props defs. * codegen/makefile : add the new defs files. 2001-10-11 Mike Kestner * makefile : Add the codegen directory * codegen/defs-parse.pl : Moved here from topdir and updated to parse the new defs format for enums and flags. * codegen/gtk-types.defs : Borrowed from pygtk. * codegen/makefile : new * gtk/makefile : remove generation step. * gtk/gtk.defs : removed, now in codegen dir. 2001-10-07 Mike Kestner * gtk/Button.cs : Some nomenclature changes. s/EmitClicked/Click, etc. We need a consistent way to deal with naming clashes in gtk's method and signal namespaces. When clashes exist, events will be made past tense and methods to programatically emit events will be the present tense (e.g. Clicked event and Click method). 2001-10-07 Mike Kestner * 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. 2001-10-06 Mike Kestner * gtk/Button.cs : Implemented 3 constructors, 5 methods, 4 properties, and 6 signals. Button API is 100% implemented. Need to implement some Container methods to be able to complete testing. 2001-10-05 Mike Kestner * defs-parse.pl : A little automation for the binding. The enums and flags can be painlessly generated from defs files. * gtk/makefile : use defs-parse.pl to produce generated.cs. * gtk/.cvsignore : hush generated.cs * gtk/gtk.defs : unceremoniously ripped from gtk+ HEAD. * gtk/Window.cs : Killed the WindowType enum which is now generated. 2001-10-04 Mike Kestner * glib/SimpleSignal.cs : Reworked to parallel SimpleEvent. 2001-10-04 Mike Kestner * gtk/Widget.cs : Implemented all the bool, string, and int props. 2001-10-04 Mike Kestner * gdk/SimpleEvent.cs : Temporarily uncomment the GCHandle code until a layout is ready and exceptions can be avoided. * gtk/Widget.cs : Killed all the signal and event attaching methods. They never belonged here, and now they exist in the SimpleEvent. Add a Signals hash to hold refs of the Signal handlers. Killed default ctor and the dtor. The event Add/Remove methods now create a SimpleEvent, stuff it in the hash, and remove it when the last handler disappears. 2001-10-04 Mike Kestner * HACKING : Little bit of cleanup. * gdk/SimpleEvent.cs : Redesigned a bit. Docs. Replaced refcounting mechanism with an instance hash and added ctor/dtor. This class now completely encapsulates the signal attachment and forwarding mechanism for GdkEvent based signals. It attaches to the raw signal, maintains a ref to the associated event handler, and uses the static callback to activate the event handler on signal receipt. * sample/makefile : killed one last CSC explicit reference. 2001-10-02 Mike Kestner * 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. 2001-09-29 Mike Kestner * glib/Value.cs (int ctor): New constructor for int-based values. (int exp cast): New explicit cast operator for Val to int conversion. * gtk/Window.cs (DefaultHeight): New prop. (DefaultWidth): New prop. 2001-09-28 Mike Kestner * 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. 2001-09-28 Mike Kestner * glib/Value.cs (~Value): New destructor to release g_malloc'd space. (default ctor): New default ctor just mallocs without init. (String ctor): call default (bool ctor): call default (Init): New post construct initializer. (String exp cast): Replaces ToString method. (bool exp cast): New for bool extraction. (MarshalAs): Renamed prop was RawValue. 2001-09-27 Mike Kestner * 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. 2001-09-27 Mike Kestner *.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. 2001-09-25 Bob Smith * Added refcounts to delegates to make sure they can be unpined when not needed. 2001-09-21 Bob Smith * Signal system totally reworked. It should be stable now. * glib/Object.cs: Rewrote the way the wrapper is kept track of. 2001-09-20 Bob Smith * glib/ObjectManager.cs: Nuked. * glib/Object.cs: Keep track of wrapper. * gtk/Object: First stab at better signal system. Should reduce number of pins nessisary. 2001-09-19 Mike Kestner * 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. 2001-09-18 Bob Smith * glib/Object.cs : Moved parts of gtk/Object.cs here, and added static GetObject method and a Data property. * glib/ObjectManager.cs : New. * gtk/Object.cs : removed some GObject wrapping code. * gtk/*.cs : Updated namespace from GTK to Gtk. 2001-09-18 Bob Smith * gtk/Object.cs : Added EventList and Object properties. * gtk/Widget.cs : Updated event emission logic. * gtk/Window.cs : added Window(IntPtr) constructor. * gtk/Button.cs : New. Partial implementation of Button class. * gtk/Label.cs : New. Partial implementation of Label class. 2001-09-17 Mike Kestner Initial Import. Partial implementation of Object, Widget, Window, and Application classes and HelloWorld.cs sample app.