* configure.in.in: Target .net 2.0 profile
* gapi-cdecl-insert: Kill. We are now using the UnmanagedFunctionPointerAttribute
for callbacks.
* glib/CdeclCallback: Mark obsolete.
* generator/*.cs:
* *.custom: Use [UnmanagedFunctionPointer (CallingConvention.Cdecl)] instead of
[GLib.CDeclCallback].
svn path=/trunk/gtk-sharp/; revision=137323
* gtk/Widget.custom: Don't use [MarshalAs] for struct fields since
that is not supported in the .net framework
svn path=/trunk/gtk-sharp/; revision=136157
* gtk/Application.cs: add the theme initialization workaround for
windows. Hopefully we can find a better solution that doesn't
involve loading SWF. [Fixes#471682]
svn path=/trunk/gtk-sharp/; revision=134008
* gtk/Widget.custom: Implement signal registration for the
Activate, SettScrollAdjustments and key binding signals
in managed code.
svn path=/trunk/gtk-sharp/; revision=132771
Add support for virtual methods(vm) to the generator.
* parser/gapi2xml.pl: Generate a class_struct element with
all members of the class structure. Dump the first (instance)
parameter for signal and vm elements. Bump up parser version.
* generator/GObjectVM.cs: Added. Support for GObject virtual methods.
* generator/DefaultSignalHandler.cs: Signal specific part of vm
generation.
* generator/InterfaceVM.cs: New class for interface vms.
* generator/ObjectBase.cs: Parse the class struct.
svn path=/trunk/gtk-sharp/; revision=131604
* gtk/Target.custom: custom implementation of TableNewFromList.
* gtk/TargetList.custom: use Target.TableNewFromList method
to convert the TargetList to a TargetEntry array.
* gtk/glue/targetlist.c: deleted.
svn path=/trunk/gtk-sharp/; revision=131066
* parser/gapi2xml.pl: Introduce a "parser_version" attribute.
* generator/GenBase.cs: Implement a property to access the
attribute's value.
svn path=/trunk/gtk-sharp/; revision=129807
* gtk/NodeSelection.cs: use new Adapter prop on NodeStore.
* gtk/NodeStore.cs: some encapsulation rework.
* gtk/NodeView.cs: use new Adapter prop on NodeStore. new methods
to support manipulation of the view by TreeNode, like scrolling
and cell bounds lookups.
* gtk/TreeView.cs: use new Adapter prop on NodeStore.
* doc/en/Gtk/NodeView.xml: new doc updates.
Patch provided by Vladimir Giszpenc. [Fixes#480067]
svn path=/trunk/gtk-sharp/; revision=129498
* generator/ReturnValue.cs: map gfilename* list elements to type
ListBase.FilenameString so they are marshaled correctly.
* glib/Marshaller.cs: handle FilenameStrings in ListPtrToArray.
* gtk/Gtk.metadata: FileChooser.GetFilenames and ListShortcutFolders
return type mangling to avoid custom implementations.
* gtk/FileChooser*.custom: kill manual Filenames and ShortcutFolders.
svn path=/trunk/gtk-sharp/; revision=122802
* gtk/Gtk.metadata: mark the SpinButton::Output signal as manually
marshaled to avoid a compat break. The old manual marshaler expected
and int RetVal and the new signal closure more accurately expects a
bool. Since returning 1 previously worked, we need to revert to the
int expectation, even though bool is technically more correct.
svn path=/trunk/gtk-sharp/; revision=118944
* atk/atk-api-2.12.raw: regen
* gtk/gtk-api-2.12.raw: regen
* generator/Signal.cs: reinstate old custom marshaler generation and
generate custom marshaling when 'manual' attr is set.
* parser/gapi2xml.pl: set manual attr on sigs that have G_TYPE_POINTER
parameters since the generic closure can't cope with them.
svn path=/trunk/gtk-sharp/; revision=118068
* gtk/TreeModelAdapter.custom:
* gtk/TreeModelFilter.custom:
* gtk/TreeModelSort.custom:
* gtk/TreeStore.custom: Don't trigger any gtk+ critical
warnings when the 'rows-reodered' signal is fired.
svn path=/trunk/gtk-sharp/; revision=116800
* configure.in.in: magic for local Mono.Cairo build.
* cairo/*: a local build of Mono.Cairo for .Net-only builds on win32.
* */Makefile.am: use local Mono.Cairo where necessary.
svn path=/trunk/gtk-sharp/; revision=115399
* generator/ManagedCallString.cs: revert last change. There are a
lot of "broken" callback sigs out there which expose user data because
it's not in the last parameter in the list. I don't think we can
reasonably make a change to hide all those at this point. This change
at least hides all the user_data which comes right before a GError
param at the end of the list. I need to follow up with a change which
handles data parameters in any parameter position, but allows the user
to mark "exposed" data params for compatibility reasons.
* generator/Parameters.cs: hide data params which are at the end of a
list behind an error param.
* gtk/Gtk.metadata: mark an array parameter on
TextBufferDeserializeFunc.
svn path=/trunk/gtk-sharp/; revision=111716
* generator/ReturnValue.cs: use new ListPtrToArray marshaler for
lists with known element types.
* glib/Marshaller.cs: new ListPtrToArray marshaller with more
aggressive list disposal.
* gtk/Container.custom: remove manual Children impl. Use Children
in GetEnumerator instead of pinvoking directly.
* gtk/Gtk.metadata: remove hidden attr and add element type and owned
for Container.GetChildren to generate it properly.
svn path=/trunk/gtk-sharp/; revision=111173
Patch from Christian Hoff with a few minor tweaks.
* generator/CallbackGen.cs: refactor to use ManagedCallString
and drop a ton of redundant, half-baked code.
* generator/ManagedCallString.cs: add Unconditional setup
method for stuff that has to happen before the try block.
Add "drop_first" concept so it can be reused by CallbackGen
which doesn't drop first params.
* generator/Signal.cs: use Unconditional method for prep.
* generator/VirtualMethod.cs: use Unconditional method for prep.
* gtk/Gtk.metadata: mark a ref param. [Fixes#394352]
svn path=/trunk/gtk-sharp/; revision=107494
* gtk/Gtk.metadata: mark ListStore.Reorder array param.
* gtk/ListStore.cs: compat obsolete method, though the old one
was useless.
svn path=/trunk/gtk-sharp/; revision=106853
* gtk/Object.custom: move Dispose call to a vm override so that
it runs after all signals and native overrides have run.
* gtk/glue/object.c: destroy override implementation.
svn path=/trunk/gtk-sharp/; revision=104315
* gtk/Object.custom: If all destroy handlers have been
unregistered, remove the hashtable entry since it is
not needed anymore.
svn path=/trunk/gtk-sharp/; revision=104287
* gtk/Widget.custom: guard against MissingIntPtrCtorException in
the Activate and SetScrollAdjustments funky signal VM impl. Can't
use SignalClosure easily. Could be reworked more cleanly at some
point. Or not.
svn path=/trunk/gtk-sharp/; revision=103827
* kill the makefile.win32 build system. it has been unmaintained
for quite some time, replaced by the auto* build in cygwin.
svn path=/trunk/gtk-sharp/; revision=103308
* atk/atk-api-2.12.raw: reparsed.
* gdk/gdk-api-2.12.raw: reparsed.
* gtk/gtk-api-2.12.raw: reparsed.
* parser/gapi2xml.pl: fixes for signal and vm order needed for
proper interface struct layout. [Fixes#386802]
svn path=/trunk/gtk-sharp/; revision=102848
* generator/GenerationInfo.cs: refactor glue writer implementation
so that GlueEnabled means there is a valid glue writer available.
Avoids crashes in scenarios where an unwriteable glue path is provided
to the generator. Generate a glue function which scans the type
hierarchy of an object for the most-derived unmanaged ancestor so
that we can invoke class methods on it, avoiding infinite recursions.
* generator/Signal.cs: revamp the default handler vm overriding
mechanism. When class fields exist which can be directly hooked into,
we now generate glue to override and chain up to unmanaged base funcs.
This avoids some strangeness in the g_signal_override_class_closure
and g_signal_chain_from_overridden reported in #332300 and also lays
the groundwork for automated generation of non-signal VMs.
* gtk/Gtk.metadata: block signal glue generation for a few types which
don't seem to install headers.
svn path=/trunk/gtk-sharp/; revision=102350
* parser/gapi2xml.pl: put class struct field in the signal elems.
* atk/atk-api-2.12.raw:
* gdk/gdk-api-2.12.raw:
* gtk/gtk-api-2.12.raw:
svn path=/trunk/gtk-sharp/; revision=102238
* glib/ToggleRef.cs: Add a Harden method to switch to a standard
ref and just leak it.
* gtk/Application.cs: revert the QuitPrepare stuff since it didn't
always work.
svn path=/trunk/gtk-sharp/; revision=101021
* gtk/TreeModelAdapter.custom:
* gtk/TreeModelFilter.custom:
* gtk/TreeModelSort.custom: reworked patch from Christian Hoff to
throw NotImplementedException for SetValue methods. Those should
never have been added to the interface, and it's better to throw
an exception than have infinite recursion kill the program.
[Fixes#379542]
svn path=/trunk/gtk-sharp/; revision=100996
* gtk/Gtk.metadata: hide PrintContext.get_CairoContext.
* gtk/PrintContext.custom: manual get_cairo_context implementation.
Mono.Cairo assumes it is wrapping owned references, so we need to
take a ref out on the returned cairo_t pointer.
* sample/GtkDemo/DemoPrinting.cs: dispose the CairoContext in
to be a good citizen and avoid warnings.
svn path=/trunk/gtk-sharp/; revision=100942
* glib/Global.cs: renamed from Program.cs. Program.Name is now
Global.ProgramName to try to avoid clashes with existing Gnome.Program
usage.
* gtk/Application.cs: s/GLib.Program.Name/GLib.Global.ProgramName.
svn path=/trunk/gtk-sharp/; revision=99875
the code to call g_set_prgname() from gtk/Application.cs to here,
and changing return value of g_set_program_name from bool to void.
* gtk/Application.cs: Use Program.Name as a replacement of
calling the native function g_set_prgname().
* glib/Makefile.am: add Program.cs.
(Patch reviewed by mkestner)
svn path=/trunk/gtk-sharp/; revision=99134
* glib/DestroyNotify.cs: add CDeclCallback to the delegate.
* glib/Signal.cs: use DestroyHelper.
* gdk/Input.custom: use DestroyHelper.
* gtk/Quit.custom: remove new on DestroyHelper handler.
* gtk/TreeModelFilter.custom: remove new on DestroyHelper handler.
* gtk/TreeViewColumn.custom: remove new on DestroyHelper handler.
svn path=/trunk/gtk-sharp/; revision=86897
* generator/*.cs: implement the interfaces on the adapters too.
Generate an Implementor interface for users which exposes the
methods to implement. Register based on the Implementor sub-iface.
* gtk/*Adapter.custom: custom implementations for the custom
interface members.
* gtk/TreeIter.custom: make UserData public.
* sample/TreeModelDemo.cs: sample for implementing a TreeModel
interface.
svn path=/trunk/gtk-sharp/; revision=86753
* gtk/Gtk.metadata: virtual_method rules for GInterface generation.
* generator/ReturnValue.cs (ToNative): new method for the virtual
method generation.
* generator/Parameters.cs (FromNative): null guarding.
* generator/ManagedCallString.cs: rework for interface method
generation including callback and error param support.
* generator/CallbackGen.cs: Invoker support. new class that deals
with persistence of native and wrapper delegates in native to managed
callback method signatures.
* generator/VirtualMethod.cs: support for generation of interface
methods, and all the funky parameters that come with that.
* generator/InterfaceGen.cs: Fill out the adapter implementation.
* generator/MethodBody.cs: Initialize overload. Extend ThrowsException
to support GError outside the last parameter slot.
* glib/GInterfaceAttribute.cs: New attribute to mark interfaces and
obtain adapter type.
* glib/Object.cs (AddInterfaces): interface registration method.
* glib/GInterfaceAdapter.cs: New abstract class for interface
adapter generation.
* glib/Makefile.am: add new files.
svn path=/trunk/gtk-sharp/; revision=85658
* gtk/Object.custom (Destroy): add a null check to avoid
Gtk criticals. The destroy case seems to be problematic with
a bunch of existing code, so this turns it into a noop.
svn path=/trunk/gtk-sharp/; revision=85657
* AssemblyInfo.cs.in : add IgnoreClassInitializers attr to all.
* generator/ObjectGen.cs : add custom-attr generation for objects.
* glib/ClassInitializerAttribute.cs : obsolete
* glib/IgnoreClassInitializersAttribute.cs : new assembly attr
to avoid a blind GetMethods reflection.
* glib/Makefile.am : add files
* glib/TypeInitializerAttribute.cs : new attr to specify init
method to be run at type registration.
* gtk/Widget.custom : remove the ClassInitializerAttr.
* gtk/Gtk.metadata : add a custom-attr node to GtkWidget.
* sample/Subclass.cs : use the IgnoreClassInitializers attr.
svn path=/trunk/gtk-sharp/; revision=85480
* generator/*.cs : switch to IntPtr marshaling for struct types
in the managed to native direction.
* gtk/*.custom : adjust to new gapi struct pinvoke sigs.
svn path=/trunk/gtk-sharp/; revision=83961
* gtk/gtk-api-2.10.raw : refresh.
* parser/gapi_pp.pl : combine lines that end in '\' before sending
them through the pattern matching. [Fixes#79214]
svn path=/trunk/gtk-sharp/; revision=82359
* gtk/Widget.custom (StyleGetProperty): return null if
gtksharp_widget_style_get_property returns FALSE (property
doesn't exist) [Fixes#81445]
* gtk/glue/widget.c (gtksharp_widget_style_get_property): check
return of gtk_widget_class_find_style_property for NULL; function now
returns TRUE if spec is not NULL, FALSE otherwise
svn path=/trunk/gtk-sharp/; revision=76217
* gtk/TreePath.custom: Override Equals and compare based upon the
underlying indicies, instead of the object reference.
[Fixes#81398]
svn path=/trunk/gtk-sharp/; revision=76131
* generator/CallbackGen.cs : switch to NativeCallbackSignature.
* generator/GenBase.cs : add NativeCallbackType member.
* generator/IGeneratable.cs : add NativeCallbackType member.
* generator/ManagedCallString.cs : add guarded post call struct
marshaling back to the native struct.
* generator/NativeCallbackSignature.cs : new parallel to ImportSignature
but using NativeCallbackType instead of MarshalType.
* generator/Signal.cs : switch vm and sig marshaler callbacks to
NativeCallbackSignature. Perform guarding post call struct marshaling
back to the native struct.
* generator/Parameters.cs : add NativeCallbackType member.
* generator/SimpleBase.cs : add NativeCallbackType member.
* generator/StructBase.cs : add NativeCallbackType member using IntPtr
to support NULL handling.
* gtk/NodeCellDataFunc.cs : update native marshaler sig.
svn path=/trunk/gtk-sharp/; revision=76011
* 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
* gtk/Widget.custom:
StyleGetPropertyValue that returns a GLib.Value when StyleGetProperty cannot automatically cast the GLib.Value (eg: Gdk.Color)
[Fixes#81253]
* doc/en/Gtk/Widget.xml:
Documentation for the new StyleGetPropertyValue method and improved documentation for StyleGetProperty
* gtk/TreeView.custom:
OddRowColor and EvenRowColor properties
* doc/en/Gtk/TreeView.xml:
documentation for OddRowColor and EvenRowColor properties
svn path=/trunk/gtk-sharp/; revision=75816
* gtk/Application.custom : set prgname in Init methods so
that WM_CLASS is more appropriate. Programs using Gnome.Program
already get a nice prgname, but Gtk.Application.Init apps were
getting a path instead of a filename without extension.
svn path=/trunk/gtk-sharp/; revision=73766
* gtk/CellRenderer*.custom: new custom overrides for VMs.
* gtk/glue/cellrenderer.c: add GType parameters to the invoke methods
so we can identify the correct vtable to invoke from.
svn path=/trunk/gtk-sharp/; revision=73037
* 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
* 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
* 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
* 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
* 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
* 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
* gtk/gtk-api-2.10.raw : reparsed
* parser/gapi_pp.pl : put a newline after G_DEFINE_TYPE macros
on the output and do a next if we shouldn't fall out of the
branch.
svn path=/trunk/gtk-sharp/; revision=63232
* gtk/TextBuffer.custom : add some obsolete overloads for backward
compat with some not-completely-unusable 1.0.x methods.
svn path=/trunk/gtk-sharp/; revision=52131
* glib/Opaque.cs : remove the Opaques hash. As f-spot demonstrated,
we cannot rely on a pointer continuing to point at the same type in
memory, since there is no destroy notification for most opaques.
* glib/Value.cs : use more explicit GetOpaque overload.
* gtk/Style.custom : use more explicit GetOpaque overload.
svn path=/trunk/gtk-sharp/; revision=50884
* sample/NodeViewDemo.cs: take advantage of the stuff below
* gtk/TreeNodeValueAttribute.cs: Allow on props
* gtk/TreeNodeAttribute.cs: Obsolete column count
* gtk/NodeStore.cs: Change this to not need the TreeNodeAttribute
column count. Handle fields as well as properties.
svn path=/trunk/gtk-sharp/; revision=49374
* gtk/Widget.custom : add overloads for Modify* without a Gdk.Color
param to reset color to default. [Fixes#75913]
svn path=/trunk/gtk-sharp/; revision=49085
2005-08-28 Ben Maurer <bmaurer@ximian.com>
* en/Gtk/NodeSelection.xml: Docs
In .:
2005-08-28 Ben Maurer <bmaurer@ximian.com>
* gtk/NodeSelection.cs: helper api
svn path=/trunk/gtk-sharp/; revision=49040
makes it safe to create tree nodes in a worker thread as long as
you reparent them into the tree with another thread. Thanks to mk
for allowing a bit of threadedness in :-).
svn path=/trunk/gtk-sharp/; revision=48683
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
* glib/Object.cs : hold strong refs for managed subclasses and
weakrefs for wrappers.
* gtk/Object.custom : don't hold managed refs here, they are now held
in GLib.Object.
svn path=/trunk/gtk-sharp/; revision=48389
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
a bit; only Ref the pointer if Owned is false (and then set it to
true), and vice versa for Unref.
* glib/Opaque.cs (Opaque): set owned before setting Raw, so
that Raw will be reffed properly.
(GetOpaque): Fix this up to dtrt in all cases with refcounted
opaques.
* gtk/TreeView.custom (GetPathAtPos): Use "GetOpaque(...)" rather
than "new TreePath()"
* sample/opaquetest/*: regression test for opaque free/ref/unref
handling
* sample/Makefile.am (SUBDIRS): add opaquetest
* configure.in.in (AC_OUTPUT): add opaquetest files
svn path=/trunk/gtk-sharp/; revision=48168