* atk/Atk.metadata: switch Value methods to ref params since atk
actually checks for initialized values instead of just treating it
like uninitialized memory. Makes for uglier API, but avoids crashes
in unfortunate memory content scenarios.
svn path=/trunk/gtk-sharp/; revision=110382
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
* glib/SignalClosure.cs: post back the gvalues after the closure is
invoked using a new Update method on GLib.Value. This only impacts
boxed types, since they are the only "value types" passed by ref in
the signal marshaling environment. We can't call set_boxed on the
value to update it, since that allocs new memory, we need to marshal
the updated struct out to the existing native memory address using
g_value_get_boxed.
* glib/Value.cs (Update): new update method for writing values to
an existing boxed type instance instead of allocating a new native
struct. Fixes#398929.
svn path=/trunk/gtk-sharp/; revision=106058
* glib/glue/object.c: fixes for object, boxed, and gtype
property paramspec creation. Patch provided by Christian Hoff.
svn path=/trunk/gtk-sharp/; revision=105905
Initial Patch submitted by Christian Hoff with some small
style alterations and a round trip sample by me. Supports the
registration of managed properties with the GType system, so
that things like custom cell renderers can be accessed via the
native property system from treeview.
* glib/glue/object.c : property registration related glue.
* glib/Object.cs: implement managed property registration.
* glib/PropertyAttribute.cs: add new props and ctor for managed
property registration.
* sample/PropertyRegistration.cs: little test app to test round-
tripping of registered properties.
* sample/Makefile.am: add new sample.
svn path=/trunk/gtk-sharp/; revision=105177
* atk/Object.custom: use 'as StateSet' instead of cast to avoid
cast exceptions in the null case. Apparently it's not an exception
any more, according to folks on #monodev. I still prefer as for
GetObject 'casting'.
svn path=/trunk/gtk-sharp/; revision=105176
* gdk/Pixbuf.custom: don't use the autogenerated PixbufDestroyNative
delegate type since is has a byte[] parameter that blows up.
svn path=/trunk/gtk-sharp/; revision=104582
* 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
* generator/Method.cs (GenerateBody): when generating value type
methods, we should demarshal the 'this' memory before any ref or
out parameters in the event that someone passes 'this' as a param.
That will ensure that an updated value coming back from the native
side ends up in the memory location.
svn path=/trunk/gtk-sharp/; revision=104166
* 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
* glib/Signal.cs: AddEmissionHook binding (for closing #386950), and
change API of Emit to mimic the detailed_signal pattern.
* glib/GType.cs: GType.FromName: new wrapper for native call.
* glib/ObjectManager.cs: Use the new FromName managed method.
svn path=/trunk/gtk-sharp/; revision=103198
* 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
* glib/Object.cs: revert the connection optimization from r102349.
It breaks under the current CellRenderer implementation which probably
can't be reworked compatibly to take advantage of this code.
* glib/SignalClosure.cs: use IntPtr.ToInt64 instead of (long) since
the cast apparently has issues on bleeding edge mono.
svn path=/trunk/gtk-sharp/; revision=102693
* 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
* glib/Object.cs: Don't bother hooking VM into the class field
if another managed ancestor has already done so. Add a LogFunc
printing a stack trace for the GObject log domain if GTK_SHARP_DEBUG
is set in the environment. It's a bit noisy to do unconditionally.
svn path=/trunk/gtk-sharp/; revision=102349
* generator/InterfaceGen.cs: use CName and mangle it. ClassFieldName
is not guaranteed to be set now.
* generator/Signal.cs: read ClassFieldName from the api xml. Move
glue writer lookup inside the block to avoid exceptions for now.
svn path=/trunk/gtk-sharp/; revision=102276
* generator/InterfaceGen.cs:
* generator/Signal.cs: use generic signal marshaling instead of
generating signature specific marshaling callbacks.
* glib/glue/closure.c: glue for new closure impl.
* glib/Object.cs: open up a couple hashes internally.
* glib/Signal.cs: hook in closure based connection and expose
EmissionHook functionality for atk usage.
* glib/SignalClosure.cs: new generic signal marshaling mechanism.
* glib/ToggleRef.cs: null guarding in Target and let Signal remove
itself from hash when it disposes itself.
svn path=/trunk/gtk-sharp/; revision=102241
* 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/Value.cs : Add GParam support and beef up the Boxed
type marshaling to support types with New methods via reflection.
svn path=/trunk/gtk-sharp/; revision=102064
* gdk/Window.custom (Destroy): take a normal ref for the native
method to release, and Dispose our toggle ref. Fixes#382186.
svn path=/trunk/gtk-sharp/; revision=101734
the ChildrenChanged signal.
* glib/Signal.cs: first implementation of a managed
method for emitting signals.
svn path=/trunk/gtk-sharp/; revision=101700
* atk/glue/misc.c: glue for vms and singleton setup.
* atk/Misc.custom: add OnThreadsEnter, OnThreadsLeave, and
SetSingletonInstance members for Bridge implementors.
[More of #365437]
svn path=/trunk/gtk-sharp/; revision=101092
* 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
* generator/ReturnValue.cs: use new GLib.Opaque.OwnedCopy for owned
opaque return values.
* glib/Opaque.cs: introduce OwnedCopy property to support returning
owned opaque instances from native to managed callbacks.
[Fixes#374641]
svn path=/trunk/gtk-sharp/; revision=100762
* 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
* atk/Atk.metadata: markup all the Ref* methods to indicate owned refs.
* generator/ReturnValue.cs: Add owned object ToNative handling.
* generator/VirtualMethod.cs: Split ToNative call from managed method
invocation to avoid duplicate calls in null checking scenarios.
* glib/Object.cs: add OwnedHandle property for use by language binding
code which needs to pass owned refs to native methods.
svn path=/trunk/gtk-sharp/; revision=99849
* atk/Object.custom: take out a ref on the return value of
OnRefChild. Also add some null guarding and default to IntPtr.Zero
on exceptions.
svn path=/trunk/gtk-sharp/; revision=99826
* generator/InterfaceGen.cs: support "generic" interface
implementations like those exposed by gio. This is specifically for
libraries which return GTypes which are not exposed by the library
but which implement GInterfaces which are exposed by the library.
svn path=/trunk/gtk-sharp/; revision=99541
* atk/Makefile.am: include Object.custom.
* atk/glue/object.c: glue to override class methods.
* atk/glue/Makefile.am: include object.c.
(Patch reviewed by mkestner)
svn path=/trunk/gtk-sharp/; revision=99178
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
* bootstrap-2.12: bump svn version
* generator/CallbackGen.cs: add dnotify support to invoker.
Store and respond with incoming UserData params. Start using
__prefixed private vars to avoid collisions with parameters,
like the 'result' params in gio.
* generator/ManagedCallString.cs: use new data/dnotify invoker
ctors.
* generator/MethodBody.cs:
* generator/Parameters.cs: don't link "out" length params to
preceding strings.
* generator/VMSignature.cs: don't require UserData to be last
param, since it can have things like error after it.
svn path=/trunk/gtk-sharp/; revision=98782
* pango/AttrList.custom: pass copies of the attrs to insert*
since the list assumes ownership.
* pango/Makefile.am: add new custom file.
* pango/Pango.metadata: hide AttrList.Insert* for custom impl.
svn path=/trunk/gtk-sharp/; revision=98381
* gdk/Event.cs: add New method for consistency with generated
boxed types. Will be used by GLib.Value in the future.
svn path=/trunk/gtk-sharp/; revision=97052
* gdk/Pixbuf.custom: add destroy notification and pin byte[] to
avoid GC complications. Add a couple new convenience ctors as
well.
svn path=/trunk/gtk-sharp/; revision=96460
* glib/Source.cs: rework proxy removal to avoid boxing profile.
* glib/Idle.cs: save src_id in proxy to facilitate removal.
* glib/Timeout.cs: save src_id in proxy to facilitate removal.
[Fixes#359561]
svn path=/trunk/gtk-sharp/; revision=96363
* generator/VirtualMethod (CName): mangle the name.
* generator/SymbolTable.cs (MangleName): add 'remove' and 'foreach'
mappings. Should probably just get a C# keyword list and map all of
them instead of onesy twoseys.
Fixes for tnymail binding generation.
svn path=/trunk/gtk-sharp/; revision=94286
* glade/XML.custom: due to a recent Mono fix (bug #322762),
Type.GetFields does not return private fields from base classes
anymore, so the BindFields now has to go through the class
hierarchy to get all fields.
svn path=/trunk/gtk-sharp/; revision=93742
* glib/Object.cs: expose an internal ToggleRef prop.
* glib/Signal.cs: use ToggleRef for lookups instead of Object. Add
a Free method and release connections and gchandles.
* glib/ToggleRef.cs: add signal hash and release signals on free.
svn path=/trunk/gtk-sharp/; revision=93548
* glib/Object.cs: remove ref from Objects hash prior to releasing it.
2008-01-17 Mike Kestner <mkestner@novell.com>
* glib/ToggleRef.cs: check for null reference in IsAlive.
svn path=/trunk/gtk-sharp/; revision=93204
* bootstrap-2.12: update version to 2.11.90.
* configure.in.in: incorporate build service patch.
* glib/glib-sharp-2.0.pc.in: add cflags for new api.xml.
* glib/Makefile.am: install api.xml to correct dir.
svn path=/trunk/gtk-sharp/; revision=92686
* generator/Parameters.cs: fix marshaling for ArrayCount params where
casting is required, like gsize/size_t count parameters.
svn path=/trunk/gtk-sharp/; revision=91199
* generator/MethodBase.cs: move Name stuff from subclasses.
Check for (G|S)et<UpperCaseLetter> in new Has props.
* generator/Method.cs:
* generator/VirtualMethod.cs: refactor out Name stuff. Use
new Has(G|S)etterName props.
* pango/Pango.metadata: workaround Has/Hash collision with
the old broken getter check. [Fixes#344954]
svn path=/trunk/gtk-sharp/; revision=90458
* glib/Signal.cs: ignore GCHandles with null targets since
their object has been collected. [Fixes#344250 again]
svn path=/trunk/gtk-sharp/; revision=90428
* glib/IOChannel.cs: IOChannel wrapper implementation.
* glib/Makefile.am: build new files.
* glib/Marshaller.cs: new string array marshaling methods.
* glib/Spawn.cs: g_spawn* wrapper implementation.
* sample/SpawnTests.cs: tests for the new GLib.Process class
and a cursory exercise of IOChannel for SpawnAsyncWithPipes.
svn path=/trunk/gtk-sharp/; revision=89477
* glib/Marshaller.cs: new null-terminated string[] marshaler from
Mono.Unix with adaptations by Michael Hutchinson.
svn path=/trunk/gtk-sharp/; revision=89218
* glib/SList.cs:
* glib/List.cs: add Array dup of object[] ctor since we
are passing typed arrays from generated code.
svn path=/trunk/gtk-sharp/; revision=88730
* generator/Method.cs: need to use on the Base method name to
lookup complements and determine if the method is a getter or setter
when an explicit interface method name is used.
svn path=/trunk/gtk-sharp/; revision=88726
* configure.in.in: add a win64 check and a compiler define for
handling win64 32bit longs.
* generator/LPGen.cs: use int to marshal on win64.
* generator/LPUGen.cs: use uint to marshal on win64.
* generator/SymbolTable.cs: remove fixme.
svn path=/trunk/gtk-sharp/; revision=87922
* 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
* glib/Object.cs: add ctor (), which invokes CreateNativeObject
to allow direct subclasses that do all the registration automatically.
svn path=/trunk/gtk-sharp/; revision=86730
* generator/*.cs: add DefaultValue prop for obtaining a
sane value when we need to return a value but something bad has
happened such that we can't get a real value. Needed for iface
signal marshaling, among other places we're partially working
around it now.
svn path=/trunk/gtk-sharp/; revision=86157
* generator/VirtualMethod.cs: refactor delegate generation into
GenerateCallback and add [CDeclCallback] which was missing.
* generator/InterfaceGen.cs: kill GenerateDelegates. They are now
generated by VirtualMethod.GenerateCallback.
svn path=/trunk/gtk-sharp/; revision=86026
* generator/CallbackGen.cs (GenInvoker): null check the sig field
and set it up. This can happen when generating the marshaling types
from dependent libraries instead of via the Generate method.
svn path=/trunk/gtk-sharp/; revision=85831
* 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
* glib/ListBase.cs : add AllocNativeElement method and an
Append (object) method that uses it.
* glib/List.cs : add object[] ctor using new append method.
* glib/SList.cs : add object[] ctor using new append method.
These are needed to return G(S)List* values as virtual method
return values.
svn path=/trunk/gtk-sharp/; revision=84112
* 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
* generator/Ctor.cs : Validate before generating and adjust protection
on a couple private methods.
* generator/Parameters.cs : remove unused var to kill warning.
svn path=/trunk/gtk-sharp/; revision=83132
* generator/MethodBody.cs : refactor finish logic into parameter.
* generator/Parameters.cs : refactor finish logic into parameter and
fix some failures to marshal ref params post call.
svn path=/trunk/gtk-sharp/; revision=83020
* generator/OpaqueGen.cs : only generate Copy override for methods
with no parameters. Fixes a gnome-sharp build problem.
svn path=/trunk/gtk-sharp/; revision=82869
* 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
* generator/OpaqueGen.cs : override the new Copy vm if a Copy method
exists for the type.
* glib/Opaque.cs : add a virtual method to allow subclasses with
Copy methods to override. Use the method in GetOpaque for unowned
instantiations to try to obtain an owned instance. [Fixes#82037]
svn path=/trunk/gtk-sharp/; revision=82293
* gdk/EventExpose.cs : return a pointer from the get_area glue
pinvoke to avoid VS crashes on win32.
* gdk/glue/event.c : return a GdkRectangle* to avoid stack imbalance
on VS debugger. [Fixes#82098]
svn path=/trunk/gtk-sharp/; revision=82208
* generator/StructBase.cs : use typeof to pass type to PtrToStruct
to avoid an instantiation and method call. Duh.
svn path=/trunk/gtk-sharp/; revision=81907
* generator/ImportSignature.cs : use Parameter.NativeSignature
prop and refactor out some GError handling.
* generator/MethodBody.cs : Refactor logic into Parameters.
* generator/Parameters.cs : add ArrayParameter, ArrayCountPair, and
ErrorParameter subclasses to refactor spaghetti code in MethodBody.
svn path=/trunk/gtk-sharp/; revision=81721
* parser/gapi2-fixup.in:
* parser/gapi2-parser.in:
Don't use 'which' anymore, as it doesn't work in all caes (ie:
when symlinks are
in the way)
svn path=/trunk/gtk-sharp/; revision=76653
* generator/NativeCallbackSignature.cs :
* generator/Signal.cs : don't use ref IntPtr in native callback sigs
for struct parameters. Use IntPtr and StructureToPtr. Fixes the
layout issues in MD introduced by the structure marshaling rework.
svn path=/trunk/gtk-sharp/; revision=76433
* 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
* glib/Object.cs : do the Timeout switch in the finalizer
instead of in Dispose, where it can cause problems if people
override Dispose.
* generator/ObjectGen.cs : don't generate finalizers for every
subclass, just rely on the ~GLib.Object implementation.
svn path=/trunk/gtk-sharp/; revision=75657
* glib/Idle.cs :
* glib/Timeout.cs : don't add the CDeclCallback attr to the
public delegate type, since it causes a MissingMethod exception
on win32.
svn path=/trunk/gtk-sharp/; revision=75656
* generator/CallbackGen.cs : generate try/catch blocks for
native to managed marshallers. [Fixes the rest of #80516]
svn path=/trunk/gtk-sharp/; revision=74425
* generator/Signal.cs : add try/catch blocks to native callback
delegates so that exceptions are not propagated across the native
boundary. Now raises GLib.ExceptionManager.UnhandledException.
* glib/ExceptionManager.cs : new class with UnhandledException
event and a static method to raise it.
* glib/Signal.cs : wrap the generic EventHandler callback delegate
with try/catch blocks and raise the UnhandledException event.
svn path=/trunk/gtk-sharp/; revision=73840
* 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
* generator/MethodBody.cs : handle set method conversion to
property for array parameters with preceding count params.
svn path=/trunk/gtk-sharp/; revision=73613
* 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
* sample/GtkDemo/DemoIconView.cs : use Gtk.Stock icons to avoid
crashes when the previous gnome icons aren't installed. [#78212]
svn path=/trunk/gtk-sharp/; revision=70737
* 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
* gdk/Screen.custom : manually implement FontOptions property so
we can use reflection to access the internal Mono.Cairo ctor.
* gdk/Gdk.metadata : list marshaling, method-to-property renames,
and some hides form manual implementation. Hide
gdk_atom_intern_static_string wrapper since it is pointless outside
the context of C code.
svn path=/trunk/gtk-sharp/; revision=63366
* 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
* *: huge amounts of surgery to split off gnome-sharp module.
Clean out all the gnome related stuff from the auto* files.
make distcheck works on the leaner-meaner gtk-sharp module.
svn path=/trunk/gtk-sharp/; revision=63111
* bootstrap*: kill the 2.4/2.6/2.8 straps, they are on a
branch now. update 2.10 strap for new apis.
* sources/Makefile.am : parse 2.16 sources for gnome libs.
* sources/gtk-sharp-2.10-sources.xml : ditto.
* parser/gapi-parser.cs : explicitly use an indented XML writer.
* gnomevfs/gnome-vfs-api-2.16.raw: regen
* gnomevfs/Gnomevfs.metadata: some build fixes
* gnome/gnome-api-2.16.raw: regen
* gnome/Gnome.metadata: some build fixes
* sample/PrintSample.cs: remove new Gtk/Gnome ambiguities.
svn path=/trunk/gtk-sharp/; revision=63078
* sources/gtk-sharp-2.10-sources.xml : update to gnome 2.15.4
sources for the 2.10 api build.
* sources/Makefile.am : ditto.
svn path=/trunk/gtk-sharp/; revision=62631
* glade/HandlerNotFoundExeception.cs:
* glade/XML.custom: provide a better error when the signature of a
handler does not match the one of the event.
svn path=/trunk/gtk-sharp/; revision=61911
* glib/ValueArray.cs: Don't immediately free ValueArrays; queue
them up to be freed in the main thread by using a Timeout. This
fixes SMP deadlocks when the GValues contained therein aren't
threadsafe (like GDK resources). Fixes Novell bug #168650.
svn path=/trunk/gtk-sharp/; revision=60424
* gnomevfs/MimeType.cs : remove string from all pinvoke sigs. now
adheres to the const/non-const conventions specified in the vfs
headers. Fixes#77534.
svn path=/trunk/gtk-sharp/; revision=58615
* glib/ListBase.cs : deal with ownership of Opaque elements.
* glib/Marshaller.cs : add a hack to deal with Opaque ownership in
ListToArray marshaling.
svn path=/trunk/gtk-sharp/; revision=58609
* sample/gnomevfs/Makefile.am : make TestXfer conditional to a mono
build since it uses Mono.GetOptions. [Fixes#77497]
svn path=/trunk/gtk-sharp/; revision=56950
* generator/Signal.cs : virtual method enum retvals must be case to
Enum before casting to their ultimate type. Also dispose retval
gvalues to avoid reference leaks.
svn path=/trunk/gtk-sharp/; revision=56529
* configure.in.in : work around broken vte that doesn't
advertise its gtk+ dependency to pkg-config. [Fixes#77323]
svn path=/trunk/gtk-sharp/; revision=55928
* sample/VteTest.cs: use gtk# calls instead of gnome#
* vte/vte-sharp-2.0.pc.in: depend on gtk-sharp instead of gnome-sharp
* configure.in.in: Allow vte to be build if gnome isn't going to be built
[Fixes#77182]
svn path=/trunk/gtk-sharp/; revision=55689
* Thread.cs: Add GLib.Thread.Supported, should be checked to avoid doing
Thread.Init() twice (Mono runtime initialises GLib threads itself, MS
runtime doesn't)
* glue/thread.c: g_thread_supported() is a macro, so needs glue
* glue/Makefile.am:
* glue/makefile.win32: Update makefiles with new glue file.
svn path=/trunk/gtk-sharp/; revision=54926
* generator/FieldBase.cs: Properly convert marshalled value
to native value.
* generator/CallbackGen.cs: Added parens to the result of ToNativeReturn,
since it may have problems with the cast.
svn path=/trunk/gtk-sharp/; revision=54671
* gdk/PixbufLoader.custom (InitFromAssemblyResource): move stream
access code outside the try block so only the Load is cleaned up with
the finally block. Add some other arg checking. [Fixes#76997]
svn path=/trunk/gtk-sharp/; revision=54532