Commit graph

177 commits

Author SHA1 Message Date
Mike Kestner 6e56090cfc 2007-07-17 Mike Kestner <mkestner@novell.com>
* gtk/Gtk.metadata : map TreeModelFilter ctor param to prop to
	avoid subclass ctor exception. [Fixes #82115]

svn path=/trunk/gtk-sharp/; revision=82109
2007-07-17 15:46:56 +00:00
Mike Kestner b108f0142e 2007-04-17 Mike Kestner <mkestner@novell.com>
* gtk/Gtk.metadata : hide TreeModel.RowsReordered signal so we can do
	a correct implementation while maintaining compat with the existing 
	broken "NewOrder" parameter.
	* gtk/ListStore.custom : manual RowsReordered signal implementation.
	* gtk/RowsReorderedHandler.cs : manual implementation for preserve compat
	in the Args class. Adds NewChildOrder to replace the broken ChildOrder.
	* gtk/TreeModel.custom : manual RowsReordered signal declaration.
	* gtk/TreeModelFilter.custom : manual RowsReordered signal implementation.
	* gtk/TreeModelSort.custom : manual RowsReordered signal implementation.
	* gtk/TreeStore.custom : manual RowsReordered signal implementation.
	[Fixes #78512]

svn path=/trunk/gtk-sharp/; revision=75837
2007-04-17 17:42:58 +00:00
Mike Kestner d90a1ff3f5 mark an internal win32 api obsolete
svn path=/trunk/gtk-sharp/; revision=73647
2007-03-02 18:08:38 +00:00
Brad Taylor 90e207c45b 2007-03-01 Brad Taylor <brad@getcoded.net>
* gtk/Dialog.custom: obsolete old, improperly bound
	  SetAlternateButtonOrderFromArray.
	* gtk/Gtk.metadata: fix binding of the
	  gtk_dialog_set_alternate_button_order_from_array. [Fixes #80706]


svn path=/trunk/gtk-sharp/; revision=73614
2007-03-01 18:49:32 +00:00
Mike Kestner 2469ba16ef 2007-02-16 Mike Kestner <mkestner@novell.com>
* glib/Object.cs : switch to ToggleRefs for all items created with
	CreateNativeObject.  This gets all managed subclasses, with a little
	overhang into simple wrappers.
	* glib/ToggleRef.cs : new class to manage the weak to strong ref 
	transitions as a native object flips between shared and unshared
	ownership.
	* gtk/Object.custom : revamp of the Destroyed signal handling. 
	* gtk/Gtk.metadata : hide destroy signal so we can deal with it 
	manually. [Fixes the reopen note of #72018.]

svn path=/trunk/gtk-sharp/; revision=73023
2007-02-16 16:18:59 +00:00
Mike Kestner d224dd1cbc 2007-02-03 Mike Kestner <mkestner@novell.com>
* gtk/StatusIcon.custom : obsolete overload for backcompat on
	GetGeometry, and custom PresentMenu method to invoke new glue.
	* gtk/glue/statusicon.c : glue method to connect to gtk_menu_popup
	without having to go across the native/managed boundary multiple
	times using gtk_status_icon_position_menu wrapper.
	[Fixes #79500]

svn path=/trunk/gtk-sharp/; revision=72236
2007-02-03 17:55:23 +00:00
Mike Kestner 1d105a960b 2007-01-09 Mike Kestner <mkestner@novell.com>
* generator/CallbackGen.cs : add PersistUntilCalled method generation
	to the wrapper class.  Holds a GCHandle for the wrapper which is Freed
	when the delegate is invoked.
	* generator/MethodBody.cs : add "async" case for delegate scope.  Use
	this scope to identify a callback parameter that needs to persist 
	until the native side calls back.  Only valid for single-invoke
	callbacks.
	* gtk/Gtk.metadata : mark Print.RunPageSetupDialogAsync done_cb param
	with the new async scope.

svn path=/trunk/gtk-sharp/; revision=71767
2007-01-26 20:46:09 +00:00
Mike Kestner 7c0a6a4f9b 2006-08-07 Mike Kestner <mkestner@novell.com>
* gtk/Gtk.metadata : remainder of new API massaging for existing 
	types.
	* gtk/Printer.custom : new static method.
	* gtk/TextBuffer.custom : serialization API implementations.

svn path=/trunk/gtk-sharp/; revision=63448
2006-08-07 20:45:47 +00:00
Mike Kestner 6898b3b5d5 2006-08-07 Mike Kestner <mkestner@novell.com>
* gtk/Gtk.metadata : mark an out param in Style.LookupColor. 
	Some tweaks to duplicated label api.

svn path=/trunk/gtk-sharp/; revision=63440
2006-08-07 17:16:18 +00:00
Mike Kestner 64bddb3e2a 2006-08-07 Mike Kestner <mkestner@novell.com>
* gtk/Gtk.metadata : mark an out param in Style.LookupColor. 

svn path=/trunk/gtk-sharp/; revision=63432
2006-08-07 15:35:27 +00:00
Mike Kestner 9ad00bd861 2006-08-07 Mike Kestner <mkestner@novell.com>
* gtk/Gtk.metadata : markup for new Clipboard Rich text funcs. 
	* gtk/Clipboard.custom : manually implement RequestRichText and
	WaitForRichText methods to deal with array marshaling and delegate
	persistence.

svn path=/trunk/gtk-sharp/; revision=63430
2006-08-07 15:00:16 +00:00
Mike Kestner 98cf4082be 2006-08-04 Mike Kestner <mkestner@novell.com>
* gtk/Gtk.metadata : a few tweaks to the 2.10 API found in doc/
	audit pass.

svn path=/trunk/gtk-sharp/; revision=63378
2006-08-04 23:24:29 +00:00
Mike Kestner 636ff0bc8a 2006-08-01 Mike Kestner <mkestner@novell.com>
* gtk/Gtk.metadata : fix a couple of compat breaks against 2.8.
	* gtk/TreeModelFilter.cs : hand implement ConvertChildIterToIter
	to match the 2.8 version of the method.

svn path=/trunk/gtk-sharp/; revision=63271
2006-08-02 20:37:23 +00:00
Mike Kestner b912bb6afb 2006-07-14 Mike Kestner <mkestner@novell.com>
* sources/gtk-sharp-2.10-sources.xml : update to gtk+-2.10.0 
	and pango-1.13.3
	* sources/Makefile.am : ditto.
	* gtk/Gtk.metadata : some hides and renames to fix build.
	* gdk/gdk-api-2.10.raw : refresh.
	* gtk/gtk-api-2.10.raw : refresh.
	* pango/pango-api-2.10.raw : refresh.

svn path=/trunk/gtk-sharp/; revision=62598
2006-07-14 13:45:17 +00:00
Mike Kestner 2ac6bb5457 2006-05-10 Mike Kestner <mkestner@novell.com>
* bootstrap-2.10 : strap for the new 2.9.0 API.
	* generator/SymbolTable.cs : add GLib.InitiallyUnowned mapping.
	* glib/InitiallyUnowned.cs : new floating class "stub".
	* glib/Makefile.am : build new class.
	* gdk/gdk-api-2.10.raw: parse from 2.9.0
	* gtk/Gtk.metadata: cleanup conflicts in 2.10 API.
	* gtk/gtk-api-2.10.raw: parse from 2.9.0
	* pango/pango-api-2.10.raw: parse from 1.11.99
	* sources/Makefile.am : 2.10 parse setup and api-2.10 
	* sources/gtk_tree_model_signal_fix-2.10.patch : 2.10 patch.
	* sources/gtk-sharp-2.10-sources.xml : parse rules for 2.10

svn path=/trunk/gtk-sharp/; revision=60521
2006-05-10 17:13:30 +00:00
Mike Kestner 5bac7a6c8d 2005-01-21 Mike Kestner <mkestner@novell.com>
* gtk/RadioToolButton.custom : manually implement the GLib.List group
	ctors.  [Fixes #76992]

svn path=/trunk/gtk-sharp/; revision=55886
2006-01-21 15:52:50 +00:00
Mike Kestner 6f612e3fff 2005-12-13 Mike Kestner <mkestner@novell.com>
* sources/Makefile.am : move to stable gtk 2.8 versions.
	* sources/gtk-sharp-2.8-sources.xml : move to stable gtk 2.8 versions.
	* */*.raw : regenerate.
	* gdk/Gdk.metadata : hide a few gtk+ internal methods.
	* gtk/Gtk.metadata : hide a win32 internal enum.

svn path=/trunk/gtk-sharp/; revision=54308
2005-12-13 17:11:31 +00:00
Mike Kestner 6dc561853a 2005-12-09 Mike Kestner <mkestner@novell.com>
* pango/Pango.metadata : 2.8 API tweaks
	* gdk/Gdk.metadata : 2.8 API tweaks
	* gtk/Gtk.metadata : 2.8 API tweaks
	* gtk/IconView.custom : overloads for the weird ScrollToPath.
	* gtk/Makefile.am : add custom

svn path=/trunk/gtk-sharp/; revision=54176
2005-12-09 23:16:42 +00:00
Dan Winship 6a4b03d57f * gtk/Gtk.metadata: Hide Gtk.Drag.SetIconDefault. Mark
Gtk.TreeView.GetVisibleRect's arg as "out".

	* gtk/Drag.custom: gtk_drag_set_icon_default(ctx) should translate
	to Gtk.Drag.SetIconDefault(ctx), not Gtk.Drag.IconDefault = ctx.

	* gtk/TreeView.custom: add obsolete GetVisibleRect()

svn path=/trunk/gtk-sharp/; revision=49723
2005-09-08 19:01:01 +00:00
Dan Winship ba1eeecbfb * generator/Property.cs (Generate): Mark properties [Obsolete] if
they or their accessors are marked deprecated. (Affects
	Gtk.Entry.Editable, Gtk.FontSelection.Font,
	Gtk.Notebook.*TabBorder, Gtk.Object.UserData, and a bunch of old
	Gtk.ProgressBar properties).

	* gtk/Gtk.metadata: Hide Entry.Editable. Mark Notebook.Homogeneous
	deprecated.

	* gtk/Entry.custom: Implement Editable property with an Obsolete
	pointing to IsEditable.

svn path=/trunk/gtk-sharp/; revision=48680
2005-08-22 16:55:20 +00:00
Dan Winship 622c360576 * parser/gapi2xml.pl (addFuncElems): if a struct or boxed type has
a constructor or a ref, unref, or destroy method, then it must be
	a reference type, so mark it "opaque" but then also mark all of
	its fields public and writable.

	* */*-api*.raw: Regen

	* generator/Parser.cs (ParseNamespace): make the opaque attribute
	check actually look at the value of the attribute rather than just
	checking if it's there, so that you can change a struct's opaque
	attribute from "true" to "false" via metadata and have that work.

	* generator/BoxedGen.cs (Generate): do not generate the boxed's
	"Free" method (since it's guaranteed to crash when we pass it a
	stack pointer). If "Copy" is marked deprecated, create a
	deprecated no-op for it, otherwise just skip it (since otherwise
	it will just leak memory when we copy its result onto the stack).

	* pango/Pango.metadata: deprecate Pango.Color.Copy and
	Pango.Matrix.Copy. Hide some array fields in Pango.GlyphString
	that we've never generated correctly. Tweak Pango.LayoutLine
	fields to be the same as they used to be.

	* pango/GlyphItem.custom (glyphs, item):
	* pango/GlyphString.custom (Zero, New):
	* pango/Item.custom (Zero, New):
	* pango/LayoutRun.custom (glyphs, item): add deprecated API compat

	* gdk/Gdk.metadata: undo the parser's new opaquification of
	Gdk.Font; it's been deprecated since pre-gtk# times, and no one
	should be using it, so there's no point in fixing it now. Fix up a
	few other things to match how they used to be. Fix RgbCmap's
	constructor args.

	* gdk/RgbCmap.custom (Zero, New): deprecated API compat

	* gdk/PangoAttrEmbossed.custom:
	* gdk/PangoAttrStipple.custom (Zero, New, Attr): deprecated API
	compat
	(explicit operator ...): allow casting back and forth between
	Pango.Attribute. (We can't usefully make them real subclasses of
	Pango.Attribute, because there's no way for
	Pango.Attribute.GetAttribute() to be able to dtrt with them.)

	* gtk/Gtk.metadata: deprecate Gtk.Requisition.Copy,
	Gtk.TextIter.Copy, and Gtk.TreeIter.Copy. Mark the return value of
	TextView.DefaultAttributes as "owned". Mark TargetList's fields
	private so it stays how it used to be.

	* gtk/TextAttributes.custom (Zero, New): deprecated API compat

	* gnomevfs/Gnomevfs.metadata: remove a bunch of opaque
	declarations that the parser figures out on its own now.

	* art/Art.metadata:
	* glade/Glade.metadata:
	* rsvg/Rsvg.metadata: un-mark everything the parser marked opaque
	in these libraries, because all of the structs in question would
	still be unusably broken, so the API churn would be pointless.

svn path=/trunk/gtk-sharp/; revision=48387
2005-08-15 15:15:57 +00:00
Dan Winship eb4fdee774 Automatic memory management for opaque types [#49565]
* glib/Opaque.cs (Owned): new property saying whether or not gtk#
	owns the memory.
	(Opaque): Set Owned to true in the void ctor and false in the
	IntPtr one.
	(GetOpaque): add a new overload that can also create opaques, a la
	GLib.Object.GetObject.
	(Ref, Unref, Free): empty virtual methods to be overridden by
	subclasses.
	(set_Raw): Unref() and possibly Free() the old value, Ref() the
	new one.
	(~Opaque, Dispose): set Raw to IntPtr.Zero (triggering Free/Unref
	if needed)

	* parser/gapi2xml.pl (addReturnElem): if the method is named Copy
	and returns a pointer, set the "owned" attribute on the
	return-type.

	* */*-api.raw: Regen
	
	* generator/HandleBase.cs (FromNative): Add new
	FromNative/FromNativeReturn overloads that takes a "bool owned"
	param. Implement the 1-arg FromNative and FromNativeReturn in
	terms of that.

	* generator/ObjectBase.cs (FromNative): Implement HandleBase's new
	overload. Use the two-arg version of GLib.Object.GetObject when
	"owned" is true.

	* generator/OpaqueGen.cs (Generate): Pull out Ref, Unref, and
	Free/Destroy/Dispose methods and handle them specially by
	overriding Opaque.Ref, .Unref, and .Free appropriately. (If any
	of the methods are marked deprecated, output a deprecated
	do-nothing method as well, to save us from having to write all
	those deprecated methods by hand.)
	(FromNative): use GetOpaque, passing "owned".

	* generator/ReturnValue.cs (FromNative): if the value is a
	HandleBase, pass Owned to its FromNative().

	* generator/Parameters.cs (Owned): new property (for use on out
	params)
	(FromNative): Call FromNative() on the generatable, handling Owned
	in the case of HandleBase.

	* generator/ManagedCallString.cs:
	* generator/MethodBody.cs:
	* generator/Signal.cs: use param.FromNative() rather than
	param.Generatable.FromNative(), to get ownership right.

	* */*.metadata: Mark opaque ref/unref/free methods deprecated
	(except where we were hiding them before). Add "owned" attributes
	to return values and out params as needed.

	* pango/AttrIterator.custom (GetFont): work around a
	memory-management oddity of the underlying method.

	* pango/AttrFontDesc.cs (AttrFontDesc): copy the passed-in
	FontDescriptor, since the attribute will assume ownership of it.

	* gtk/TreeView.custom (GetPathAtPos): set the "owned" flag on the
	returned TreePaths.

	* gtk/TargetList.custom: Remove refcounting stuff, which is
	now handled automatically

	* gtk/NodeStore.cs (GetPath): clear the Owned flag on the created
	TreePath so that the underlying structure doesn't get freed when
	the function returns

	* gtkhtml/HTMLStream.custom (Destroy): hide this and then
	reimplement it by hand to keep OpaqueGen from using it in
	Dispose(), since calling it after an HTMLStream.Close() will
	result in a crash.

svn path=/trunk/gtk-sharp/; revision=47928
2005-08-02 18:45:21 +00:00
Todd Berman 4b3bdf71ce 2005-08-01 Todd Berman <tberman@off.net>
* gtk/Gtk.metadata: Change the Gtk.Style.Paint* methods to use a
	Gdk.Drawable instead of a Gdk.Window
	* doc/en/Gtk/Style.xml: Update the documentation for the above
	change.


svn path=/trunk/gtk-sharp/; revision=47895
2005-08-01 18:32:19 +00:00
Dan Winship 6bf7376094 * parser/gapi2xml.pl (addParamsElem): change the handling of
anonymous function pointer types in method signatures. Before, we
	added a <callback> child to the <parameters> node, but the
	generator just ignored it. Now we add the callback (with a made-up
	name) to the toplevel node, and add an ordinary <param> node
	referencing it to the <parameters> node. Also, if the last param
	of the callback is a gpointer, rename it from "arg#" to "data" so
	it will be treated correctly (as the user data passed from the
	calling method). [Fixes #66241]

	* art/art-api.raw: 
	* gdk/gdk-api-2.4.raw: 
	* gdk/gdk-api-2.6.raw: Regen

	* generator/Parameters.cs (IsHidden): loosen the definition of
	hideable user_data; it doesn't have to occur at the end of the
	parameter list, as long as there's a callback arg before it.

	* generator/MethodBody.cs (GetCallString): Use Parameters.IsHidden
	to decide whether or not to squash user_data params, rather than
	trying to duplicate its logic. As a side effect, this also causes
	a handful of methods that take non-hidden IntPtr arguments to
	start actually passing those arguments to C rather than always
	passing IntPtr.Zero.

	* generator/Method.cs (Equals, GetHashCode): Remove unnecessary
	and possibly erroneous hashing overrides.

	* gtk/Gtk.metadata: Hide Gtk.Container.ForeachFull, since it's
	useless and wasn't in gtk# 1.0

	* gtk/Menu.custom (Popup):
	* gtk/TextIter.custom (ForwardFindChar, BackwardFindChar):
	* gnome/App.custom (CreateMenusInterp, InsertMenusInterp,
	CreateToolbarInterp):
	* gnome/Client.custom (RequestInteractionInterp):
	* gnome/Popup.custom (MenuDoPopupModal, MenuDoPopup): Add
	[Obsolete] compat overloads for methods that have now lost a
	useless IntPtr.

svn path=/trunk/gtk-sharp/; revision=47566
2005-07-22 19:10:04 +00:00
Mike Kestner f1a8c00732 2005-07-08 Mike Kestner <mkestner@novell.com>
* */*.raw : regen.
	* parser/gapi2xml.pl : access comment doesn't have to start at
	beginning of line.

svn path=/trunk/gtk-sharp/; revision=47126
2005-07-08 22:04:50 +00:00
Mike Kestner 34ee46aec1 2005-06-24 Mike Kestner <mkestner@novell.com>
* gtk/Gtk.metadata : remove the one reference to FileChooserEmbed.
	* gtk/gtk-api-2.*.raw : regen.
	* sources/gtk-sharp-2.*-sources.xml : exclude FileChooserEmbed files.

svn path=/trunk/gtk-sharp/; revision=46479
2005-06-24 19:27:01 +00:00
Mike Kestner eddfdc7910 2005-06-23 Mike Kestner <mkestner@novell.com>
* generator/ReturnValue.cs : support owned and elements_owned for lists.
	* glib/List.cs : add ctor overloads for memory mgmt.
	* glib/ListBase.cs : add ctor overloads for memory mgmt. Dispose
	elements if specified.
	* glib/SList.cs : add ctor overloads for memory mgmt.
	* gnome/Gnome.metadata : unhide and generate a List prop.
	* gnomevfs/Gnomevfs.metadata : unhide and generate a List prop.
	* gtk/FileChooser.custom : new. add hidden props.
	* gtk/FileChooserButton.custom : new. impl hidden props.
	* gtk/FileChooserDialog.custom : remove some List props and use the
	GLib.Marshaller for the remaining ones..
	* gtk/FileChooserWidget.custom : remove some List props and use the
	GLib.Marshaller for the remaining ones..
	* gtk/Gtk.metadata : unhide and let the generator do some List props.

svn path=/trunk/gtk-sharp/; revision=46457
2005-06-23 22:28:06 +00:00
Mike Kestner 7f1265e3aa 2005-06-14 Mike Kestner <mkestner@novell.com>
* gtk/Gtk.metadata : add nodes for all the *Set props on TextTag.
	[Fixes #75219]

svn path=/trunk/gtk-sharp/; revision=45976
2005-06-14 15:45:06 +00:00
Mike Kestner e24d72317a 2005-06-08 Mike Kestner <mkestner@novell.com>
* generator/ReturnValue.cs : don't write a sem in FromNative.
	* glib/ListBase.cs : handle GLib.Object explicit element types.
	* glib/Marshaler.cs : only copy lists if Count > 0.
	* gtk/Gtk.metadata : unhide Window.ListToplevels with a proper element
	type for automatic list to array marshaling.
	* gtk/Window.custom : kill manual ListToplevels impl.

svn path=/trunk/gtk-sharp/; revision=45654
2005-06-08 17:29:48 +00:00
Mike Kestner ff096ac998 2005-06-02 Mike Kestner <mkestner@novell.com>
* glib/ListBase.cs : add a nested class to support filename encoded
	string element marshaling.
	* gtk/Gtk.metadata : mark the filenames and folders as filename
	encoded.
	* gtk/FileChooserDialog.custom : use new ListBase.FilenameString type
	for list element type of filenames and folders.
	* gtk/FileChooserWidget.custom : use new ListBase.FilenameString type
	for list element type of filenames and folders.
	[Fixes #72701]

svn path=/trunk/gtk-sharp/; revision=45334
2005-06-02 16:16:28 +00:00
Mike Kestner fee353d525 2005-06-02 Mike Kestner <mkestner@novell.com>
* generator/ConstFilenameGen.cs : new generatable for filename encoded
	const string marshaling
	* generator/Makefile.am : add new file
	* generator/SymbolTable.cs : add new gfilename types.
	* glib/Marshaller.cs : add new filename-encoded string marshalers.
	* gtk/FileSelection.custom : use FilenamePtrToString to marshal.
	* gtk/Gtk.metadata : map the FileSelector filename types to my new
	imaginary gfilename type.  [Fixes #74963]

svn path=/trunk/gtk-sharp/; revision=45328
2005-06-02 14:16:52 +00:00
Dan Winship f6f9fd0c79 * glib/Value.cs: Add a constructor and an explicit cast for
string[] (using a G_TYPE_STRV boxed value).

	* generator/SymbolTable.cs (SymbolTable): Map GStrv to string[].
	(The mapping relies on the above GLib.Value magic, so it only
	works correctly for properties, but that's ok, because GStrv isn't
	a real type anyway and only shows up in the api files for
	G_TYPE_STRV properties.) Makes the Gtk.AboutDialog Artists,
	Authors, and Documenters properties show up.

	* gtk/Gtk.metadata: hide
	AboutDialog.Get/SetArtists/Authors/Documenters, which can't be
	used to implement the Artists/Authors/Documenters properties,
	because the generated code doesn't know to NULL-terminate the
	arrays.

svn path=/trunk/gtk-sharp/; revision=45301
2005-06-01 17:58:28 +00:00
Dan Winship 40c4db88a4 * parser/gapi2xml.pl: Make the enum value parser do the right
thing with parenthesized values ("FOO = (1 << 2)") and within-type
	aliases ("GTK_ANCHOR_N = GTK_ANCHOR_NORTH"). Make it intentionally
	do the wrong thing with unparsable values (outputting them as-is
	into the api file) so that we are forced to fix them with metadata
	rather than silently getting incorrect values.

	* gdk/gdk-api-2.4.raw: 
	* gdk/gdk-api-2.6.raw (PixdataType): Now recognized as flags,
	not enum

	* gtk/Gtk.metadata: hide the enums ArgFlags and RcTokenType (which
	are not used by any wrapped API, and which formerly contained
	entirely wrong values).

	* gtk/gtk-api-2.4.raw: 
	* gtk/gtk-api-2.6.raw (AnchorType, SelectionMode): update with
	values for aliases

	* gnome/Gnome.metadata: fix value of Gnome.PrintButtons.Cancel

	* gnome/gnome-api.raw (PrintUnitBase, PaperSelectorFlags,
	PrintDialogFlags, PrintDialogRangeFlags): Now recognized as flags,
	with values.

svn path=/trunk/gtk-sharp/; revision=44937
2005-05-24 18:11:33 +00:00
Dan Winship b6d7f14268 * generator/StructBase.cs: update field-generation logic a bit
* generator/CodeGenerator.cs: add a --glue-includes flag

	* generator/GenerationInfo.cs: Accept glue_includes value from
	Main and output it to the glue_filename.

	* generator/FieldBase.cs (Ignored): handle more ignorable cases.
	(CheckGlue): New method to figure out what kind of glue we'll need
	for a field.
	(GenerateImports): generate appropriate imports per CheckGlue.
	(GenerateGlue): Generate C glue for accessing a struct field;
	either a fully-C-based accessor, or a method to just return the
	field's offset in the struct.
	(Generate): Use the generated glue to read the field.

	* generator/PropertyBase.cs (CType): if the field is a single bit,
	set its type to gboolean.

	* generator/ObjectGen.cs (Generate):
	* generator/OpaqueGen.cs (Generate): Call GenFields.

	* generator/StructField.cs: Use FieldBase's glue-generation code
	to handle bitfields. [#54489]

	* generator/ObjectField.cs: Generates accessors for public fields
	of objects and opaque structs. [#69514]

	* generator/ClassBase.cs (ClassBase): Parse <fields> nodes and
	create ObjectField objects.
	(GenFields): Output field properties
	(IgnoreMethod): Ignore Get/Set methods that duplicate fields

	* generator/Makefile.am (sources): update

	* {gdk,gnome,gtk,pango}/*.metadata: Mark some additional fields as
	public. Rename/retype some fields for consistency with earlier
	hand-coded bindings.

	* {gdk,gnome,gtk,pango}/*.custom: Remove custom methods that can
	now be autogenerated.

	* {gdk,gnome,gtk,pango}/glue/*.c: Remove glue methods that can now
	be autogenerated
	
	* {gdk,glade,gnome,gtk,pango,vte}/Makefile.am
	* {gdk,glade,gnome,gtk,pango,vte}/glue/Makefile.am
	* {gdk,gnome,gtk,pango}/glue/makefile.win32: Update

svn path=/trunk/gtk-sharp/; revision=44563
2005-05-16 14:28:55 +00:00
Mike Kestner ef52ff2b33 2005-05-11 Mike Kestner <mkestner@novell.com>
* gtk/Gtk.metadata : hide IconTheme.GetIconSizes.
	* gtk/IconTheme.custom : implement GetIconSizes because of its zero
	terminated array return value. 2.6 only.  [Fixes #74844]

svn path=/trunk/gtk-sharp/; revision=44414
2005-05-11 22:43:04 +00:00
Mike Kestner caec90e311 2005-05-11 Eric Butler <eric@extremeboredom.net>
* gtk/Gtk.metadata : add IEnumerable iface to ListStore.
	* gtk/ListStore.cs : add GetEnumerator.
	* gtk/Makefile.am : add file.
	* gtk/TreeEnumerator.cs : root node enumerator for a TreeModel.

svn path=/trunk/gtk-sharp/; revision=44409
2005-05-11 19:41:45 +00:00
Mike Kestner 8ccfd329dc 2005-05-11 Mike Kestner <mkestner@novell.com>
* gtk/Widget.custom : manual ListMnemonicLabels implementation to
	return a Widget[].  [Fixes #74786]

svn path=/trunk/gtk-sharp/; revision=44404
2005-05-11 18:04:52 +00:00
Dan Winship a7d8b64f7a * generator/Parameters.cs (Parameters.Validate): If the parameters
end with "callback, gpointer, GDestroyNotify", then mark the
	callback as having "notified" Scope.
	(Parameters.IsHidden): Hide user_data and GDestroyNotify after a
	callback.
	(Parameter.Scope): make this settable
	(Parameter.IsDestroyNotify): new test

	* generator/MethodBody.cs (Initialize): Handle "notified" callback
	scope (using a GCHandle and GLib.DestroyHelper.NotifyHandler)

	* generator/CallbackGen.cs (GenWrapper): Add a static
	"GetManagedDelegate" method to the wrapper type, to translate a
	native delegate back to its corresponding managed delegate.
	(FromNative): use GetManagedDelegate.

	* generator/ReturnValue.cs (Validate): We handle callback return
	values now

	* generator/SymbolTable.cs: marshal GDestroyNotify as
	GLib.DestroyNotify

	* glib/DestroyNotify.cs: Moved from gtk

	* gtk/Gtk.metadata: globally change GtkDestroyNotify to
	GDestroyNotify, but then change back the ones that are exposed in
	the API. Un-hide lots of methods we can correctly autogenerate
	now.

	* gtk/DestroyHelper.cs: moved to glib

	* gtk/*.custom: remove methods that are autogenerated now, add
	Obsolete wrappers where needed, replace Gtk.DestroyHelper usage
	with GLib.DestroyHelper.

	* gdk/Gdk.metadata: 
	* gnome/Gnome.metadata: Turn Gdk.Drawable.SetData and
	Gnome.IconList.SetIconDataFull's GDestroyNotify args into
	gpointers so the generated API stays the same as it used to be.

	* rsvg/Handle.custom: implement deprecated SetSizeCallback

	* sample/GtkDemo/DemoIconView.cs (CreateSort): update for API
	changes

svn path=/trunk/gtk-sharp/; revision=44020
2005-05-04 11:47:25 +00:00
Dan Winship b7e4cc507e * generator/Parameters.cs (IsHidden): method to check if a
parameter should be hidden in the managed sig (eg, because it's
	user_data, or it's the length of the preceding array/string, etc).
	(VisibleCount): the number of parameters that will actually be
	exposed in the managed signature.
	(IsAccessor): test VisibleCount, not Count
	(AccessorReturnType, AccessorName): deal with the fact that the
	accessor parameter might not be the first one.

	* generator/CallbackGen.cs:
	* generator/Signature.cs: use Parameters.IsHidden.

	* generator/Method.cs (Initialize): set is_set based on
	VisibleCount, not Count.
	(Validate): call base.Validate() before Initialize() so that
	VisibleCount will be correct in Initialize.

	* generator/MethodBody.cs (GetCallString, CallArrayLength,
	Initialize): update to deal with accessors with multiple args.

	* gtk/Clipboard.custom (SetText): implement as an Obsolete variant
	of the Text property

	* gtk/IconTheme.custom (SearchPath, SetSearchPath): obsolete
	SetSearchPath, implement a setter on SearchPath instead.

	* gtk/ListStore.custom (SetColumnTypes):
	* gtk/TreeStore.custom (SetColumnTypes): implement as an Obsolete
	variant of the ColumnTypes property.

	* glade/XML.custom (CustomHandler): implement as a property
	(SetCustomHandler): Mark this obsolete

	* glade/Global.custom (SetCustomHandler): deprecate in favor of
	XML.CustomHandler.

	* gnomedb/Editor.custom (SetText): implement as an Obsolete
	variant of the Text property

svn path=/trunk/gtk-sharp/; revision=43898
2005-05-02 20:10:03 +00:00
Dan Winship faa783fba7 * gnome/Gnome.metadata: mark GnomeTriggerActionFunction's char**
param const

        * glib/Marshaller.cs (Utf8PtrToString): Add an IntPtr[]->string[]
        overload, since that's what we actually need in the case where
        it's used (above). Leave the IntPtr[]->string[] overload of
        PtrToStringGFree in case anyone is using it manually.

        * gtk/Gtk.metadata: hide GtkModuleInitFunc and
        GtkModuleDisplayInitFunc; they are the signatures of user-defined
        methods that gtk only ever resolves via g_module_symbol(), so
        they're not useful from C#. (And the marshalling was all wrong
        anyway...)

svn path=/trunk/gtk-sharp/; revision=43461
2005-04-22 19:43:46 +00:00
Mike Kestner 1f555ab568 2005-04-21 Mike Kestner <mkestner@novell.com>
* configure.in : require gtk+ 2.6.
	* generator/ReturnValue.cs : invalidate Callback returns for now.
	* gtk/Gtk.metadata : some renames for conflicting new API.
	* parser/gapi2xml.pl : whitespace tweak for class VM regexen.
	* sources/Makefile.am : add new patch, kill atk patch, revise dirs.
	* sources/atkhyperlink.patch : kill unnecessary patch.
	* sources/gtkclipboard.patch : add new clipboard patch.
	* sources/gtk-sharp-sources.xml : parse gtk+-2.6.
	* */*-api.raw : regen pango, atk, gdk, and gtk for new versions.

svn path=/trunk/gtk-sharp/; revision=43412
2005-04-21 17:10:54 +00:00
Dan Winship b8126ce3af * generator/ClassBase.cs (ParseImplements): record both managed
and unmanaged interface declarations.
	(Implements): check recursively

	* generator/ObjectGen.cs (Generate): output managed interfaces

	* gtk/Gtk.metadata: make Container implement IEnumerable

	* gtk/Container.custom (GetEnumerator): implement (a simplified
	form of Children).
	(AllChildren): add this (which accumulates the results of
	Forall()).
	(ForAll): mark ForAll(bool,CallbackInvoker) obsolete and add a
	ForAll(bool,Gtk.Callback) overload to replace it.

	* sample/PolarFixed.cs: new silly but fully-functional demo of
	how to subclass container.

	* sample/CustomNotebook.cs: kill this, since it was really
	complicated, and never fully functional.

	* sample/GtkDemo/DemoImages.cs (ToggleSensitivity): Use foreach
	directly on the container, rather than on its .Children.

svn path=/trunk/gtk-sharp/; revision=42805
2005-04-11 20:35:56 +00:00
Mike Kestner c7b382782e 2005-04-11 Mike Kestner <mkestner@novell.com>
* gtk/Quit.custom : obsolete AddFull and implement Add properly.
	* gtk/TreePath.custom : add ctor (int[] indices).
	* gtk/Gtk.metadata : hide Quit.Add* and some ellipsis methods that are
	implemented manually already.

svn path=/trunk/gtk-sharp/; revision=42793
2005-04-11 17:15:38 +00:00
Mike Kestner ec96098612 2005-04-06 Mike Kestner <mkestner@novell.com>
* gtk/FileFilter.custom : AddCustom delegate is destroy notified.
	* gtk/Gtk.metadata : hide FileFilter.AddCustom.  hide gtk_object_get|set.

svn path=/trunk/gtk-sharp/; revision=42611
2005-04-06 15:47:17 +00:00
Mike Kestner f695e74bd6 2005-04-05 Mike Kestner <mkestner@novell.com>
* gtk/*.custom : persistent delegates for most of the remaining 
	"interesting" methods.

svn path=/trunk/gtk-sharp/; revision=42581
2005-04-05 20:14:02 +00:00
Mike Kestner 23ec73d6f9 2005-04-05 Mike Kestner <mkestner@novell.com>
* gtk/DestroyHelper.cs : implement an internal DestroyNotify handler 
	to release GCHandles.
	* gtk/*.custom : rework existing persistent delegate implementations
	to use destroy notify or PersistentData.

svn path=/trunk/gtk-sharp/; revision=42571
2005-04-05 14:48:49 +00:00
Mike Kestner a0519cac4d 2005-04-04 Mike Kestner <mkestner@novell.com>
* gtk/Gtk.metadata : mark all the call scope callback params to quiet
	the warnings.

svn path=/trunk/gtk-sharp/; revision=42531
2005-04-04 17:46:05 +00:00
Mike Kestner 96f81cfbd4 2005-04-04 Mike Kestner <mkestner@novell.com>
* gdk/Gdk.metadata : hide some manually implemented callback methods.
	* gdk/*.custom : implement several methods containing persistent
	callback parameters.
	* generator/BoxedGen.cs : set gen_info.CurrentType in Generate.
	* generator/ClassGen.cs : set gen_info.CurrentType in Generate.
	* generator/Ctor.cs : set gen_info.CurrentMember in Generate.
	* generator/GenerationInfo.cs : add CurrentMember and CurrentType.
	* generator/Method.cs : set gen_info.CurrentMember in Generate.
	* generator/MethodBody.cs : always generate null guarding for array
	parameters, and add a nag for callback parameters without a scope attr.
	* generator/ObjectGen.cs : set gen_info.CurrentType in Generate.
	* generator/OpaqueGen.cs : set gen_info.CurrentType in Generate.
	* generator/Parameters.cs : kill NullOk. add Scope property.
	* generator/StructGen.cs : set gen_info.CurrentType in Generate.
	* gtk/Gtk.metadata : kill a few null_ok attrs.
	* pango/Pango.metadata : mark the callback params as call scope. kill
	a couple null_ok attrs.

svn path=/trunk/gtk-sharp/; revision=42529
2005-04-04 16:27:08 +00:00
Mike Kestner 75509454d5 2005-04-01 Mike Kestner <mkestner@novell.com>
* gtk/TreeModelFilter.custom : manually implement SetVisibleFunc and
	SetModifyFunc to handle delegate persistence.
	* gtk/Gtk.metadata : hide methods.

svn path=/trunk/gtk-sharp/; revision=42471
2005-04-01 17:38:51 +00:00
Mike Kestner 3b333bf2b5 2005-04-01 Mike Kestner <mkestner@novell.com>
* gtk/Clipboard.custom : manually implement SetWithData and
	SetWithOwner to handle delegate persistence.
	* gtk/Gtk.metadata : hide methods.

svn path=/trunk/gtk-sharp/; revision=42465
2005-04-01 16:46:43 +00:00