Re: [ANNOUNCE] libchamplain 0.6



Hi,

I have ported Vala bindigns from latest 0.4 to 0.6. Because I am
unsure in what way you prefer that we send you the patches I will send
it here. Please include it in the next 0.6 branch release. I will
prepare patches also for 0.7 development but I would like to
experiment first how to make automatic bindings building.

regards, Tomaž

On Tue, May 25, 2010 at 1:46 AM, Jiří Techet <techet gmail com> wrote:
> Hello everyone,
>
> libchamplain 0.6 is out. There hasn't been much exciting since 0.5.2;
> here's a brief list of changes:
>
> * Add dummy ChangeLog file (Łukasz Jernaś)
> * Fix a problem on some machines when tiles are being destroyed (Jiří Techet)
> * Add minimal demos (Jiří Techet)
> * Some other minor fixes (Jiří Techet)
>
> For more details refer to git log.
>
> This is probably the right place to point out several
> incompatibilities with the 0.4 branch. There have been many changes in
> the API so it's possible you encounter some errors while compiling
> your program, but these should be easy to fix. However, there are two
> gotchas if you are upgrading from the previous stable release mainly
> because your sources will compile just fine, but when running it,
> unexpected things happen:
>
> 1. ChamplainMapSource and ChamplainPolygon inherit from
> GInitiallyUnowned now and g_object_ref_sink() is called on them. The
> practical consequence is that you MUST NOT call g_object_unref() once
> you insert them to ChamplainView, otherwise your application will
> crash. libchamplain takes ownership of them so you don't have to care
> about their deallocation any more.
>
> 2. If you want to create a cached map source, call
> champlain_map_source_factory_create_cached_source() instead of
> champlain_map_source_factory_create(). The latter function will just
> create the bare map source without any caching. So if it seems to you
> the tiles don't get cached, this is probably the cause.
>
> We're late with this release but I'll do my best to follow the gnome
> schedule for the following release. In a few days I'll send a few
> ideas what I'd like to have implemented for 0.8.
>
> Cheers,
>
> Jiri
> _______________________________________________
> libchamplain-list mailing list
> libchamplain-list gnome org
> http://mail.gnome.org/mailman/listinfo/libchamplain-list
>
From f978b104840bc398e03312217efbb285076fcbf9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Toma=C5=BE=20Vajngerl?= <quikee gmail com>
Date: Tue, 25 May 2010 18:35:20 +0200
Subject: [PATCH] Vala bindings support

---
 Makefile.am                                        |    2 +-
 bindings/Makefile.am                               |    3 +
 bindings/vala/Makefile.am                          |    7 +
 bindings/vala/champlain-gtk/Makefile.am            |   13 +
 bindings/vala/champlain-gtk/champlain-gtk-0.6.deps |    2 +
 bindings/vala/champlain-gtk/champlain-gtk-0.6.vapi |   19 +
 .../champlain-gtk-0.6/champlain-gtk-0.6.defines    |    1 +
 .../champlain-gtk-0.6/champlain-gtk-0.6.files      |    2 +
 .../champlain-gtk-0.6/champlain-gtk-0.6.gi         |   40 +
 .../champlain-gtk-0.6/champlain-gtk-0.6.metadata   |    1 +
 .../champlain-gtk-0.6/champlain-gtk-0.6.namespace  |    1 +
 bindings/vala/champlain-gtk/create.sh              |    1 +
 bindings/vala/champlain/Makefile.am                |   13 +
 bindings/vala/champlain/champlain-0.6.deps         |    1 +
 bindings/vala/champlain/champlain-0.6.vapi         |  426 ++++++
 .../champlain/champlain-0.6/champlain-0.6.defines  |    1 +
 .../champlain/champlain-0.6/champlain-0.6.files    |    2 +
 .../vala/champlain/champlain-0.6/champlain-0.6.gi  | 1529 ++++++++++++++++++++
 .../champlain/champlain-0.6/champlain-0.6.metadata |    9 +
 .../champlain-0.6/champlain-0.6.namespace          |    1 +
 bindings/vala/champlain/create.sh                  |    1 +
 bindings/vala/demos/.gitignore                     |    2 +
 bindings/vala/demos/Makefile.am                    |   17 +
 bindings/vala/demos/launcher.vala                  |  133 ++
 bindings/vala/demos/markers.vala                   |   66 +
 configure.ac                                       |   36 +
 26 files changed, 2328 insertions(+), 1 deletions(-)
 create mode 100644 bindings/vala/Makefile.am
 create mode 100644 bindings/vala/champlain-gtk/Makefile.am
 create mode 100644 bindings/vala/champlain-gtk/champlain-gtk-0.6.deps
 create mode 100644 bindings/vala/champlain-gtk/champlain-gtk-0.6.vapi
 create mode 100644 bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.defines
 create mode 100644 bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.files
 create mode 100644 bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.gi
 create mode 100644 bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.metadata
 create mode 100644 bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.namespace
 create mode 100644 bindings/vala/champlain-gtk/create.sh
 create mode 100644 bindings/vala/champlain/Makefile.am
 create mode 100644 bindings/vala/champlain/champlain-0.6.deps
 create mode 100644 bindings/vala/champlain/champlain-0.6.vapi
 create mode 100644 bindings/vala/champlain/champlain-0.6/champlain-0.6.defines
 create mode 100644 bindings/vala/champlain/champlain-0.6/champlain-0.6.files
 create mode 100644 bindings/vala/champlain/champlain-0.6/champlain-0.6.gi
 create mode 100644 bindings/vala/champlain/champlain-0.6/champlain-0.6.metadata
 create mode 100644 bindings/vala/champlain/champlain-0.6/champlain-0.6.namespace
 create mode 100644 bindings/vala/champlain/create.sh
 create mode 100644 bindings/vala/demos/.gitignore
 create mode 100644 bindings/vala/demos/Makefile.am
 create mode 100644 bindings/vala/demos/launcher.vala
 create mode 100644 bindings/vala/demos/markers.vala

diff --git a/Makefile.am b/Makefile.am
index 072645a..7ca3d21 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -31,7 +31,7 @@ endif
 pkgconfig_DATA = $(pcfiles)
 pkgconfigdir = $(libdir)/pkgconfig
 
-DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc --enable-gtk --enable-python --enable-memphis --enable-introspection
+DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc --enable-gtk --enable-python --enable-vala --enable-memphis --enable-introspection
 
 EXTRA_DIST = \
 	champlain-gtk.pc.in \
diff --git a/bindings/Makefile.am b/bindings/Makefile.am
index 0a26f9a..13c6559 100644
--- a/bindings/Makefile.am
+++ b/bindings/Makefile.am
@@ -4,3 +4,6 @@ if ENABLE_PYTHON
   SUBDIRS+=python
 endif
 
+if ENABLE_VALA
+  SUBDIRS+=vala
+endif
\ No newline at end of file
diff --git a/bindings/vala/Makefile.am b/bindings/vala/Makefile.am
new file mode 100644
index 0000000..a505be3
--- /dev/null
+++ b/bindings/vala/Makefile.am
@@ -0,0 +1,7 @@
+SUBDIRS = champlain demos
+
+if ENABLE_GTK
+  SUBDIRS += champlain-gtk
+endif
+
+DIST_SUBDIRS = champlain champlain-gtk demos
diff --git a/bindings/vala/champlain-gtk/Makefile.am b/bindings/vala/champlain-gtk/Makefile.am
new file mode 100644
index 0000000..3238a83
--- /dev/null
+++ b/bindings/vala/champlain-gtk/Makefile.am
@@ -0,0 +1,13 @@
+
+#champlain-gtk-0.6.vapi: $(top_srcdir)/champlain-gtk/GtkChamplain-0.6.gir
+#	$(VAPIGEN) --vapidir ../champlain --pkg champlain-0.6 --pkg clutter-1.0 --pkg atk --pkg gtk+-2.0 --library champlain-gtk-0.6 $^
+#	touch $@
+
+vapidir = $(datadir)/vala/vapi
+
+dist_vapi_DATA = \
+	champlain-gtk-0.6.vapi \
+	champlain-gtk-0.6.deps \
+	$(NULL)
+
+EXTRA_DIST = champlain-gtk-0.6.vapi
diff --git a/bindings/vala/champlain-gtk/champlain-gtk-0.6.deps b/bindings/vala/champlain-gtk/champlain-gtk-0.6.deps
new file mode 100644
index 0000000..44ac1cf
--- /dev/null
+++ b/bindings/vala/champlain-gtk/champlain-gtk-0.6.deps
@@ -0,0 +1,2 @@
+gtk+-2.0
+champlain-0.6
diff --git a/bindings/vala/champlain-gtk/champlain-gtk-0.6.vapi b/bindings/vala/champlain-gtk/champlain-gtk-0.6.vapi
new file mode 100644
index 0000000..a050787
--- /dev/null
+++ b/bindings/vala/champlain-gtk/champlain-gtk-0.6.vapi
@@ -0,0 +1,19 @@
+/* champlain-gtk-0.6.vapi generated by vapigen, do not modify. */
+
+[CCode (cprefix = "GtkChamplain", lower_case_cprefix = "gtk_champlain_")]
+namespace GtkChamplain {
+	[CCode (cheader_filename = "champlain-gtk/champlain-gtk.h")]
+	public class Embed : Gtk.Alignment, Atk.Implementor, Gtk.Buildable {
+		[CCode (type = "GtkWidget*", has_construct_function = false)]
+		public Embed ();
+		public unowned Champlain.View get_view ();
+		[NoAccessorMethod]
+		public Champlain.View champlain_view { owned get; }
+	}
+	[CCode (cname = "champlain_view_embed_get_view", cheader_filename = "champlain-gtk/champlain-gtk.h")]
+	public static unowned Champlain.View champlain_view_embed_get_view (GtkChamplain.Embed embed);
+	[CCode (cname = "champlain_view_embed_new", cheader_filename = "champlain-gtk/champlain-gtk.h")]
+	public static unowned Gtk.Widget champlain_view_embed_new (Champlain.View view);
+	[CCode (cname = "champlain_view_embed_set_view", cheader_filename = "champlain-gtk/champlain-gtk.h")]
+	public static void champlain_view_embed_set_view (GtkChamplain.Embed embed, Champlain.View view);
+}
diff --git a/bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.defines b/bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.defines
new file mode 100644
index 0000000..9dd5042
--- /dev/null
+++ b/bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.defines
@@ -0,0 +1 @@
+-DCHAMPLAIN_GTK_COMPILATION
diff --git a/bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.files b/bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.files
new file mode 100644
index 0000000..d968f35
--- /dev/null
+++ b/bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.files
@@ -0,0 +1,2 @@
+lib/libchamplain-gtk-0.4.so
+include/libchamplain-gtk-0.4/
diff --git a/bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.gi b/bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.gi
new file mode 100644
index 0000000..bac1ba7
--- /dev/null
+++ b/bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.gi
@@ -0,0 +1,40 @@
+<?xml version="1.0"?>
+<api version="1.0">
+	<namespace name="GtkChamplain">
+		<function name="champlain_view_embed_get_view" symbol="champlain_view_embed_get_view">
+			<return-type type="ChamplainView*"/>
+			<parameters>
+				<parameter name="embed" type="GtkChamplainEmbed*"/>
+			</parameters>
+		</function>
+		<function name="champlain_view_embed_new" symbol="champlain_view_embed_new">
+			<return-type type="GtkWidget*"/>
+			<parameters>
+				<parameter name="view" type="ChamplainView*"/>
+			</parameters>
+		</function>
+		<function name="champlain_view_embed_set_view" symbol="champlain_view_embed_set_view">
+			<return-type type="void"/>
+			<parameters>
+				<parameter name="embed" type="GtkChamplainEmbed*"/>
+				<parameter name="view" type="ChamplainView*"/>
+			</parameters>
+		</function>
+		<object name="GtkChamplainEmbed" parent="GtkAlignment" type-name="GtkChamplainEmbed" get-type="gtk_champlain_embed_get_type">
+			<implements>
+				<interface name="AtkImplementor"/>
+				<interface name="GtkBuildable"/>
+			</implements>
+			<method name="get_view" symbol="gtk_champlain_embed_get_view">
+				<return-type type="ChamplainView*"/>
+				<parameters>
+					<parameter name="embed" type="GtkChamplainEmbed*"/>
+				</parameters>
+			</method>
+			<constructor name="new" symbol="gtk_champlain_embed_new">
+				<return-type type="GtkWidget*"/>
+			</constructor>
+			<property name="champlain-view" type="ChamplainView*" readable="1" writable="0" construct="0" construct-only="0"/>
+		</object>
+	</namespace>
+</api>
diff --git a/bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.metadata b/bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.metadata
new file mode 100644
index 0000000..b857b0c
--- /dev/null
+++ b/bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.metadata
@@ -0,0 +1 @@
+GtkChamplain cheader_filename="champlain-gtk/champlain-gtk.h"
diff --git a/bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.namespace b/bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.namespace
new file mode 100644
index 0000000..289de1e
--- /dev/null
+++ b/bindings/vala/champlain-gtk/champlain-gtk-0.6/champlain-gtk-0.6.namespace
@@ -0,0 +1 @@
+GtkChamplain
diff --git a/bindings/vala/champlain-gtk/create.sh b/bindings/vala/champlain-gtk/create.sh
new file mode 100644
index 0000000..020af5e
--- /dev/null
+++ b/bindings/vala/champlain-gtk/create.sh
@@ -0,0 +1 @@
+vapigen --library champlain-gtk-0.6 --pkg clutter-gtk-0.10 --pkg gtk+-2.0 --pkg champlain-0.6 --vapidir=../champlain champlain-gtk-0.6/champlain-gtk-0.6.gi --metadata champlain-gtk-0.6/champlain-gtk-0.6.metadata
diff --git a/bindings/vala/champlain/Makefile.am b/bindings/vala/champlain/Makefile.am
new file mode 100644
index 0000000..7e5bc79
--- /dev/null
+++ b/bindings/vala/champlain/Makefile.am
@@ -0,0 +1,13 @@
+
+#champlain-0.6.vapi: $(top_srcdir)/champlain/Champlain-0.6.gir
+#	$(VAPIGEN) --pkg atk --pkg gdk-2.0 --pkg clutter-1.0 --library champlain-0.6 $^
+#	touch $@
+
+vapidir = $(datadir)/vala/vapi
+
+dist_vapi_DATA = \
+	champlain-0.6.vapi \
+	champlain-0.6.deps \
+	$(NULL)
+
+EXTRA_DIST = champlain-0.6.vapi
diff --git a/bindings/vala/champlain/champlain-0.6.deps b/bindings/vala/champlain/champlain-0.6.deps
new file mode 100644
index 0000000..39ce1f0
--- /dev/null
+++ b/bindings/vala/champlain/champlain-0.6.deps
@@ -0,0 +1 @@
+clutter-1.0
diff --git a/bindings/vala/champlain/champlain-0.6.vapi b/bindings/vala/champlain/champlain-0.6.vapi
new file mode 100644
index 0000000..29abd07
--- /dev/null
+++ b/bindings/vala/champlain/champlain-0.6.vapi
@@ -0,0 +1,426 @@
+/* champlain-0.6.vapi generated by vapigen, do not modify. */
+
+[CCode (cprefix = "Champlain", lower_case_cprefix = "champlain_")]
+namespace Champlain {
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public class BaseMarker : Clutter.Group, Clutter.Scriptable, Clutter.Container {
+		[CCode (type = "ClutterActor*", has_construct_function = false)]
+		public BaseMarker ();
+		public void animate_in ();
+		public void animate_in_with_delay (uint delay);
+		public void animate_out ();
+		public void animate_out_with_delay (uint delay);
+		public bool get_highlighted ();
+		public void set_highlighted (bool value);
+		public void set_position (double longitude, double latitude);
+		public bool highlighted { get; set; }
+		[NoAccessorMethod]
+		public double latitude { get; set; }
+		[NoAccessorMethod]
+		public double longitude { get; set; }
+	}
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public class Cache : GLib.Object {
+		public static unowned Champlain.Cache dup_default ();
+		public bool fill_tile (Champlain.Tile tile);
+		public uint get_size_limit ();
+		public void purge ();
+		public void purge_on_idle ();
+		public void set_size_limit (uint size_limit);
+		public bool tile_is_expired (Champlain.Tile tile);
+		public void update_tile (Champlain.Tile tile, uint filesize);
+		public uint size_limit { get; set; }
+	}
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public class Layer : Clutter.Group, Clutter.Scriptable, Clutter.Container {
+		[CCode (has_construct_function = false)]
+		public Layer ();
+		public void add_marker (Champlain.BaseMarker marker);
+		public void animate_in_all_markers ();
+		public void animate_out_all_markers ();
+		public void hide ();
+		public void hide_all_markers ();
+		public void remove_marker (Champlain.BaseMarker marker);
+		public void show ();
+		public void show_all_markers ();
+	}
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public class MapSource : GLib.Object {
+		public virtual void fill_tile (Champlain.Tile tile);
+		public uint get_column_count (int zoom_level);
+		public unowned string get_id ();
+		public double get_latitude (int zoom_level, uint y);
+		public unowned string get_license ();
+		public unowned string get_license_uri ();
+		public double get_longitude (int zoom_level, uint x);
+		public int get_max_zoom_level ();
+		public float get_meters_per_pixel (int zoom_level, double latitude, double longitude);
+		public int get_min_zoom_level ();
+		public unowned string get_name ();
+		public Champlain.MapProjection get_projection ();
+		public uint get_row_count (int zoom_level);
+		public uint get_tile_size ();
+		public uint get_x (int zoom_level, double longitude);
+		public uint get_y (int zoom_level, double latitude);
+		public void set_id (string id);
+		public void set_license (string license);
+		public void set_license_uri (string license_uri);
+		public void set_name (string name);
+		public void set_projection (Champlain.MapProjection projection);
+		public string id { get; set construct; }
+		public string license { get; set construct; }
+		public string license_uri { get; set construct; }
+		[NoAccessorMethod]
+		public uint max_zoom_level { get; set construct; }
+		[NoAccessorMethod]
+		public uint min_zoom_level { get; set construct; }
+		public string name { get; set construct; }
+		public Champlain.MapProjection projection { get; set construct; }
+		[NoAccessorMethod]
+		public uint tile_size { get; set construct; }
+	}
+	[Compact]
+	[CCode (copy_function = "champlain_map_source_desc_copy", type_id = "CHAMPLAIN_TYPE_MAP_SOURCE_DESC", cheader_filename = "champlain/champlain.h")]
+	public class MapSourceDesc {
+		public weak Champlain.MapSourceConstructor constructor;
+		public void* data;
+		public weak string id;
+		public weak string license;
+		public weak string license_uri;
+		public int max_zoom_level;
+		public int min_zoom_level;
+		public weak string name;
+		public Champlain.MapProjection projection;
+		public weak string uri_format;
+		[CCode (has_construct_function = false)]
+		public MapSourceDesc ();
+		public unowned Champlain.MapSourceDesc copy ();
+	}
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public class MapSourceFactory : GLib.Object {
+		public unowned Champlain.MapSource create (string id);
+		public static unowned Champlain.MapSourceFactory dup_default ();
+		public unowned GLib.SList dup_list ();
+		public bool register (Champlain.MapSourceDesc desc, Champlain.MapSourceConstructor constructor, void* data);
+	}
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public class Marker : Champlain.BaseMarker, Clutter.Scriptable, Clutter.Container {
+		[CCode (type = "ClutterActor*", has_construct_function = false)]
+		public Marker ();
+		[NoWrapper]
+		public virtual void draw_marker ();
+		[CCode (type = "ClutterActor*", has_construct_function = false)]
+		public Marker.from_file (string filename) throws GLib.Error;
+		[CCode (type = "ClutterActor*", has_construct_function = false)]
+		public Marker.full (string text, Clutter.Actor actor);
+		public Pango.Alignment get_alignment ();
+		public Clutter.Color get_color ();
+		public bool get_draw_background ();
+		public Pango.EllipsizeMode get_ellipsize ();
+		public unowned string get_font_name ();
+		public static Clutter.Color get_highlight_color ();
+		public static Clutter.Color get_highlight_text_color ();
+		public unowned Clutter.Actor get_image ();
+		public bool get_single_line_mode ();
+		public unowned string get_text ();
+		public Clutter.Color get_text_color ();
+		public bool get_use_markup ();
+		public bool get_wrap ();
+		public Pango.WrapMode get_wrap_mode ();
+		public void queue_redraw ();
+		public void set_alignment (Pango.Alignment alignment);
+		public void set_attributes (Pango.AttrList list);
+		public void set_color (Clutter.Color color);
+		public void set_draw_background (bool background);
+		public void set_ellipsize (Pango.EllipsizeMode mode);
+		public void set_font_name (string font_name);
+		public static void set_highlight_color (Clutter.Color color);
+		public static void set_highlight_text_color (Clutter.Color color);
+		public void set_image (Clutter.Actor image);
+		public void set_single_line_mode (bool mode);
+		public void set_text (string text);
+		public void set_text_color (Clutter.Color color);
+		public void set_use_markup (bool use_markup);
+		public void set_wrap (bool wrap);
+		public void set_wrap_mode (Pango.WrapMode wrap_mode);
+		[CCode (type = "ClutterActor*", has_construct_function = false)]
+		public Marker.with_image (Clutter.Actor actor);
+		[CCode (type = "ClutterActor*", has_construct_function = false)]
+		public Marker.with_text (string text, string? font, Clutter.Color? text_color, Clutter.Color? marker_color);
+		public Pango.Alignment alignment { get; set; }
+		public Clutter.Color color { get; set; }
+		public bool draw_background { get; set; }
+		public Pango.EllipsizeMode ellipsize { get; set; }
+		public string font_name { get; set; }
+		public Clutter.Actor image { get; set; }
+		public bool single_line_mode { get; set; }
+		public string text { get; set; }
+		public Clutter.Color text_color { get; set; }
+		public bool use_markup { get; set; }
+		public bool wrap { get; set; }
+		public Pango.WrapMode wrap_mode { get; set; }
+	}
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public class NetworkMapSource : Champlain.MapSource {
+		[CCode (has_construct_function = false)]
+		public NetworkMapSource.full (string id, string name, string license, string license_uri, uint min_zoom, uint max_zoom, uint tile_size, Champlain.MapProjection projection, string uri_format);
+		public unowned string get_tile_uri (int x, int y, int z);
+		public void set_uri_format (string uri_format);
+		[NoAccessorMethod]
+		public bool offline { get; set; }
+		[NoAccessorMethod]
+		public string proxy_uri { owned get; set; }
+		[NoAccessorMethod]
+		public string uri_format { owned get; set construct; }
+	}
+	[Compact]
+	[CCode (copy_function = "champlain_point_copy", type_id = "CHAMPLAIN_TYPE_POINT", cheader_filename = "champlain/champlain.h")]
+	public class Point {
+		public double lat;
+		public double lon;
+		[CCode (has_construct_function = false)]
+		public Point (double lat, double lon);
+		public unowned Champlain.Point copy ();
+	}
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public class Polygon : GLib.Object {
+		[CCode (has_construct_function = false)]
+		public Polygon ();
+		public unowned Champlain.Point append_point (double lat, double lon);
+		public void clear_points ();
+		public bool get_fill ();
+		public Clutter.Color get_fill_color ();
+		public bool get_mark_points ();
+		public unowned GLib.List get_points ();
+		public bool get_stroke ();
+		public Clutter.Color get_stroke_color ();
+		public double get_stroke_width ();
+		public void hide ();
+		public unowned Champlain.Point insert_point (double lat, double lon, int pos);
+		public void remove_point (Champlain.Point point);
+		public void set_fill (bool value);
+		public void set_fill_color (Clutter.Color color);
+		public void set_mark_points (bool value);
+		public void set_stroke (bool value);
+		public void set_stroke_color (Clutter.Color color);
+		public void set_stroke_width (double value);
+		public void show ();
+		[NoAccessorMethod]
+		public bool closed_path { get; set; }
+		public bool fill { get; set; }
+		public Clutter.Color fill_color { get; set; }
+		public bool mark_points { get; set; }
+		public bool stroke { get; set; }
+		public Clutter.Color stroke_color { get; set; }
+		public double stroke_width { get; set; }
+		[NoAccessorMethod]
+		public bool visible { get; set; }
+	}
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public class SelectionLayer : Champlain.Layer, Clutter.Scriptable, Clutter.Container {
+		[CCode (type = "ChamplainLayer*", has_construct_function = false)]
+		public SelectionLayer ();
+		public uint count_selected_markers ();
+		public unowned Champlain.BaseMarker get_selected ();
+		public unowned GLib.List get_selected_markers ();
+		public Champlain.SelectionMode get_selection_mode ();
+		public bool marker_is_selected (Champlain.BaseMarker marker);
+		public void select (Champlain.BaseMarker marker);
+		public void select_all ();
+		public void set_selection_mode (Champlain.SelectionMode mode);
+		public void unselect (Champlain.BaseMarker marker);
+		public void unselect_all ();
+		public Champlain.SelectionMode selection_mode { get; set; }
+		public virtual signal void changed ();
+	}
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public class Tile : GLib.Object {
+		[CCode (has_construct_function = false)]
+		public Tile ();
+		[CCode (has_construct_function = false)]
+		public Tile.full (int x, int y, uint size, int zoom_level);
+		public unowned Clutter.Actor get_actor ();
+		public unowned Clutter.Actor get_content ();
+		public unowned string get_etag ();
+		public unowned string get_filename ();
+		public GLib.TimeVal get_modified_time ();
+		public unowned string get_modified_time_string ();
+		public uint get_size ();
+		public Champlain.State get_state ();
+		public unowned string get_uri ();
+		public int get_x ();
+		public int get_y ();
+		public int get_zoom_level ();
+		public void set_content (Clutter.Actor actor, bool fade_in);
+		public void set_etag (string etag);
+		public void set_filename (string filename);
+		public void set_modified_time (GLib.TimeVal time);
+		public void set_size (uint size);
+		public void set_state (Champlain.State state);
+		public void set_uri (string uri);
+		public void set_x (int x);
+		public void set_y (int y);
+		public void set_zoom_level (int zoom_level);
+		public Clutter.Actor actor { get; }
+		public Clutter.Actor content { get; set; }
+		public string etag { get; set; }
+		public string filename { get; set; }
+		public uint size { get; set; }
+		public Champlain.State state { get; set; }
+		public string uri { get; set; }
+		public int x { get; set; }
+		public int y { get; set; }
+		public int zoom_level { get; set; }
+	}
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public class View : Clutter.Group, Clutter.Scriptable, Clutter.Container {
+		[CCode (type = "ClutterActor*", has_construct_function = false)]
+		public View ();
+		public void add_layer (Champlain.Layer layer);
+		public void add_polygon (Champlain.Polygon polygon);
+		public void center_on (double latitude, double longitude);
+		public void ensure_markers_visible (Champlain.BaseMarker[] markers, bool animate);
+		public void ensure_visible (double lat1, double lon1, double lat2, double lon2, bool animate);
+		public bool get_coords_at (uint x, uint y, out double lat, out double lon);
+		public bool get_coords_from_event (Clutter.Event event, out double lat, out double lon);
+		public double get_decel_rate ();
+		public bool get_keep_center_on_resize ();
+		public unowned string get_license_text ();
+		public unowned Champlain.MapSource get_map_source ();
+		public uint get_max_scale_width ();
+		public int get_max_zoom_level ();
+		public int get_min_zoom_level ();
+		public Champlain.Unit get_scale_unit ();
+		public Champlain.ScrollMode get_scroll_mode ();
+		public bool get_show_license ();
+		public bool get_show_scale ();
+		public int get_zoom_level ();
+		public bool get_zoom_on_double_click ();
+		public void go_to (double latitude, double longitude);
+		public void remove_layer (Champlain.Layer layer);
+		public void remove_polygon (Champlain.Polygon polygon);
+		public void set_decel_rate (double rate);
+		public void set_keep_center_on_resize (bool value);
+		public void set_license_text (string text);
+		public void set_map_source (Champlain.MapSource map_source);
+		public void set_max_scale_width (uint value);
+		public void set_max_zoom_level (int zoom_level);
+		public void set_min_zoom_level (int zoom_level);
+		public void set_scale_unit (Champlain.Unit unit);
+		public void set_scroll_mode (Champlain.ScrollMode mode);
+		public void set_show_license (bool value);
+		public void set_show_scale (bool value);
+		public void set_size (uint width, uint height);
+		public void set_zoom_level (int zoom_level);
+		public void set_zoom_on_double_click (bool value);
+		public void stop_go_to ();
+		public void zoom_in ();
+		public void zoom_out ();
+		public double decel_rate { get; set; }
+		public bool keep_center_on_resize { get; set; }
+		[NoAccessorMethod]
+		public double latitude { get; set; }
+		public string license_text { get; set; }
+		[NoAccessorMethod]
+		public double longitude { get; set; }
+		public Champlain.MapSource map_source { get; set; }
+		public uint max_scale_width { get; set; }
+		public int max_zoom_level { get; set; }
+		public int min_zoom_level { get; set; }
+		public Champlain.Unit scale_unit { get; set; }
+		public Champlain.ScrollMode scroll_mode { get; set; }
+		public bool show_license { get; set; }
+		public bool show_scale { get; set; }
+		[NoAccessorMethod]
+		public Champlain.State state { get; }
+		public int zoom_level { get; set; }
+		public bool zoom_on_double_click { get; set; }
+		public virtual signal void animation_completed ();
+	}
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public class ZoomLevel : GLib.Object {
+		[CCode (has_construct_function = false)]
+		public ZoomLevel ();
+		public void add_tile (Champlain.Tile tile);
+		public unowned Clutter.Actor get_actor ();
+		public uint get_height ();
+		public unowned Champlain.Tile get_nth_tile (uint index);
+		public uint get_width ();
+		public int get_zoom_level ();
+		public void remove_tile (Champlain.Tile tile);
+		public void set_height (uint height);
+		public void set_width (uint width);
+		public void set_zoom_level (int zoom_level);
+		public uint tile_count ();
+		public Clutter.Actor actor { get; }
+		public uint height { get; set; }
+		public uint width { get; set; }
+		public int zoom_level { get; set; }
+		public virtual signal void tile_added (Champlain.Tile p0);
+		public virtual signal void tile_removed (Champlain.Tile p0);
+	}
+	[CCode (cprefix = "CHAMPLAIN_MAP_PROJECTION_", cheader_filename = "champlain/champlain.h")]
+	public enum MapProjection {
+		MERCATOR
+	}
+	[CCode (cprefix = "CHAMPLAIN_SCROLL_MODE_", cheader_filename = "champlain/champlain.h")]
+	public enum ScrollMode {
+		PUSH,
+		KINETIC
+	}
+	[CCode (cprefix = "CHAMPLAIN_SELECTION_", cheader_filename = "champlain/champlain.h")]
+	public enum SelectionMode {
+		NONE,
+		SINGLE,
+		MULTIPLE
+	}
+	[CCode (cprefix = "CHAMPLAIN_STATE_", cheader_filename = "champlain/champlain.h")]
+	public enum State {
+		NONE,
+		INIT,
+		LOADING,
+		VALIDATING_CACHE,
+		DONE
+	}
+	[CCode (cprefix = "CHAMPLAIN_UNIT_", cheader_filename = "champlain/champlain.h")]
+	public enum Unit {
+		KM,
+		MILES
+	}
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public delegate unowned Champlain.MapSource MapSourceConstructor (Champlain.MapSourceDesc desc);
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public const int MAJOR_VERSION;
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public const string MAP_SOURCE_MFF_RELIEF;
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public const string MAP_SOURCE_OAM;
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public const string MAP_SOURCE_OSM_CYCLE_MAP;
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public const string MAP_SOURCE_OSM_MAPNIK;
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public const string MAP_SOURCE_OSM_OSMARENDER;
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public const string MAP_SOURCE_OSM_TRANSPORT_MAP;
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public const int MAX_LAT;
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public const int MAX_LONG;
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public const int MICRO_VERSION;
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public const int MINOR_VERSION;
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public const int MIN_LAT;
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public const int MIN_LONG;
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public const int PARAM_READABLE;
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public const int PARAM_READWRITE;
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public const int VERSION_HEX;
+	[CCode (cheader_filename = "champlain/champlain.h")]
+	public const string VERSION_S;
+}
diff --git a/bindings/vala/champlain/champlain-0.6/champlain-0.6.defines b/bindings/vala/champlain/champlain-0.6/champlain-0.6.defines
new file mode 100644
index 0000000..76e2beb
--- /dev/null
+++ b/bindings/vala/champlain/champlain-0.6/champlain-0.6.defines
@@ -0,0 +1 @@
+-DCHAMPLAIN_COMPILATION
diff --git a/bindings/vala/champlain/champlain-0.6/champlain-0.6.files b/bindings/vala/champlain/champlain-0.6/champlain-0.6.files
new file mode 100644
index 0000000..e07199d
--- /dev/null
+++ b/bindings/vala/champlain/champlain-0.6/champlain-0.6.files
@@ -0,0 +1,2 @@
+lib/libchamplain-0.4.so
+include/libchamplain-0.4/
diff --git a/bindings/vala/champlain/champlain-0.6/champlain-0.6.gi b/bindings/vala/champlain/champlain-0.6/champlain-0.6.gi
new file mode 100644
index 0000000..b1e4ca6
--- /dev/null
+++ b/bindings/vala/champlain/champlain-0.6/champlain-0.6.gi
@@ -0,0 +1,1529 @@
+<?xml version="1.0"?>
+<api version="1.0">
+	<namespace name="Champlain">
+		<callback name="ChamplainMapSourceConstructor">
+			<return-type type="ChamplainMapSource*"/>
+			<parameters>
+				<parameter name="desc" type="ChamplainMapSourceDesc*"/>
+				<parameter name="data" type="gpointer"/>
+			</parameters>
+		</callback>
+		<boxed name="ChamplainMapSourceDesc" type-name="ChamplainMapSourceDesc" get-type="champlain_map_source_desc_get_type">
+			<method name="copy" symbol="champlain_map_source_desc_copy">
+				<return-type type="ChamplainMapSourceDesc*"/>
+				<parameters>
+					<parameter name="desc" type="ChamplainMapSourceDesc*"/>
+				</parameters>
+			</method>
+			<method name="free" symbol="champlain_map_source_desc_free">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="desc" type="ChamplainMapSourceDesc*"/>
+				</parameters>
+			</method>
+			<constructor name="new" symbol="champlain_map_source_desc_new">
+				<return-type type="ChamplainMapSourceDesc*"/>
+			</constructor>
+			<field name="id" type="gchar*"/>
+			<field name="name" type="gchar*"/>
+			<field name="license" type="gchar*"/>
+			<field name="license_uri" type="gchar*"/>
+			<field name="min_zoom_level" type="gint"/>
+			<field name="max_zoom_level" type="gint"/>
+			<field name="projection" type="ChamplainMapProjection"/>
+			<field name="constructor" type="ChamplainMapSourceConstructor"/>
+			<field name="uri_format" type="gchar*"/>
+			<field name="data" type="gpointer"/>
+		</boxed>
+		<boxed name="ChamplainPoint" type-name="ChamplainPoint" get-type="champlain_point_get_type">
+			<method name="copy" symbol="champlain_point_copy">
+				<return-type type="ChamplainPoint*"/>
+				<parameters>
+					<parameter name="point" type="ChamplainPoint*"/>
+				</parameters>
+			</method>
+			<method name="free" symbol="champlain_point_free">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="point" type="ChamplainPoint*"/>
+				</parameters>
+			</method>
+			<constructor name="new" symbol="champlain_point_new">
+				<return-type type="ChamplainPoint*"/>
+				<parameters>
+					<parameter name="lat" type="gdouble"/>
+					<parameter name="lon" type="gdouble"/>
+				</parameters>
+			</constructor>
+			<field name="lat" type="double"/>
+			<field name="lon" type="double"/>
+		</boxed>
+		<enum name="ChamplainMapProjection" type-name="ChamplainMapProjection" get-type="champlain_map_projection_get_type">
+			<member name="CHAMPLAIN_MAP_PROJECTION_MERCATOR" value="0"/>
+		</enum>
+		<enum name="ChamplainScrollMode" type-name="ChamplainScrollMode" get-type="champlain_scroll_mode_get_type">
+			<member name="CHAMPLAIN_SCROLL_MODE_PUSH" value="0"/>
+			<member name="CHAMPLAIN_SCROLL_MODE_KINETIC" value="1"/>
+		</enum>
+		<enum name="ChamplainSelectionMode" type-name="ChamplainSelectionMode" get-type="champlain_selection_mode_get_type">
+			<member name="CHAMPLAIN_SELECTION_NONE" value="0"/>
+			<member name="CHAMPLAIN_SELECTION_SINGLE" value="1"/>
+			<member name="CHAMPLAIN_SELECTION_MULTIPLE" value="2"/>
+		</enum>
+		<enum name="ChamplainState" type-name="ChamplainState" get-type="champlain_state_get_type">
+			<member name="CHAMPLAIN_STATE_NONE" value="0"/>
+			<member name="CHAMPLAIN_STATE_INIT" value="1"/>
+			<member name="CHAMPLAIN_STATE_LOADING" value="2"/>
+			<member name="CHAMPLAIN_STATE_VALIDATING_CACHE" value="3"/>
+			<member name="CHAMPLAIN_STATE_DONE" value="4"/>
+		</enum>
+		<enum name="ChamplainUnit" type-name="ChamplainUnit" get-type="champlain_unit_get_type">
+			<member name="CHAMPLAIN_UNIT_KM" value="0"/>
+			<member name="CHAMPLAIN_UNIT_MILES" value="1"/>
+		</enum>
+		<object name="ChamplainBaseMarker" parent="ClutterGroup" type-name="ChamplainBaseMarker" get-type="champlain_base_marker_get_type">
+			<implements>
+				<interface name="ClutterScriptable"/>
+				<interface name="ClutterContainer"/>
+			</implements>
+			<method name="animate_in" symbol="champlain_base_marker_animate_in">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainBaseMarker*"/>
+				</parameters>
+			</method>
+			<method name="animate_in_with_delay" symbol="champlain_base_marker_animate_in_with_delay">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainBaseMarker*"/>
+					<parameter name="delay" type="guint"/>
+				</parameters>
+			</method>
+			<method name="animate_out" symbol="champlain_base_marker_animate_out">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainBaseMarker*"/>
+				</parameters>
+			</method>
+			<method name="animate_out_with_delay" symbol="champlain_base_marker_animate_out_with_delay">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainBaseMarker*"/>
+					<parameter name="delay" type="guint"/>
+				</parameters>
+			</method>
+			<method name="get_highlighted" symbol="champlain_base_marker_get_highlighted">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainBaseMarker*"/>
+				</parameters>
+			</method>
+			<constructor name="new" symbol="champlain_base_marker_new">
+				<return-type type="ClutterActor*"/>
+			</constructor>
+			<method name="set_highlighted" symbol="champlain_base_marker_set_highlighted">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainBaseMarker*"/>
+					<parameter name="value" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="set_position" symbol="champlain_base_marker_set_position">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainBaseMarker*"/>
+					<parameter name="longitude" type="gdouble"/>
+					<parameter name="latitude" type="gdouble"/>
+				</parameters>
+			</method>
+			<property name="highlighted" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="latitude" type="gdouble" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="longitude" type="gdouble" readable="1" writable="1" construct="0" construct-only="0"/>
+		</object>
+		<object name="ChamplainCache" parent="GObject" type-name="ChamplainCache" get-type="champlain_cache_get_type">
+			<method name="dup_default" symbol="champlain_cache_dup_default">
+				<return-type type="ChamplainCache*"/>
+			</method>
+			<method name="fill_tile" symbol="champlain_cache_fill_tile">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="self" type="ChamplainCache*"/>
+					<parameter name="tile" type="ChamplainTile*"/>
+				</parameters>
+			</method>
+			<method name="get_size_limit" symbol="champlain_cache_get_size_limit">
+				<return-type type="guint"/>
+				<parameters>
+					<parameter name="self" type="ChamplainCache*"/>
+				</parameters>
+			</method>
+			<method name="purge" symbol="champlain_cache_purge">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainCache*"/>
+				</parameters>
+			</method>
+			<method name="purge_on_idle" symbol="champlain_cache_purge_on_idle">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainCache*"/>
+				</parameters>
+			</method>
+			<method name="set_size_limit" symbol="champlain_cache_set_size_limit">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainCache*"/>
+					<parameter name="size_limit" type="guint"/>
+				</parameters>
+			</method>
+			<method name="tile_is_expired" symbol="champlain_cache_tile_is_expired">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="self" type="ChamplainCache*"/>
+					<parameter name="tile" type="ChamplainTile*"/>
+				</parameters>
+			</method>
+			<method name="update_tile" symbol="champlain_cache_update_tile">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainCache*"/>
+					<parameter name="tile" type="ChamplainTile*"/>
+					<parameter name="filesize" type="guint"/>
+				</parameters>
+			</method>
+			<property name="size-limit" type="guint" readable="1" writable="1" construct="0" construct-only="0"/>
+		</object>
+		<object name="ChamplainLayer" parent="ClutterGroup" type-name="ChamplainLayer" get-type="champlain_layer_get_type">
+			<implements>
+				<interface name="ClutterScriptable"/>
+				<interface name="ClutterContainer"/>
+			</implements>
+			<method name="add_marker" symbol="champlain_layer_add_marker">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainLayer*"/>
+					<parameter name="marker" type="ChamplainBaseMarker*"/>
+				</parameters>
+			</method>
+			<method name="animate_in_all_markers" symbol="champlain_layer_animate_in_all_markers">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainLayer*"/>
+				</parameters>
+			</method>
+			<method name="animate_out_all_markers" symbol="champlain_layer_animate_out_all_markers">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainLayer*"/>
+				</parameters>
+			</method>
+			<method name="hide" symbol="champlain_layer_hide">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainLayer*"/>
+				</parameters>
+			</method>
+			<method name="hide_all_markers" symbol="champlain_layer_hide_all_markers">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainLayer*"/>
+				</parameters>
+			</method>
+			<constructor name="new" symbol="champlain_layer_new">
+				<return-type type="ChamplainLayer*"/>
+			</constructor>
+			<method name="remove_marker" symbol="champlain_layer_remove_marker">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainLayer*"/>
+					<parameter name="marker" type="ChamplainBaseMarker*"/>
+				</parameters>
+			</method>
+			<method name="show" symbol="champlain_layer_show">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainLayer*"/>
+				</parameters>
+			</method>
+			<method name="show_all_markers" symbol="champlain_layer_show_all_markers">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainLayer*"/>
+				</parameters>
+			</method>
+		</object>
+		<object name="ChamplainMapSource" parent="GObject" type-name="ChamplainMapSource" get-type="champlain_map_source_get_type">
+			<method name="fill_tile" symbol="champlain_map_source_fill_tile">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+					<parameter name="tile" type="ChamplainTile*"/>
+				</parameters>
+			</method>
+			<method name="get_column_count" symbol="champlain_map_source_get_column_count">
+				<return-type type="guint"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+					<parameter name="zoom_level" type="gint"/>
+				</parameters>
+			</method>
+			<method name="get_id" symbol="champlain_map_source_get_id">
+				<return-type type="gchar*"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+				</parameters>
+			</method>
+			<method name="get_latitude" symbol="champlain_map_source_get_latitude">
+				<return-type type="gdouble"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+					<parameter name="zoom_level" type="gint"/>
+					<parameter name="y" type="guint"/>
+				</parameters>
+			</method>
+			<method name="get_license" symbol="champlain_map_source_get_license">
+				<return-type type="gchar*"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+				</parameters>
+			</method>
+			<method name="get_license_uri" symbol="champlain_map_source_get_license_uri">
+				<return-type type="gchar*"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+				</parameters>
+			</method>
+			<method name="get_longitude" symbol="champlain_map_source_get_longitude">
+				<return-type type="gdouble"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+					<parameter name="zoom_level" type="gint"/>
+					<parameter name="x" type="guint"/>
+				</parameters>
+			</method>
+			<method name="get_max_zoom_level" symbol="champlain_map_source_get_max_zoom_level">
+				<return-type type="gint"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+				</parameters>
+			</method>
+			<method name="get_meters_per_pixel" symbol="champlain_map_source_get_meters_per_pixel">
+				<return-type type="gfloat"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+					<parameter name="zoom_level" type="gint"/>
+					<parameter name="latitude" type="gdouble"/>
+					<parameter name="longitude" type="gdouble"/>
+				</parameters>
+			</method>
+			<method name="get_min_zoom_level" symbol="champlain_map_source_get_min_zoom_level">
+				<return-type type="gint"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+				</parameters>
+			</method>
+			<method name="get_name" symbol="champlain_map_source_get_name">
+				<return-type type="gchar*"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+				</parameters>
+			</method>
+			<method name="get_projection" symbol="champlain_map_source_get_projection">
+				<return-type type="ChamplainMapProjection"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+				</parameters>
+			</method>
+			<method name="get_row_count" symbol="champlain_map_source_get_row_count">
+				<return-type type="guint"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+					<parameter name="zoom_level" type="gint"/>
+				</parameters>
+			</method>
+			<method name="get_tile_size" symbol="champlain_map_source_get_tile_size">
+				<return-type type="guint"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+				</parameters>
+			</method>
+			<method name="get_x" symbol="champlain_map_source_get_x">
+				<return-type type="guint"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+					<parameter name="zoom_level" type="gint"/>
+					<parameter name="longitude" type="gdouble"/>
+				</parameters>
+			</method>
+			<method name="get_y" symbol="champlain_map_source_get_y">
+				<return-type type="guint"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+					<parameter name="zoom_level" type="gint"/>
+					<parameter name="latitude" type="gdouble"/>
+				</parameters>
+			</method>
+			<method name="set_id" symbol="champlain_map_source_set_id">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+					<parameter name="id" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="set_license" symbol="champlain_map_source_set_license">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+					<parameter name="license" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="set_license_uri" symbol="champlain_map_source_set_license_uri">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+					<parameter name="license_uri" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="set_name" symbol="champlain_map_source_set_name">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+					<parameter name="name" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="set_projection" symbol="champlain_map_source_set_projection">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+					<parameter name="projection" type="ChamplainMapProjection"/>
+				</parameters>
+			</method>
+			<property name="id" type="char*" readable="1" writable="1" construct="1" construct-only="0"/>
+			<property name="license" type="char*" readable="1" writable="1" construct="1" construct-only="0"/>
+			<property name="license-uri" type="char*" readable="1" writable="1" construct="1" construct-only="0"/>
+			<property name="max-zoom-level" type="guint" readable="1" writable="1" construct="1" construct-only="0"/>
+			<property name="min-zoom-level" type="guint" readable="1" writable="1" construct="1" construct-only="0"/>
+			<property name="name" type="char*" readable="1" writable="1" construct="1" construct-only="0"/>
+			<property name="projection" type="ChamplainMapProjection" readable="1" writable="1" construct="1" construct-only="0"/>
+			<property name="tile-size" type="guint" readable="1" writable="1" construct="1" construct-only="0"/>
+			<vfunc name="fill_tile">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+					<parameter name="tile" type="ChamplainTile*"/>
+				</parameters>
+			</vfunc>
+		</object>
+		<object name="ChamplainMapSourceFactory" parent="GObject" type-name="ChamplainMapSourceFactory" get-type="champlain_map_source_factory_get_type">
+			<method name="create" symbol="champlain_map_source_factory_create">
+				<return-type type="ChamplainMapSource*"/>
+				<parameters>
+					<parameter name="factory" type="ChamplainMapSourceFactory*"/>
+					<parameter name="id" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="dup_default" symbol="champlain_map_source_factory_dup_default">
+				<return-type type="ChamplainMapSourceFactory*"/>
+			</method>
+			<method name="dup_list" symbol="champlain_map_source_factory_dup_list">
+				<return-type type="GSList*"/>
+				<parameters>
+					<parameter name="factory" type="ChamplainMapSourceFactory*"/>
+				</parameters>
+			</method>
+			<method name="register" symbol="champlain_map_source_factory_register">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="factory" type="ChamplainMapSourceFactory*"/>
+					<parameter name="desc" type="ChamplainMapSourceDesc*"/>
+					<parameter name="constructor" type="ChamplainMapSourceConstructor"/>
+					<parameter name="data" type="gpointer"/>
+				</parameters>
+			</method>
+		</object>
+		<object name="ChamplainMarker" parent="ChamplainBaseMarker" type-name="ChamplainMarker" get-type="champlain_marker_get_type">
+			<implements>
+				<interface name="ClutterScriptable"/>
+				<interface name="ClutterContainer"/>
+			</implements>
+			<method name="get_alignment" symbol="champlain_marker_get_alignment">
+				<return-type type="PangoAlignment"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+				</parameters>
+			</method>
+			<method name="get_color" symbol="champlain_marker_get_color">
+				<return-type type="ClutterColor*"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+				</parameters>
+			</method>
+			<method name="get_draw_background" symbol="champlain_marker_get_draw_background">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+				</parameters>
+			</method>
+			<method name="get_ellipsize" symbol="champlain_marker_get_ellipsize">
+				<return-type type="PangoEllipsizeMode"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+				</parameters>
+			</method>
+			<method name="get_font_name" symbol="champlain_marker_get_font_name">
+				<return-type type="gchar*"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+				</parameters>
+			</method>
+			<method name="get_highlight_color" symbol="champlain_marker_get_highlight_color">
+				<return-type type="ClutterColor*"/>
+			</method>
+			<method name="get_highlight_text_color" symbol="champlain_marker_get_highlight_text_color">
+				<return-type type="ClutterColor*"/>
+			</method>
+			<method name="get_image" symbol="champlain_marker_get_image">
+				<return-type type="ClutterActor*"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+				</parameters>
+			</method>
+			<method name="get_single_line_mode" symbol="champlain_marker_get_single_line_mode">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+				</parameters>
+			</method>
+			<method name="get_text" symbol="champlain_marker_get_text">
+				<return-type type="gchar*"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+				</parameters>
+			</method>
+			<method name="get_text_color" symbol="champlain_marker_get_text_color">
+				<return-type type="ClutterColor*"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+				</parameters>
+			</method>
+			<method name="get_use_markup" symbol="champlain_marker_get_use_markup">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+				</parameters>
+			</method>
+			<method name="get_wrap" symbol="champlain_marker_get_wrap">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+				</parameters>
+			</method>
+			<method name="get_wrap_mode" symbol="champlain_marker_get_wrap_mode">
+				<return-type type="PangoWrapMode"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+				</parameters>
+			</method>
+			<constructor name="new" symbol="champlain_marker_new">
+				<return-type type="ClutterActor*"/>
+			</constructor>
+			<constructor name="new_from_file" symbol="champlain_marker_new_from_file">
+				<return-type type="ClutterActor*"/>
+				<parameters>
+					<parameter name="filename" type="gchar*"/>
+					<parameter name="error" type="GError**"/>
+				</parameters>
+			</constructor>
+			<constructor name="new_full" symbol="champlain_marker_new_full">
+				<return-type type="ClutterActor*"/>
+				<parameters>
+					<parameter name="text" type="gchar*"/>
+					<parameter name="actor" type="ClutterActor*"/>
+				</parameters>
+			</constructor>
+			<constructor name="new_with_image" symbol="champlain_marker_new_with_image">
+				<return-type type="ClutterActor*"/>
+				<parameters>
+					<parameter name="actor" type="ClutterActor*"/>
+				</parameters>
+			</constructor>
+			<constructor name="new_with_text" symbol="champlain_marker_new_with_text">
+				<return-type type="ClutterActor*"/>
+				<parameters>
+					<parameter name="text" type="gchar*"/>
+					<parameter name="font" type="gchar*"/>
+					<parameter name="text_color" type="ClutterColor*"/>
+					<parameter name="marker_color" type="ClutterColor*"/>
+				</parameters>
+			</constructor>
+			<method name="queue_redraw" symbol="champlain_marker_queue_redraw">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+				</parameters>
+			</method>
+			<method name="set_alignment" symbol="champlain_marker_set_alignment">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+					<parameter name="alignment" type="PangoAlignment"/>
+				</parameters>
+			</method>
+			<method name="set_attributes" symbol="champlain_marker_set_attributes">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+					<parameter name="list" type="PangoAttrList*"/>
+				</parameters>
+			</method>
+			<method name="set_color" symbol="champlain_marker_set_color">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+					<parameter name="color" type="ClutterColor*"/>
+				</parameters>
+			</method>
+			<method name="set_draw_background" symbol="champlain_marker_set_draw_background">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+					<parameter name="background" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="set_ellipsize" symbol="champlain_marker_set_ellipsize">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+					<parameter name="mode" type="PangoEllipsizeMode"/>
+				</parameters>
+			</method>
+			<method name="set_font_name" symbol="champlain_marker_set_font_name">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+					<parameter name="font_name" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="set_highlight_color" symbol="champlain_marker_set_highlight_color">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="color" type="ClutterColor*"/>
+				</parameters>
+			</method>
+			<method name="set_highlight_text_color" symbol="champlain_marker_set_highlight_text_color">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="color" type="ClutterColor*"/>
+				</parameters>
+			</method>
+			<method name="set_image" symbol="champlain_marker_set_image">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+					<parameter name="image" type="ClutterActor*"/>
+				</parameters>
+			</method>
+			<method name="set_single_line_mode" symbol="champlain_marker_set_single_line_mode">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+					<parameter name="mode" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="set_text" symbol="champlain_marker_set_text">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+					<parameter name="text" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="set_text_color" symbol="champlain_marker_set_text_color">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+					<parameter name="color" type="ClutterColor*"/>
+				</parameters>
+			</method>
+			<method name="set_use_markup" symbol="champlain_marker_set_use_markup">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+					<parameter name="use_markup" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="set_wrap" symbol="champlain_marker_set_wrap">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+					<parameter name="wrap" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="set_wrap_mode" symbol="champlain_marker_set_wrap_mode">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+					<parameter name="wrap_mode" type="PangoWrapMode"/>
+				</parameters>
+			</method>
+			<property name="alignment" type="PangoAlignment" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="color" type="ClutterColor*" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="draw-background" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="ellipsize" type="PangoEllipsizeMode" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="font-name" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="image" type="ClutterActor*" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="single-line-mode" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="text" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="text-color" type="ClutterColor*" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="use-markup" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="wrap" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="wrap-mode" type="PangoWrapMode" readable="1" writable="1" construct="0" construct-only="0"/>
+			<vfunc name="draw_marker">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="marker" type="ChamplainMarker*"/>
+				</parameters>
+			</vfunc>
+		</object>
+		<object name="ChamplainNetworkMapSource" parent="ChamplainMapSource" type-name="ChamplainNetworkMapSource" get-type="champlain_network_map_source_get_type">
+			<method name="get_tile_uri" symbol="champlain_network_map_source_get_tile_uri">
+				<return-type type="gchar*"/>
+				<parameters>
+					<parameter name="source" type="ChamplainNetworkMapSource*"/>
+					<parameter name="x" type="gint"/>
+					<parameter name="y" type="gint"/>
+					<parameter name="z" type="gint"/>
+				</parameters>
+			</method>
+			<constructor name="new_full" symbol="champlain_network_map_source_new_full">
+				<return-type type="ChamplainNetworkMapSource*"/>
+				<parameters>
+					<parameter name="id" type="gchar*"/>
+					<parameter name="name" type="gchar*"/>
+					<parameter name="license" type="gchar*"/>
+					<parameter name="license_uri" type="gchar*"/>
+					<parameter name="min_zoom" type="guint"/>
+					<parameter name="max_zoom" type="guint"/>
+					<parameter name="tile_size" type="guint"/>
+					<parameter name="projection" type="ChamplainMapProjection"/>
+					<parameter name="uri_format" type="gchar*"/>
+				</parameters>
+			</constructor>
+			<method name="set_uri_format" symbol="champlain_network_map_source_set_uri_format">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="source" type="ChamplainNetworkMapSource*"/>
+					<parameter name="uri_format" type="gchar*"/>
+				</parameters>
+			</method>
+			<property name="offline" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="proxy-uri" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="uri-format" type="char*" readable="1" writable="1" construct="1" construct-only="0"/>
+		</object>
+		<object name="ChamplainPolygon" parent="GObject" type-name="ChamplainPolygon" get-type="champlain_polygon_get_type">
+			<method name="append_point" symbol="champlain_polygon_append_point">
+				<return-type type="ChamplainPoint*"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+					<parameter name="lat" type="gdouble"/>
+					<parameter name="lon" type="gdouble"/>
+				</parameters>
+			</method>
+			<method name="clear_points" symbol="champlain_polygon_clear_points">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+				</parameters>
+			</method>
+			<method name="get_fill" symbol="champlain_polygon_get_fill">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+				</parameters>
+			</method>
+			<method name="get_fill_color" symbol="champlain_polygon_get_fill_color">
+				<return-type type="ClutterColor*"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+				</parameters>
+			</method>
+			<method name="get_mark_points" symbol="champlain_polygon_get_mark_points">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+				</parameters>
+			</method>
+			<method name="get_points" symbol="champlain_polygon_get_points">
+				<return-type type="GList*"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+				</parameters>
+			</method>
+			<method name="get_stroke" symbol="champlain_polygon_get_stroke">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+				</parameters>
+			</method>
+			<method name="get_stroke_color" symbol="champlain_polygon_get_stroke_color">
+				<return-type type="ClutterColor*"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+				</parameters>
+			</method>
+			<method name="get_stroke_width" symbol="champlain_polygon_get_stroke_width">
+				<return-type type="gdouble"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+				</parameters>
+			</method>
+			<method name="hide" symbol="champlain_polygon_hide">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+				</parameters>
+			</method>
+			<method name="insert_point" symbol="champlain_polygon_insert_point">
+				<return-type type="ChamplainPoint*"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+					<parameter name="lat" type="gdouble"/>
+					<parameter name="lon" type="gdouble"/>
+					<parameter name="pos" type="gint"/>
+				</parameters>
+			</method>
+			<constructor name="new" symbol="champlain_polygon_new">
+				<return-type type="ChamplainPolygon*"/>
+			</constructor>
+			<method name="remove_point" symbol="champlain_polygon_remove_point">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+					<parameter name="point" type="ChamplainPoint*"/>
+				</parameters>
+			</method>
+			<method name="set_fill" symbol="champlain_polygon_set_fill">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+					<parameter name="value" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="set_fill_color" symbol="champlain_polygon_set_fill_color">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+					<parameter name="color" type="ClutterColor*"/>
+				</parameters>
+			</method>
+			<method name="set_mark_points" symbol="champlain_polygon_set_mark_points">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+					<parameter name="value" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="set_stroke" symbol="champlain_polygon_set_stroke">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+					<parameter name="value" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="set_stroke_color" symbol="champlain_polygon_set_stroke_color">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+					<parameter name="color" type="ClutterColor*"/>
+				</parameters>
+			</method>
+			<method name="set_stroke_width" symbol="champlain_polygon_set_stroke_width">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+					<parameter name="value" type="gdouble"/>
+				</parameters>
+			</method>
+			<method name="show" symbol="champlain_polygon_show">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+				</parameters>
+			</method>
+			<property name="closed-path" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="fill" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="fill-color" type="ClutterColor*" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="mark-points" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="stroke" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="stroke-color" type="ClutterColor*" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="stroke-width" type="gdouble" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="visible" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+		</object>
+		<object name="ChamplainSelectionLayer" parent="ChamplainLayer" type-name="ChamplainSelectionLayer" get-type="champlain_selection_layer_get_type">
+			<implements>
+				<interface name="ClutterScriptable"/>
+				<interface name="ClutterContainer"/>
+			</implements>
+			<method name="count_selected_markers" symbol="champlain_selection_layer_count_selected_markers">
+				<return-type type="guint"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainSelectionLayer*"/>
+				</parameters>
+			</method>
+			<method name="get_selected" symbol="champlain_selection_layer_get_selected">
+				<return-type type="ChamplainBaseMarker*"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainSelectionLayer*"/>
+				</parameters>
+			</method>
+			<method name="get_selected_markers" symbol="champlain_selection_layer_get_selected_markers">
+				<return-type type="GList*"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainSelectionLayer*"/>
+				</parameters>
+			</method>
+			<method name="get_selection_mode" symbol="champlain_selection_layer_get_selection_mode">
+				<return-type type="ChamplainSelectionMode"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainSelectionLayer*"/>
+				</parameters>
+			</method>
+			<method name="marker_is_selected" symbol="champlain_selection_layer_marker_is_selected">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainSelectionLayer*"/>
+					<parameter name="marker" type="ChamplainBaseMarker*"/>
+				</parameters>
+			</method>
+			<constructor name="new" symbol="champlain_selection_layer_new">
+				<return-type type="ChamplainLayer*"/>
+			</constructor>
+			<method name="select" symbol="champlain_selection_layer_select">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainSelectionLayer*"/>
+					<parameter name="marker" type="ChamplainBaseMarker*"/>
+				</parameters>
+			</method>
+			<method name="select_all" symbol="champlain_selection_layer_select_all">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainSelectionLayer*"/>
+				</parameters>
+			</method>
+			<method name="set_selection_mode" symbol="champlain_selection_layer_set_selection_mode">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainSelectionLayer*"/>
+					<parameter name="mode" type="ChamplainSelectionMode"/>
+				</parameters>
+			</method>
+			<method name="unselect" symbol="champlain_selection_layer_unselect">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainSelectionLayer*"/>
+					<parameter name="marker" type="ChamplainBaseMarker*"/>
+				</parameters>
+			</method>
+			<method name="unselect_all" symbol="champlain_selection_layer_unselect_all">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="layer" type="ChamplainSelectionLayer*"/>
+				</parameters>
+			</method>
+			<property name="selection-mode" type="ChamplainSelectionMode" readable="1" writable="1" construct="0" construct-only="0"/>
+			<signal name="changed" when="LAST">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="object" type="ChamplainSelectionLayer*"/>
+				</parameters>
+			</signal>
+		</object>
+		<object name="ChamplainTile" parent="GObject" type-name="ChamplainTile" get-type="champlain_tile_get_type">
+			<method name="get_actor" symbol="champlain_tile_get_actor">
+				<return-type type="ClutterActor*"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+				</parameters>
+			</method>
+			<method name="get_content" symbol="champlain_tile_get_content">
+				<return-type type="ClutterActor*"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+				</parameters>
+			</method>
+			<method name="get_etag" symbol="champlain_tile_get_etag">
+				<return-type type="gchar*"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+				</parameters>
+			</method>
+			<method name="get_filename" symbol="champlain_tile_get_filename">
+				<return-type type="gchar*"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+				</parameters>
+			</method>
+			<method name="get_modified_time" symbol="champlain_tile_get_modified_time">
+				<return-type type="GTimeVal*"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+				</parameters>
+			</method>
+			<method name="get_modified_time_string" symbol="champlain_tile_get_modified_time_string">
+				<return-type type="gchar*"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+				</parameters>
+			</method>
+			<method name="get_size" symbol="champlain_tile_get_size">
+				<return-type type="guint"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+				</parameters>
+			</method>
+			<method name="get_state" symbol="champlain_tile_get_state">
+				<return-type type="ChamplainState"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+				</parameters>
+			</method>
+			<method name="get_uri" symbol="champlain_tile_get_uri">
+				<return-type type="gchar*"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+				</parameters>
+			</method>
+			<method name="get_x" symbol="champlain_tile_get_x">
+				<return-type type="gint"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+				</parameters>
+			</method>
+			<method name="get_y" symbol="champlain_tile_get_y">
+				<return-type type="gint"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+				</parameters>
+			</method>
+			<method name="get_zoom_level" symbol="champlain_tile_get_zoom_level">
+				<return-type type="gint"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+				</parameters>
+			</method>
+			<constructor name="new" symbol="champlain_tile_new">
+				<return-type type="ChamplainTile*"/>
+			</constructor>
+			<constructor name="new_full" symbol="champlain_tile_new_full">
+				<return-type type="ChamplainTile*"/>
+				<parameters>
+					<parameter name="x" type="gint"/>
+					<parameter name="y" type="gint"/>
+					<parameter name="size" type="guint"/>
+					<parameter name="zoom_level" type="gint"/>
+				</parameters>
+			</constructor>
+			<method name="set_content" symbol="champlain_tile_set_content">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+					<parameter name="actor" type="ClutterActor*"/>
+					<parameter name="fade_in" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="set_etag" symbol="champlain_tile_set_etag">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+					<parameter name="etag" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="set_filename" symbol="champlain_tile_set_filename">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+					<parameter name="filename" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="set_modified_time" symbol="champlain_tile_set_modified_time">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+					<parameter name="time" type="GTimeVal*"/>
+				</parameters>
+			</method>
+			<method name="set_size" symbol="champlain_tile_set_size">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+					<parameter name="size" type="guint"/>
+				</parameters>
+			</method>
+			<method name="set_state" symbol="champlain_tile_set_state">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+					<parameter name="state" type="ChamplainState"/>
+				</parameters>
+			</method>
+			<method name="set_uri" symbol="champlain_tile_set_uri">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+					<parameter name="uri" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="set_x" symbol="champlain_tile_set_x">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+					<parameter name="x" type="gint"/>
+				</parameters>
+			</method>
+			<method name="set_y" symbol="champlain_tile_set_y">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+					<parameter name="y" type="gint"/>
+				</parameters>
+			</method>
+			<method name="set_zoom_level" symbol="champlain_tile_set_zoom_level">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainTile*"/>
+					<parameter name="zoom_level" type="gint"/>
+				</parameters>
+			</method>
+			<property name="actor" type="ClutterActor*" readable="1" writable="0" construct="0" construct-only="0"/>
+			<property name="content" type="ClutterActor*" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="etag" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="filename" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="size" type="guint" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="state" type="ChamplainState" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="uri" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="x" type="gint" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="y" type="gint" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="zoom-level" type="gint" readable="1" writable="1" construct="0" construct-only="0"/>
+		</object>
+		<object name="ChamplainView" parent="ClutterGroup" type-name="ChamplainView" get-type="champlain_view_get_type">
+			<implements>
+				<interface name="ClutterScriptable"/>
+				<interface name="ClutterContainer"/>
+			</implements>
+			<method name="add_layer" symbol="champlain_view_add_layer">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="layer" type="ChamplainLayer*"/>
+				</parameters>
+			</method>
+			<method name="add_polygon" symbol="champlain_view_add_polygon">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+				</parameters>
+			</method>
+			<method name="center_on" symbol="champlain_view_center_on">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="latitude" type="gdouble"/>
+					<parameter name="longitude" type="gdouble"/>
+				</parameters>
+			</method>
+			<method name="ensure_markers_visible" symbol="champlain_view_ensure_markers_visible">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="markers" type="ChamplainBaseMarker*[]"/>
+					<parameter name="animate" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="ensure_visible" symbol="champlain_view_ensure_visible">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="lat1" type="gdouble"/>
+					<parameter name="lon1" type="gdouble"/>
+					<parameter name="lat2" type="gdouble"/>
+					<parameter name="lon2" type="gdouble"/>
+					<parameter name="animate" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="get_coords_at" symbol="champlain_view_get_coords_at">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="x" type="guint"/>
+					<parameter name="y" type="guint"/>
+					<parameter name="lat" type="gdouble*"/>
+					<parameter name="lon" type="gdouble*"/>
+				</parameters>
+			</method>
+			<method name="get_coords_from_event" symbol="champlain_view_get_coords_from_event">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="event" type="ClutterEvent*"/>
+					<parameter name="lat" type="gdouble*"/>
+					<parameter name="lon" type="gdouble*"/>
+				</parameters>
+			</method>
+			<method name="get_decel_rate" symbol="champlain_view_get_decel_rate">
+				<return-type type="gdouble"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+				</parameters>
+			</method>
+			<method name="get_keep_center_on_resize" symbol="champlain_view_get_keep_center_on_resize">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+				</parameters>
+			</method>
+			<method name="get_license_text" symbol="champlain_view_get_license_text">
+				<return-type type="gchar*"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+				</parameters>
+			</method>
+			<method name="get_map_source" symbol="champlain_view_get_map_source">
+				<return-type type="ChamplainMapSource*"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+				</parameters>
+			</method>
+			<method name="get_max_scale_width" symbol="champlain_view_get_max_scale_width">
+				<return-type type="guint"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+				</parameters>
+			</method>
+			<method name="get_max_zoom_level" symbol="champlain_view_get_max_zoom_level">
+				<return-type type="gint"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+				</parameters>
+			</method>
+			<method name="get_min_zoom_level" symbol="champlain_view_get_min_zoom_level">
+				<return-type type="gint"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+				</parameters>
+			</method>
+			<method name="get_scale_unit" symbol="champlain_view_get_scale_unit">
+				<return-type type="ChamplainUnit"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+				</parameters>
+			</method>
+			<method name="get_scroll_mode" symbol="champlain_view_get_scroll_mode">
+				<return-type type="ChamplainScrollMode"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+				</parameters>
+			</method>
+			<method name="get_show_license" symbol="champlain_view_get_show_license">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+				</parameters>
+			</method>
+			<method name="get_show_scale" symbol="champlain_view_get_show_scale">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+				</parameters>
+			</method>
+			<method name="get_zoom_level" symbol="champlain_view_get_zoom_level">
+				<return-type type="gint"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+				</parameters>
+			</method>
+			<method name="get_zoom_on_double_click" symbol="champlain_view_get_zoom_on_double_click">
+				<return-type type="gboolean"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+				</parameters>
+			</method>
+			<method name="go_to" symbol="champlain_view_go_to">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="latitude" type="gdouble"/>
+					<parameter name="longitude" type="gdouble"/>
+				</parameters>
+			</method>
+			<constructor name="new" symbol="champlain_view_new">
+				<return-type type="ClutterActor*"/>
+			</constructor>
+			<method name="remove_layer" symbol="champlain_view_remove_layer">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="layer" type="ChamplainLayer*"/>
+				</parameters>
+			</method>
+			<method name="remove_polygon" symbol="champlain_view_remove_polygon">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="polygon" type="ChamplainPolygon*"/>
+				</parameters>
+			</method>
+			<method name="set_decel_rate" symbol="champlain_view_set_decel_rate">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="rate" type="gdouble"/>
+				</parameters>
+			</method>
+			<method name="set_keep_center_on_resize" symbol="champlain_view_set_keep_center_on_resize">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="value" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="set_license_text" symbol="champlain_view_set_license_text">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="text" type="gchar*"/>
+				</parameters>
+			</method>
+			<method name="set_map_source" symbol="champlain_view_set_map_source">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="map_source" type="ChamplainMapSource*"/>
+				</parameters>
+			</method>
+			<method name="set_max_scale_width" symbol="champlain_view_set_max_scale_width">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="value" type="guint"/>
+				</parameters>
+			</method>
+			<method name="set_max_zoom_level" symbol="champlain_view_set_max_zoom_level">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="zoom_level" type="gint"/>
+				</parameters>
+			</method>
+			<method name="set_min_zoom_level" symbol="champlain_view_set_min_zoom_level">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="zoom_level" type="gint"/>
+				</parameters>
+			</method>
+			<method name="set_scale_unit" symbol="champlain_view_set_scale_unit">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="unit" type="ChamplainUnit"/>
+				</parameters>
+			</method>
+			<method name="set_scroll_mode" symbol="champlain_view_set_scroll_mode">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="mode" type="ChamplainScrollMode"/>
+				</parameters>
+			</method>
+			<method name="set_show_license" symbol="champlain_view_set_show_license">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="value" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="set_show_scale" symbol="champlain_view_set_show_scale">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="value" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="set_size" symbol="champlain_view_set_size">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="width" type="guint"/>
+					<parameter name="height" type="guint"/>
+				</parameters>
+			</method>
+			<method name="set_zoom_level" symbol="champlain_view_set_zoom_level">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="zoom_level" type="gint"/>
+				</parameters>
+			</method>
+			<method name="set_zoom_on_double_click" symbol="champlain_view_set_zoom_on_double_click">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+					<parameter name="value" type="gboolean"/>
+				</parameters>
+			</method>
+			<method name="stop_go_to" symbol="champlain_view_stop_go_to">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+				</parameters>
+			</method>
+			<method name="zoom_in" symbol="champlain_view_zoom_in">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+				</parameters>
+			</method>
+			<method name="zoom_out" symbol="champlain_view_zoom_out">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="view" type="ChamplainView*"/>
+				</parameters>
+			</method>
+			<property name="decel-rate" type="gdouble" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="keep-center-on-resize" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="latitude" type="gdouble" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="license-text" type="char*" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="longitude" type="gdouble" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="map-source" type="ChamplainMapSource*" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="max-scale-width" type="guint" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="max-zoom-level" type="gint" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="min-zoom-level" type="gint" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="scale-unit" type="ChamplainUnit" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="scroll-mode" type="ChamplainScrollMode" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="show-license" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="show-scale" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="state" type="ChamplainState" readable="1" writable="0" construct="0" construct-only="0"/>
+			<property name="zoom-level" type="gint" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="zoom-on-double-click" type="gboolean" readable="1" writable="1" construct="0" construct-only="0"/>
+			<signal name="animation-completed" when="LAST">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="object" type="ChamplainView*"/>
+				</parameters>
+			</signal>
+		</object>
+		<object name="ChamplainZoomLevel" parent="GObject" type-name="ChamplainZoomLevel" get-type="champlain_zoom_level_get_type">
+			<method name="add_tile" symbol="champlain_zoom_level_add_tile">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainZoomLevel*"/>
+					<parameter name="tile" type="ChamplainTile*"/>
+				</parameters>
+			</method>
+			<method name="get_actor" symbol="champlain_zoom_level_get_actor">
+				<return-type type="ClutterActor*"/>
+				<parameters>
+					<parameter name="self" type="ChamplainZoomLevel*"/>
+				</parameters>
+			</method>
+			<method name="get_height" symbol="champlain_zoom_level_get_height">
+				<return-type type="guint"/>
+				<parameters>
+					<parameter name="self" type="ChamplainZoomLevel*"/>
+				</parameters>
+			</method>
+			<method name="get_nth_tile" symbol="champlain_zoom_level_get_nth_tile">
+				<return-type type="ChamplainTile*"/>
+				<parameters>
+					<parameter name="self" type="ChamplainZoomLevel*"/>
+					<parameter name="index" type="guint"/>
+				</parameters>
+			</method>
+			<method name="get_width" symbol="champlain_zoom_level_get_width">
+				<return-type type="guint"/>
+				<parameters>
+					<parameter name="self" type="ChamplainZoomLevel*"/>
+				</parameters>
+			</method>
+			<method name="get_zoom_level" symbol="champlain_zoom_level_get_zoom_level">
+				<return-type type="gint"/>
+				<parameters>
+					<parameter name="self" type="ChamplainZoomLevel*"/>
+				</parameters>
+			</method>
+			<constructor name="new" symbol="champlain_zoom_level_new">
+				<return-type type="ChamplainZoomLevel*"/>
+			</constructor>
+			<method name="remove_tile" symbol="champlain_zoom_level_remove_tile">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainZoomLevel*"/>
+					<parameter name="tile" type="ChamplainTile*"/>
+				</parameters>
+			</method>
+			<method name="set_height" symbol="champlain_zoom_level_set_height">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainZoomLevel*"/>
+					<parameter name="height" type="guint"/>
+				</parameters>
+			</method>
+			<method name="set_width" symbol="champlain_zoom_level_set_width">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainZoomLevel*"/>
+					<parameter name="width" type="guint"/>
+				</parameters>
+			</method>
+			<method name="set_zoom_level" symbol="champlain_zoom_level_set_zoom_level">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="self" type="ChamplainZoomLevel*"/>
+					<parameter name="zoom_level" type="gint"/>
+				</parameters>
+			</method>
+			<method name="tile_count" symbol="champlain_zoom_level_tile_count">
+				<return-type type="guint"/>
+				<parameters>
+					<parameter name="self" type="ChamplainZoomLevel*"/>
+				</parameters>
+			</method>
+			<property name="actor" type="ClutterActor*" readable="1" writable="0" construct="0" construct-only="0"/>
+			<property name="height" type="guint" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="width" type="guint" readable="1" writable="1" construct="0" construct-only="0"/>
+			<property name="zoom-level" type="gint" readable="1" writable="1" construct="0" construct-only="0"/>
+			<signal name="tile-added" when="LAST">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="object" type="ChamplainZoomLevel*"/>
+					<parameter name="p0" type="ChamplainTile*"/>
+				</parameters>
+			</signal>
+			<signal name="tile-removed" when="LAST">
+				<return-type type="void"/>
+				<parameters>
+					<parameter name="object" type="ChamplainZoomLevel*"/>
+					<parameter name="p0" type="ChamplainTile*"/>
+				</parameters>
+			</signal>
+		</object>
+		<constant name="CHAMPLAIN_MAJOR_VERSION" type="int" value="0"/>
+		<constant name="CHAMPLAIN_MAP_SOURCE_MFF_RELIEF" type="char*" value="MapsForFree Relief"/>
+		<constant name="CHAMPLAIN_MAP_SOURCE_OAM" type="char*" value="OpenAerialMap"/>
+		<constant name="CHAMPLAIN_MAP_SOURCE_OSM_CYCLE_MAP" type="char*" value="OpenCycleMap"/>
+		<constant name="CHAMPLAIN_MAP_SOURCE_OSM_MAPNIK" type="char*" value="OpenStreetMap I"/>
+		<constant name="CHAMPLAIN_MAP_SOURCE_OSM_OSMARENDER" type="char*" value="OpenStreetMap II"/>
+		<constant name="CHAMPLAIN_MAP_SOURCE_OSM_TRANSPORT_MAP" type="char*" value="Public Transport"/>
+		<constant name="CHAMPLAIN_MAX_LAT" type="int" value="90"/>
+		<constant name="CHAMPLAIN_MAX_LONG" type="int" value="180"/>
+		<constant name="CHAMPLAIN_MICRO_VERSION" type="int" value="5"/>
+		<constant name="CHAMPLAIN_MINOR_VERSION" type="int" value="4"/>
+		<constant name="CHAMPLAIN_MIN_LAT" type="int" value="-90"/>
+		<constant name="CHAMPLAIN_MIN_LONG" type="int" value="-180"/>
+		<constant name="CHAMPLAIN_PARAM_READABLE" type="int" value="0"/>
+		<constant name="CHAMPLAIN_PARAM_READWRITE" type="int" value="0"/>
+		<constant name="CHAMPLAIN_VERSION_HEX" type="int" value="0"/>
+		<constant name="CHAMPLAIN_VERSION_S" type="char*" value="0.4.5"/>
+	</namespace>
+</api>
diff --git a/bindings/vala/champlain/champlain-0.6/champlain-0.6.metadata b/bindings/vala/champlain/champlain-0.6/champlain-0.6.metadata
new file mode 100644
index 0000000..bbb5d62
--- /dev/null
+++ b/bindings/vala/champlain/champlain-0.6/champlain-0.6.metadata
@@ -0,0 +1,9 @@
+Champlain cheader_filename="champlain/champlain.h"
+champlain_view_get_coords_at.lat is_out="1"
+champlain_view_get_coords_at.lon is_out="1"
+champlain_view_get_coords_from_event.lat is_out="1"
+champlain_view_get_coords_from_event.lon is_out="1"
+
+champlain_marker_new_with_text.font nullable="1"
+champlain_marker_new_with_text.text_color nullable="1"
+champlain_marker_new_with_text.marker_color nullable="1"
diff --git a/bindings/vala/champlain/champlain-0.6/champlain-0.6.namespace b/bindings/vala/champlain/champlain-0.6/champlain-0.6.namespace
new file mode 100644
index 0000000..0b86a40
--- /dev/null
+++ b/bindings/vala/champlain/champlain-0.6/champlain-0.6.namespace
@@ -0,0 +1 @@
+Champlain
diff --git a/bindings/vala/champlain/create.sh b/bindings/vala/champlain/create.sh
new file mode 100644
index 0000000..402d908
--- /dev/null
+++ b/bindings/vala/champlain/create.sh
@@ -0,0 +1 @@
+vapigen --library champlain-0.6 --pkg clutter-1.0 champlain-0.6/champlain-0.6.gi --metadata champlain-0.6/champlain-0.6.metadata
diff --git a/bindings/vala/demos/.gitignore b/bindings/vala/demos/.gitignore
new file mode 100644
index 0000000..2cd96c0
--- /dev/null
+++ b/bindings/vala/demos/.gitignore
@@ -0,0 +1,2 @@
+*.c
+launcher
diff --git a/bindings/vala/demos/Makefile.am b/bindings/vala/demos/Makefile.am
new file mode 100644
index 0000000..d67b77b
--- /dev/null
+++ b/bindings/vala/demos/Makefile.am
@@ -0,0 +1,17 @@
+noinst_PROGRAMS = launcher
+
+launcher_SOURCES = \
+	launcher.vala \
+	markers.vala
+
+INCLUDES = \
+	-I$(top_srcdir) \
+	$(LAUNCHER_CFLAGS)
+
+VALAFLAGS = \
+	--vapidir=$(srcdir)/../champlain \
+	$(LAUNCHER_PACKAGES)
+
+launcher_LDADD = \
+	$(LAUNCHER_LIBS) \
+	$(top_builddir)/champlain/libchamplain-0.6.la
diff --git a/bindings/vala/demos/launcher.vala b/bindings/vala/demos/launcher.vala
new file mode 100644
index 0000000..0391c95
--- /dev/null
+++ b/bindings/vala/demos/launcher.vala
@@ -0,0 +1,133 @@
+/*
+ * Copyright (C) 2010 Simon Wenner <simon wenner ch>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+using GLib;
+using Clutter;
+using Champlain;
+
+public class Launcher : GLib.Object
+{
+  private const int PADDING = 10;
+  private Champlain.View view;
+  private Clutter.Stage stage;
+
+  public Launcher ()
+  {
+    float width, total_width = 0;
+
+    stage = Clutter.Stage.get_default ();
+    stage.title = "Champlain Vala Example";
+    stage.set_size (800, 600);
+
+    /* Create the map view */
+    view = new Champlain.View ();
+    view.set_size (800, 600);
+    stage.add_actor (view);
+
+    /* Create the buttons */
+    var buttons = new Clutter.Group ();
+    buttons.set_position (PADDING, PADDING);
+
+    var button = make_button ("Zoom in");
+    buttons.add_actor (button);
+    button.reactive = true;
+    button.get_size (out width, null);
+    total_width += width + PADDING;
+    button.button_release_event.connect ((event) => {
+        view.zoom_in ();
+        return true;
+      });
+
+    button = make_button ("Zoom out");
+    buttons.add_actor (button);
+    button.reactive = true;
+    button.set_position (total_width, 0);
+    button.get_size (out width, null);
+    total_width += width + PADDING;
+    button.button_release_event.connect ((event) => {
+        view.zoom_out ();
+        return true;
+      });
+
+    stage.add_actor (buttons);
+
+    /* Create the markers and marker layer */
+    var layer = new  MarkerLayer ();
+    view.add_layer (layer);
+
+    /* Connect to the click event */
+    view.reactive = true;
+    view.button_release_event.connect (button_release_cb);
+
+    /* Finish initialising the map view */
+    view.zoom_level = 7;
+    view.scroll_mode = Champlain.ScrollMode.KINETIC;
+    view.center_on (45.466, -73.75);
+  }
+
+  public void show ()
+  {
+    stage.show ();
+  }
+
+  private bool button_release_cb (Clutter.ButtonEvent event)
+  {
+    double lat, lon;
+
+    if (event.button != 1 || event.click_count > 1)
+      return false;
+
+    if (view.get_coords_at ((uint) event.x, (uint) event.y, out lat, out lon))
+      GLib.print ("Map clicked at %f, %f \n", lat, lon);
+
+    return true;
+  }
+
+  public Clutter.Actor make_button (string text)
+  {
+    Clutter.Color white = { 0xff, 0xff, 0xff, 0xff };
+    Clutter.Color black = { 0x00, 0x00, 0x00, 0xff };
+    float width, height;
+
+    var button = new Clutter.Group ();
+
+    var button_bg = new Clutter.Rectangle.with_color (white);
+    button.add_actor (button_bg);
+    button_bg.opacity = 0xcc;
+
+    var button_text = new Clutter.Text.full ("Sans 10", text, black);
+    button.add_actor (button_text);
+    button_text.get_size (out width, out height);
+
+    button_bg.set_size (width + PADDING * 2, height + PADDING * 2);
+    button_bg.set_position (0, 0);
+    button_text.set_position (PADDING, PADDING);
+
+    return button;
+  }
+
+  public static int main (string[] args)
+  {
+    Clutter.init (ref args);
+    var launcher = new Launcher ();
+    launcher.show ();
+    Clutter.main ();
+    return 0;
+  }
+}
+
diff --git a/bindings/vala/demos/markers.vala b/bindings/vala/demos/markers.vala
new file mode 100644
index 0000000..dea5606
--- /dev/null
+++ b/bindings/vala/demos/markers.vala
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2010 Simon Wenner <simon wenner ch>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
+using GLib;
+using Clutter;
+
+class MarkerLayer : Champlain.SelectionLayer
+{
+  public MarkerLayer ()
+  {
+    Clutter.Color orange = { 0xf3, 0x94, 0x07, 0xbb };
+    var marker = new Champlain.Marker.with_text (
+        "Montréal\n<span size=\"xx-small\">Québec</span>",
+        "Serif 14", null, null);
+    marker.set_use_markup (true);
+    marker.set_alignment (Pango.Alignment.RIGHT);
+    marker.set_color (orange);
+    marker.set_position (45.528178, -73.563788);
+    add_marker (marker);
+
+    try {
+      marker = new Champlain.Marker.from_file (
+          "/usr/share/icons/gnome/24x24/emblems/emblem-generic.png");
+    } catch (GLib.Error e) {
+      GLib.warning ("%s", e.message);
+    }
+    marker.set_text ("New York");
+    marker.set_position (40.77, -73.98);
+    add_marker (marker);
+
+    try {
+      marker = new Champlain.Marker.from_file (
+          "/usr/share/icons/gnome/24x24/emblems/emblem-important.png");
+    } catch (GLib.Error e) {
+      GLib.warning ("%s", e.message);
+    }
+    marker.set_position (47.130885, -70.764141);
+    add_marker (marker);
+
+    try {
+      marker = new Champlain.Marker.from_file (
+          "/usr/share/icons/gnome/24x24/emblems/emblem-favorite.png");
+    } catch (GLib.Error e) {
+      GLib.warning ("%s", e.message);
+    }
+    marker.set_draw_background (false);
+    marker.set_position (45.41484, -71.918907);
+    add_marker (marker);
+  }
+}
+
diff --git a/configure.ac b/configure.ac
index 4a1cf74..64fff94 100644
--- a/configure.ac
+++ b/configure.ac
@@ -193,6 +193,37 @@ AM_CONDITIONAL(ENABLE_PYTHON, test "x$enable_python" = "xyes")
 GOBJECT_INTROSPECTION_CHECK([0.6.3])
 
 # -----------------------------------------------------------
+# Enable vala (default to "no")
+# -----------------------------------------------------------
+
+AC_PATH_PROG(VAPIGEN, vapigen, vapigen)
+AC_SUBST(VAPIGEN)
+
+AC_ARG_ENABLE(vala,
+  AC_HELP_STRING([--enable-vala],[Include vala champlain (and champlain-gtk)]),
+    enable_vala=$enableval, enable_vala=no )
+
+if test x$enable_vala = xyes; then
+  AM_PROG_VALAC([0.8.0])
+
+  if test "x$VALAC" = "x" ; then
+    AC_MSG_ERROR([Cannot find the "valac" compiler in your PATH])
+  fi
+
+  LAUNCHER_PACKAGES="--pkg clutter-1.0 --pkg champlain-0.6"
+  PKG_CHECK_MODULES(LAUNCHER,
+  [
+    glib-2.0,
+    clutter-1.0
+  ])
+  AC_SUBST(LAUNCHER_CFLAGS)
+  AC_SUBST(LAUNCHER_LIBS)
+  AC_SUBST(LAUNCHER_PACKAGES)
+fi
+
+AM_CONDITIONAL(ENABLE_VALA, test "x$enable_vala" = "xyes")
+
+# -----------------------------------------------------------
 # Generate features header file
 # -----------------------------------------------------------
 
@@ -238,6 +269,10 @@ AC_CONFIG_FILES([Makefile
                  bindings/python/champlain/Makefile
                  bindings/python/champlain-gtk/Makefile
                  bindings/python/demos/Makefile
+                 bindings/vala/Makefile
+                 bindings/vala/champlain/Makefile
+                 bindings/vala/champlain-gtk/Makefile
+                 bindings/vala/demos/Makefile
                  champlain-memphis.pc
                  champlain-memphis-uninstalled.pc])
 AC_CONFIG_FILES([bindings/python/update-binding.sh],
@@ -259,6 +294,7 @@ echo "  Memphis source: ${enable_memphis}"
 echo ""
 echo "Bindings:"
 echo "       Python bindings: ${enable_python}"
+echo "       Vala bindings: ${enable_vala}"
 echo " gobject-introspection: ${enable_introspection}"
 echo ""
 
-- 
1.7.0.4



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]