* generator/CallbackGen.cs : use ReturnValue and more of Parameter.
* generator/GenBase.cs : remove unused NSElem prop.
svn path=/trunk/gtk-sharp/; revision=38115
* generator/AliasGen.cs : derive from SimpleBase.
* generator/ConstStringGen.cs : derive from SimpleBase.
* generator/GObjectGen.cs : kill. now uses ManualGen.
* generator/GStringGen.cs : kill. now uses MarshalGen.
* generator/GUnicharGen.cs : kill. now uses MarshalGen.
* generator/LPGen.cs : derive from SimpleGen.
* generator/Makefile.am : update source files.
* generator/ManualGen : make this general for handle types.
* generator/MarshalGen : new CallByName/FromNative formatter class.
* generator/SymbolTable.cs : needed some reorganizing and some
restructuring of types to use MarshalGen.
* generator/TimeTGen.cs : kill. now uses MarshalGen.
svn path=/trunk/gtk-sharp/; revision=38109
* generator/Makefile.am : add new file.
* generator/SimpleBase.cs : new class for non-generated type mappers.
* generator/*Gen.cs : first refactoring of "Simple" generatable types.
Derive them all from SimpleBase. More to come.
svn path=/trunk/gtk-sharp/; revision=38097
* generator/*Gen.cs : implement IGeneratable fully on GenBase
with abstract methods where necessary to refactor a ton of redundant
code.
svn path=/trunk/gtk-sharp/; revision=38091
* generator/CodeGenerator.cs:
* generator/ManagedCallString.cs:
* generator/Property.cs: Remove unused vars
* generator/Method.cs (GetHashCode): have to implement this since
we're overriding Equals.
* generator/CallbackGen.cs: print a message when generating a
broken struct-returning callback. (Currently affects
GtkSharp.TextSegSplitFuncNative and
GtkSharp.TextSegCleanupFuncNative)
* gdk/glue/device.c:
* gdk/glue/dragcontext.c: Add missing prototypes
* gtk/Gtk.metadata: Mark SeparatorToolItem.Draw "new". Re-rename
CheckMenuItem.Toggled to EmitToggled rather than Toggle, since
that's a better description of what it does.
* gtk/CheckMenuItem.custom: implement a "Toggle" method that does
what the documentation claims it does.
* gtk/NodeStore.cs: remove unused var
* gnome/Gnome.metadata: mark DateEdit.Flags, Dialog.Default, and
PropertyBox.State "new". Hide GnomePixmapEntry.GnomeEntry and
GnomePixmapEntry.GtkEntry since they do exactly the same thing as
the methods of the same names inherited from GnomeFileEntry.
* gnome/glue/canvas-proxy.c:
* gnome/glue/canvas-proxy.h:
* gnome/glue/canvas-proxy-marshal.c:
* gnome/glue/canvas-proxy-marshal.h:
* gnome/glue/canvas-proxy-marshal.list: Remove unused code
* gnome/glue/Makefile.am (libgnomesharpglue_2_la_SOURCES): update
* panelapplet/PanelApplet.metadata: mark PanelApplet.Flags "new"
* sample/CanvasExample.cs:
* sample/CustomCellRenderer.cs:
* sample/CustomNotebook.cs:
* sample/DrawingSample.cs:
* sample/Fifteen.cs:
* sample/GladeTest.cs:
* sample/GtkDemo/DemoHyperText.cs:
* sample/GtkDemo/DemoPixbuf.cs:
* sample/ScribbleXInput.cs: remove unused vars, use
GLib.Timeout.Add rather than the deprecated Gtk.Timeout.Add
svn path=/trunk/gtk-sharp/; revision=38043
* gdk/Gdk.metadata : mark a couple array params.
* generator/Field.cs : remove the MarshalAs hack. We have to
do something much more evil since MarshalAs can't hang.
* generator/ImportSignature.cs : deal with out LP(U)Gen params.
* generator/LPGen.cs : moved from SSizeTGen and generalized.
* generator/LPUGen.cs : moved from SizeTGen and generalized.
* generator/Makefile.am : update sources.
* generator/MethodBody.cs : deal with out LP(U)Gen params.
* generator/Parameters.cs : deal with out LP(U)Gen params.
* generator/SymbolTable.cs : make all longs and size_t types LP(U)Gens.
svn path=/trunk/gtk-sharp/; revision=37999
GLib.Marshaller.CharToGUnichar and .GUnicharToChar [#70704]
* generator/SymbolTable.cs (SymbolTable): add a GUnicharGen.
* generator/Makefile.am (sources): add GUnicharGen.cs
* parser/gapi2xml.pl (addPropElem): g_param_spec_unichar() has
type "gunichar" not "unichar".
* gtk/gtk-api.raw: Regen
* glib/Marshaller.cs: Import CharToGUnichar's glue method by the
right name
svn path=/trunk/gtk-sharp/; revision=37998
SetFoo methods if they aren't in the right form to be turned into
property accessors. (Causes 13 previously ignored methods to now
be wrapped. See doc/ChangeLog.)
* gtk/Gtk.metadata: Fix up a few of those newly-exposed methods
svn path=/trunk/gtk-sharp/; revision=37891
new methods to allow arbitrary setup and teardown code around the
managed call. When passing a type with "complicated" marshalling
requirements as a ref or out param, first assign the value to a
temporary variable (in Setup), then pass the temp as the ref or
out param (in ToString), and then assign the new value back to the
original argument (in Finish).
* generator/Signal.cs:
* generator/SignalHandler.cs: Update to generate correct glue for
signals with "ref" or "out" params. (#70566)
* generator/VirtualMethod.cs: Update for ManagedCallString change
* generator/IGeneratable.cs: add comments explaining what each
member does
* gtk/Gtk.metadata: mark Editable.InsertText's "position" arg
* pass-by-ref
* sample/Size.cs: connect to the SizeRequested event and override
it, to test/demo the changes
svn path=/trunk/gtk-sharp/; revision=37854
/*< private >*/ comments.
* parser/gapi2xml.pl: Use those comments to determine the
accessibility of struct/object fields, and set the "access"
attribute on fields with non-default accessibiliy (private for
structs, public for objects). Also, output a StudlyName for each
field as well as a c_name.
* */*-api.raw: Regen
* generator/Field.cs (StudlyName): Use the parser-generated studly
name rather than studlifying Name, which might have been mangled
to avoid conflicts with an all-lowercase keyword.
(Generate): Respect the access property on all field types rather
than always making certain types public. Don't bother outputting
wrapper properties for private fields, since the only code that
could use them is the generated code, which won't.
See doc/ChangeLog for the (very minimal) fallout from these
changes.
* en/Art/AlphaGamma.xml:
* en/Gtk/TextAttributes.xml (Refcount):
* en/Pango/GlyphString.xml (Space): these are now private
* en/Gda/XqlItem.xml:
* en/Glade/SignalInfo.xml:
* en/Gnome.Vfs/ModuleCallbackSaveAuthenticationIn.xml:
* en/Gnome.Vfs/ModuleCallbackFullAuthenticationIn.xml:
* en/Gnome.Vfs/ModuleCallbackFillAuthenticationIn.xml: rename
Objekt to Object.
* en/Atk/KeyEventStruct.xml: rename Str1ng to String
svn path=/trunk/gtk-sharp/; revision=37853
* doc/en/*/*.xml : docs for new GValue members and size_t changes.
* generator/SymbolTable.cs : add ssize_t and make size_t a UIntPtr
instead of the current broken int mapping on 64 bit platforms.
* gtkhtml/HTMLStream.custom : fix size_t related overload.
[fixes#69574]
svn path=/trunk/gtk-sharp/; revision=37223
* generator/StructGen.cs: Check to see if a GType is going to be
generated. If not, generate a GType.Pointer. This fixes bug
#70017.
* glib/TypeConverter.cs: Remove the .IsValueType check, as those
now have GType properties.
* gda/Gda.metadata: Change GdaValue.GType to GdaValue.GdaType.
* doc/en/Gda/Value.xml: Regenerated to reflect new API.
svn path=/trunk/gtk-sharp/; revision=36912
* generator/ObjectGen.cs: Move child property handling from
ClassBase to ObjectGen (as suggested by Mike) since it's only
used there
svn path=/trunk/gtk-sharp/; revision=36398
* generator/InterfaceGen.cs : beginnings of a real
implementation for GInterfaces. Not quite ready yet,
so it's not active in generation.
svn path=/trunk/gtk-sharp/; revision=36294
* generator/Makefile.am : add new file.
* generator/Method.cs : add Declaration property.
* generator/VirtualMethod.cs : new class to generate virtual
methods for Interfaces and objects. Unfinished.
svn path=/trunk/gtk-sharp/; revision=36292
* generator/*Gen.cs : add ToNativeReturnType to deal with
the g_free string nonsense in the virtual method case.
svn path=/trunk/gtk-sharp/; revision=36289
the
child properties for a given widget in a container, and generate
the child properties as properties on those classes.
* parser/gapi2xml.pl (addPropElem): don't prepend "child_" to
child prop names any more
* generator/ClassBase.cs (ClassBase): keep childprops separate
from properties
(GenChildProperties): create a subclass of Gtk.ContainerChild
containing the container type's child properties, and override
the
Container indexer to return that type.
* generator/ObjectGen.cs (Generate): call GenChildProperties
* generator/Property.cs:
* generator/ChildProperty.cs: Simplify these a bunch, since
* child
properties are now represented as C# properties as well. Also
add
[GLib.Property(cname)] and [Gtk.ChildProperty(cname)]
attributes.
* glib/Makefile.am (sources): add PropertyAttribute.cs
* glib/PropertyAttribute.cs: attribute used to label
GObject properties
* gtk/Makefile.am (sources): add ChildPropertyAttribute.cs
* gtk/gtk-api.raw: regenerate for parser changes (remove
"Child"/"child_" from child property names).
* gtk/ChildPropertyAttribute.cs: attribute used to label
GtkContainer child properties
* gtk/Container.custom: define the ContainerChild class, and an
indexer to return instances of it.
* doc/en/Gtk/: update for container child property change
svn path=/trunk/gtk-sharp/; revision=36284
that take the name of the type rather than an object/property
name pair; this way they work for both GObject properties and
GtkContainer child properties.
* glib/glue/value.c (gtksharp_value_create_from_type_name): glue
for that
* glib/Opaque.cs (GetOpaque): Fix this.
* generator/Property.cs (Generate): Use the new GLib.Value
constructors. (Fixes setting of enum-valued child properties.)
svn path=/trunk/gtk-sharp/; revision=36174
* generator/SymbolTable.cs: Add support for GDestroyNotify, so
that `gtk_cell_layout_set_cell_data_func' will be generated in
Gtk.ComboBox.
svn path=/trunk/gtk-sharp/; revision=36095
(Object(GType)): Mark this ctor Obsolete
* gtk/Gtk.metadata: disable the generated GType ctor on Gtk.Widget
* gtk/Widget.custom (Widget, CreateNativeObject,
Widget_ParentSet): Connect to our own ParentSet event from
CreateNativeObject and the GType ctor, and keep a static Hashtable
of parented widgets, so that adding a managed widget to a
container keeps both the GObject and the managed object alive.
* generator/ObjectGen.cs (GenCtors): handle the disable_gtype_ctor
flag. Also, mark GType ctors [Obsolete]
svn path=/trunk/gtk-sharp/; revision=35885
GtkContainer child properties
* generator/Property.cs:
* generator/ChildProperty.cs: make Property subclassable and add a
"ChildProperty" subclass.
* generator/Makefile.am (sources): add ChildProperty.cs
* generator/ClassBase.cs: handle "childprop" nodes by creating
ChildProperty objects.
* glib/Value.cs (explicit operator EnumWrapper): use
g_value_get_flags() rather than g_value_get_enum() when
appropriate.
* glib/glue/value.c (glibsharp_value_holds_flags): glue for that
* gtk/gtk-api.raw: regen to pick up child properties
* gtk/Gtk.metadata:
* gtk/Container.custom: hide the auto-generated
Gtk.Container.ChildGetProperty and implement a nicer one by hand.
* gtk/glue/container.c (gtksharp_container_child_get_property):
utility function to set up an appropriate GValue for us
svn path=/trunk/gtk-sharp/; revision=35702
if "disable_raw_ctor" is set on the opaque type.
* gtk/Gtk.metadata: Make GtkTargetList opaque (fixes a crash in
Gtk.Drag.Begin), hide the generated constructor and ref/unref
methods, and fix up the interpretation of AddTable.
* gtk/TargetList.custom (TargetList, ~TargetList): Implement the
suppressed constructors and add a finalizer, which handle
refcounting the underlying struct.
(Add, Find, Remove): convenience overloads that take string
instead of Gdk.Atom.
* gtk/Makefile.am (customs): add TargetList.custom
svn path=/trunk/gtk-sharp/; revision=35135
* generator/Signal.cs : use typeof instead of Type.GetType to
specify the event args type.
* glib/ObjectManager.cs : beef up the type lookup code using
Assembly.LoadWithPartialName to fix a very popular win32 bug.
[Fixes#61139 and friends] Thanks to John Luke for expert
patch testing on win32.
svn path=/trunk/gtk-sharp/; revision=32831
* doc/en/*/*.xml : update to remove Override* methods.
* generator/Signal.cs : make the Override* methods private. They
should not ever be called manually and it saves about 800 "do not
call this method" doc entries.
svn path=/trunk/gtk-sharp/; revision=29388