Commit graph

301 commits

Author SHA1 Message Date
Bertrand Lorentz 32d10bd319 Use GLib.Marshaller.Free instead of calling g_free directly
Using the GLib.Marshaller.Free method means we don't need to have the
g_free function definition duplicated all over the place.
2013-11-17 16:20:02 +01:00
Andrés G. Aragoneses 10546e2ffa MSBuild: fix the solution build (except audit and sample projects)
This commit makes it possible to build any project of the gtk-sharp.sln
from an IDE (except audit and sample projects, which require a bit more
work).

This doesn't mean that autotools is deprecated, but just that it is more
comfortable to use an IDE when working on gtk-sharp because it will
offer better auto-completion, and will stop highlight misleading
semantic errors, from now on.
2013-11-02 15:48:58 +01:00
Andrés G. Aragoneses 6f2d80eab0 gdk: enable Unsafe in MSBuild 2013-10-22 12:33:06 +02:00
Bertrand Lorentz b2fb84d14b Clean up .gitignore files 2013-10-13 18:38:33 +02:00
Andrés G. Aragoneses 872e0edfdd MSBuild: remove AssemblyInfo.cs where it's not present
The only autogenerated AssemblyInfo files are in cairo and in
gtk-sharp's root, not inside other libraries like atk, glib, etc.
Removing them will make MonoDevelop stop rendering a red element
underneath each project.
2013-09-24 01:24:39 +02:00
Andrés G. Aragoneses 9016c304de MSBuild: change some projects to Library type, not Executable
Even though gtk-sharp cannot be built via MSBuild (yet?), it's better
to make the .csproj reflect more closely what you get with the normal
build.
2013-09-24 01:24:33 +02:00
Alan McGovern 100696b5c1 gdk: It is valid to pass a null gdk_event sometimes
For example gtk_drag_start allows a null Gdk.Event so we need to marshal
it to IntPtr.Zero instead of throwing a NullReferenceException

Cherry-picked from the gtk-sharp-2.12 branch.
2013-08-18 18:32:05 +02:00
Michael Hutchinson 38d1a3f13e cairo: Introduce the concept of reference ownership
Also:
  * improving naming consistency
  * obsolete old/broken stuff
  * clean up tabs/space mix

NOTE: this removes the wrapper caches for Pattern and Surface as
there was no reliable way to clear them.

This is a merge from changes in Mono.Cairo in mono 3.2.
2013-07-26 17:43:11 -05:00
Bertrand Lorentz 05f67db2ee gdk: Hide Global.TextPropertyToUtf8ListForDisplay method
It is implemented manually in TextProperty.ToStringListForDisplay.
2013-04-21 16:54:48 +02:00
Bertrand Lorentz 5e3b720408 gdk: Remove invalid method and P/Invoke in TextProperty
The native functions gdk_free_text_list and
gdk_text_property_to_utf8_list are gone, and we now need to use StrFreeV
to free the native string list.
2013-04-21 16:50:37 +02:00
Bertrand Lorentz bc0aee1328 gdk: Remove invalid Global.DevicesList method
The native function gdk_devices_list is gone, device handling is now
handled through DeviceManager.
2013-04-21 16:42:18 +02:00
Bertrand Lorentz 253da2e05c Remove obsolete fix-ups for needs_ref attribute
The needs_ref attribute hasn't been used by the generator for quite some
time now.
2013-02-23 13:41:50 +01:00
Bertrand Lorentz 6ecd2d01f9 gdk: Use a Dictionary to hold the filter functions in Window class 2012-11-04 16:58:49 +01:00
Bertrand Lorentz 608a760d45 gdk: Add reference to the GLib project in the .csproj 2012-11-04 16:58:49 +01:00
Bertrand Lorentz 47f3ca6ee5 gdk: Remove AddClientMessageFilter method from Gdk.Display and Global
The native function gdk_display_add_client_message_filter is gone from
GDK.

You can use Gdk.Window.AddFilter as a replacement.
2012-11-04 16:58:49 +01:00
Bertrand Lorentz 60612071c1 Add a MonoDevelop solution and projects for browsing the codebase
This is just to be able to use MonoDevelop to browse the codebase, both
custom and generated code. It is NOT intended to be used to build
anything.
2012-10-13 16:44:10 +02:00
Bertrand Lorentz 64a79b5621 gdk: Re-enable code using Device.NumAxes
As the Device.NumAxes is back now, we can re-enable the pieces of code
that were disabled during the inital port.
2012-07-02 11:23:29 -04:00
Bertrand Lorentz 15486fda75 gdk: Delete the commented out Window.ClearArea method
All the gdk_window_clear* methods were removed in GTK+ 3.0, so we can
remove the custom code that was ifdef'd out in the initial port.
2012-07-02 11:23:19 -04:00
Bertrand Lorentz d2a93817a1 gdk: Move all .custom files to partial classes 2012-07-02 11:12:25 -04:00
Bertrand Lorentz b79ac26063 gdk: Rename the Device.NAxes property to NumAxes
We had a NumAxes property in 2.12, coming from a field. It's now a
property called n-axes, with an accessor function, so we need to rename
both.
2012-07-02 10:43:28 -04:00
Mike Kestner 645815d478 Fix Pixdata buffer leak.
Patch provided by Antonio on gtk-sharp-list.
2012-04-22 11:47:28 -05:00
Bertrand Lorentz ed9a01f5c2 gdk: Add a dllmap for libgio-2.0-0.dll
As Gdk.Pixbuf uses two functions from libgio, we need a dllmap for that
in gdk-sharp.dll.config.
2011-12-04 20:48:22 +01:00
Mike Kestner aae2b05300 Implement IEquatable<T> on structs.
* gdk/Gdk.metadata: suppress Color.GetHashCode().
* gdk/Point.custom: remove generated methods.
* generator/StructBase.cs: Generate Equals(T), Equals(object), and GetHashCode.
* generator/StructField.cs: helper property for equality testing.
* gtk/TreeIter.custom: remove generated methods.
2011-10-07 21:55:26 -05:00
Olivier Dufour 2c83126846 Fix NRE in Gdk.Window.SetBackgroundPattern
If we set it to null background is set to parent brackground.
So we must handle null case and sent it to native.
2011-09-01 21:25:25 +02:00
Bertrand Lorentz 96a1f100c7 gdk: Fix up WindowWindowClass enum value names
WindowClass was renamed to WindowWindowClass so the fix ups were
incorrectly dropped.
2011-07-16 16:03:35 +02:00
Bertrand Lorentz 6e3ad5f7e3 gdk: Various fixups in Gdk.metadata
Unhide GdkDevice.GetState and hide the GdkColorInfo and GdkDeviceKey
private structs.

Specify the return types for several methods in GdkScreen, GdkDevice and
GdkDeviceManager.
2011-07-03 16:44:16 +02:00
Bertrand Lorentz d17d94f07e gdk: Kill libgdksharpglue
The only remaining bits in gdk/glue were 2 obsolete functions, which
were not really used.

Also clean up Device.custom to remove obsolete bits, including
references to libgdksharpglue.
2011-07-03 16:44:16 +02:00
Bertrand Lorentz 3ff334d0cc gdk: Add explicit conversion to and from GLib.Value for Rectangle
This allows the valtest sample to compile and work.
2011-06-18 19:21:38 +02:00
Andrés G. Aragoneses db40040fdc Gdk: Transform the out param of Rectangle.Union() to a return value.
Not only this is prettier but it's also aligned with the 2.12.x API.
2011-04-15 17:31:35 +02:00
Mike Kestner 571bd01356 Fix crashes in Gdk.Pixbuf.Savev
Patch from Bertrand Lorentz <bertrand.lorentz@gmail.com>

* gdk/Gdk.metadata: hide gdk_pixbuf_savev
* gdk/Pixbuf.custom: manually implement Savev to NullTerm the string[]
    parameters.

[Fixes #681111]
2011-04-06 11:01:39 -05:00
Mike Kestner 6be0718ff2 Simplified Signal handling
* gdk/Display.custom: rework signal connection
* gdk/Window.custom: rework signal connection
* generator/Signal.cs: generate for new API.
* glib/Object.cs: add (Add|Remove)SignalHandler methods and use
them for the Notify connections.  Move to generic collections for
everything but the Data hash.
* glib/Signal.cs: kill Lookup methods and add delegate fields
* glib/ToggleRef.cs: remove Signals hash, it doesn't belong here.
* gtk/Clipboard.custom: rework signal connection
* gtk/ListStore.custom: rework signal connection
* gtk/TextView.custom: remove obsolete signal
* gtk/TreeModelAdapter.custom: rework signal connection
* gtk/TreeModelFilter.custom: rework signal connection
* gtk/TreeModelSort.custom: rework signal connection
* gtk/TreeStore.custom: rework signal connection
* gtk/Widget.custom: rework signal connection
* gtk/Window.custom: remove obsolete signal
2011-03-24 18:33:24 -05:00
Mike Kestner 0a094c2662 Cleanup the Gdk build.
* gdk/Colormap.custom: kill dead code
* gdk/DeviceAxis.custom: kill dead code
* gdk/EdgeTable.custom: kill dead code
* gdk/Event.cs: remove dead ClientEvent mapping
* gdk/EventClient.cs: kill dead code
* gdk/GCValues.custom: kill dead code
* gdk/Gdk.metadata: remove a bunch of dead markup and add some new
* gdk/Input.custom: kill dead code
* gdk/Makefile.am: remove dead files
* gdk/PangoAttrEmbossColor.custom: kill dead code
* gdk/PangoAttrEmbossed.custom: kill dead code
* gdk/PangoAttrStipple.custom: kill dead code
* gdk/Region.custom: kill dead code
* gdk/RgbCmap.custom: kill dead code
* gdk/Window.custom: kill dead code
2011-02-18 22:00:34 -06:00
Mike Kestner 27b71b1982 Get Scribble sample working.
* cairo/cairo-api.xml: add the Content enum type and fix surface symbol.
* gdk/gdk-sharp.dll.config.in: s/3.0/3/ on the so name.
* sample/Makefile.am: enable scribble.exe build
* sample/Scribble.cs: rewrite for new API, specifically replace pixmap
drawing usage with cairo, and use OnDrawn in place of OnExposeEvent.
Also Made it a subclass of DrawingArea instead of handling events.
2011-02-15 10:19:07 -06:00
Mike Kestner 3ed7e0901e Update to Gtk+ 3.0.0 API.
* configure.ac: require gtk+-3.0.0 and glib-2.28.0
* gdk/gdk-api.raw: reparse
* gdk/gdk-symbols.xml: add alias for Window (XID) to gulong
* gtk/Plug.custom: update custom ctors to ulong XID versions.
* gtk/gtk-api.raw: reparse
* gtk/gtk-sharp.dll.config.in: change dllname remap to match 3.0.0 so.
* sources/.gitignore: fix glib and gtk+ dirs
* sources/Makefile.am: update to gtk+ 3.0.0
* sources/sources.xml: update to gtk+ 3.0.0
2011-02-12 15:30:20 -06:00
Mike Kestner 70d1b232f2 DllImport updates for gdk. 2011-02-10 21:16:05 -06:00
Mike Kestner 3d8c4e25fd Kill some unneeded #if GTK_SHARP_N checks
* gdk/Event.cs
* glib/Format.cs
* gtk/Builder.custom
* gtk/IconTheme.custom
* pango/Attribute.cs
Remove versioned code since it's all there in 3.0.
2011-02-09 10:28:31 -06:00
Mike Kestner 34c0ecbcf7 The rest of the first pass.
*.*: Stubbing and tweaking and cajoling and disabling to get
the first successful build of 3.0 bindings.
2011-02-08 22:15:37 -06:00
Mike Kestner 7d70a4313a Reparse and fix build for G_DEFINE_BOXED_TYPE
* gdk/PixbufFormat.custom: kill redundant Obsolete prop.
* gdk/Makefile.am: remove file.
* gdk/gdk-api.raw: reparse
* gio/Gio.metadata: hide a couple opaque fields.
* gio/gio-api.raw: reparse
2011-01-31 10:57:06 -06:00
Mike Kestner 955cdcf123 Update Gdk to the 2.99 API
* cairo/Surface.cs: expose LookupSurface
* cairo/cairo-api.xml: add surface mapping
* gdk/*: updates and hobbling to get gdk building.  lots of work
to come.
2011-01-30 22:49:15 -06:00
Mike Kestner f6d11d67b6 Cairo# 1.10.0 assembly.
* configure.ac: drop cairo conditionality
* cairo/AssemblyInfo.cs: set version to 1.10.0.0
* cairo/Makefile.am: unconditional build and add Region.cs
* cairo/cairo-api.xml: initial type exposure.
* pango/Makefile.am: use cairo-sharp.dll and cairo-api.xml
* pango/Pango.metadata: drop explicit symbol additions.
* gdk/Gdk.metadata: drop explicit symbol additions.
* gdk/Makefile.am: use cairo-sharp.dll and cairo-api.xml
* gtk/Makefile.am: use cairo-sharp.dll and cairo-api.xml
* sample/Makefile.am: use cairo-sharp.dll
* sample/GtkDemo/Makefile.am: use cairo-sharp.dll

This is an initial stab at a 1.10 binding.  It will probably take
more based on the number of errors still coming out of the Gdk
build.
2011-01-30 17:00:03 -06:00
Mike Kestner fe2d4c311a Flatten the bootstrap and remove glade-sharp
2010-11-21  Mike Kestner  <mkestner@novell.com>

	* removed the glade dir from the build since libglade is
	no longer supported in gnome3.  removed the gapi2-compat stuff
	since it doesn't make much sense now.  Removed the bootstrap
	mechanism since we are unlikely to be releasing multiple API
	versions from the same tree going forward.  The build is now a
	straight autogen.sh like most autotools projects.
2010-11-21 21:18:06 -06:00
Mike Kestner e2ee3523de 2010-03-25 Mike Kestner <mkestner@novell.com>
* gdk/Rectangle.custom: off-by-one in Right/Bottom. [Fixes #591148]

svn path=/trunk/gtk-sharp/; revision=154205
2010-03-25 15:57:47 +00:00
Christian Hoff 7b752d233c 2009-09-03 Christian Hoff <christian_hoff@gmx.net>
* glib/Global.cs: Kill the calling convention field again.
	It breaks GLib 2.x compatibility in the generator and there is
	probably no need to make the calling convention configurable.
	* .cs, *.custom: Hardcode Cdecl calling convention instead of
	using GLib's field.

svn path=/trunk/gtk-sharp/; revision=141283
2009-09-03 19:50:53 +00:00
Christian Hoff 58e97c087a 2009-09-02 Christian Hoff <christian_hoff@gmx.net>
* glib/Global.cs: Add a public constant field specifying the
	calling convention used by GLib and depending libraries.
	By now it's hardcoded to Cdecl as every non-Win32 runtime
	should ignore this attribute.
	* *.cs, *.custom: Use GLib.Global.CallingConvention for both
	pinvokes and callbacks. Plugs a stack leak on Win32. All
	pinvokes defaulted to StdCall and thus the stack was never
	cleaned up.

svn path=/trunk/gtk-sharp/; revision=141175
2009-09-02 20:17:37 +00:00
Christian Hoff 1e97a1046f 2009-08-30 Christian Hoff <christian_hoff@gmx.net>
Complete the major version jump. Gtk# 3 and 2 are now both
	installable within the same prefix.

	* */glue/Makefile.am: Produce *sharpglue-3 gluelibs.
	* *.custom, *.cs: pinvoke the new glue library.
	* *-2.0.pc.in: Rename to *-3.0.pc.in.

svn path=/trunk/gtk-sharp/; revision=140941
2009-08-30 20:06:33 +00:00
Christian Hoff b244c750d3 2009-08-12 Christian Hoff <christian_hoff@gmx.net>
* configure.in.in: Detect GDK backend.
	* */*.dll.config.in: Link against the libs of the correct GDK backend
	instead of using x11 on Linux/win32 on Windows.
	Patch by Christian Hergert.	[Fixes 527840]

svn path=/trunk/gtk-sharp/; revision=139750
2009-08-12 08:24:32 +00:00
Christian Hoff 940cf88750 2009-07-02 Christian Hoff <christian_hoff@gmx.net>
* 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
2009-07-02 20:18:10 +00:00
Christian Hoff 291ee61b2d 2009-04-13 Christian Hoff <christian_hoff@gmx.net>
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
2009-04-13 17:44:48 +00:00
Christian Hoff 01ed1a5e3e 2009-03-19 Christian Hoff <christian_hoff@gmx.net>
* 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
2009-03-19 18:13:01 +00:00
Christian Hoff d7095d495c 2009-03-17 Christian Hoff <christian_hoff@gmx.net>
* gdk/Property.custom: add new overloads to the Get method
	for the most common property types
	* gdk/Global.custom: Use the new overloads of Property.Get instead of glue

svn path=/trunk/gtk-sharp/; revision=129618
2009-03-17 18:40:35 +00:00