[ease/libraries: 154/155] Merge branch 'master' into libraries



commit 9d80ef6651b0efdfc97a1d221cb890fdadb49ca0
Merge: f9298fe 89ce738
Author: Nate Stedman <natesm gmail com>
Date:   Mon Jul 26 23:33:33 2010 -0400

    Merge branch 'master' into libraries
    
    Conflicts:
    	Makefile.am
    	data/themes/build.sh
    	libease/ease-slide-pane.vala
    	libease/ease-transition-pane.vala
    	src/ease-inspector-slide-pane.vala
    	src/ease-inspector-transition-pane.vala
    	src/ease-slide-pane.vala
    	src/ease-transition-pane.vala

 Makefile.am                                        |   35 +-
 configure.ac                                       |    7 +-
 data/Makefile.am                                   |   39 +-
 data/themes/build.sh                               |   11 -
 data/ui/editor-window.ui                           |   35 -
 data/ui/inspector-element-image.ui                 |   56 ++
 data/ui/inspector-element-none.ui                  |   55 ++
 data/ui/inspector-element-text.ui                  |  124 ++++
 data/ui/inspector-slide.ui                         |   17 +-
 ease-0.1.pc.in => ease-core-0.3.pc.in              |    0
 {libease => ease-core}/Makefile.am                 |   49 +-
 ease-core/ease-0.1.vapi                            |  747 ++++++++++++++++++++
 {libease => ease-core}/ease-about-dialog.vala      |    0
 {libease => ease-core}/ease-actor.vala             |    0
 .../ease-animated-zoom-slider.vala                 |    0
 .../ease-close-confirm-dialog.vala                 |    0
 {libease => ease-core}/ease-clutter-iterables.vala |    0
 {libease => ease-core}/ease-color.vala             |    0
 ease-core/ease-core-0.1.vapi                       |  747 ++++++++++++++++++++
 ease-core/ease-core-0.3.vapi                       |  747 ++++++++++++++++++++
 {libease => ease-core}/ease-dialogs.vala           |    0
 {libease => ease-core}/ease-document.vala          |    6 +-
 {libease => ease-core}/ease-editor-embed.vala      |   19 +
 {libease => ease-core}/ease-editor-window.vala     |   28 +-
 {libease => ease-core}/ease-element.vala           |   23 +-
 {libease => ease-core}/ease-enums.vala             |    0
 {libease => ease-core}/ease-gradient.vala          |   26 +-
 {libease => ease-core}/ease-handle.vala            |    0
 {libease => ease-core}/ease-html-exporter.vala     |    0
 {libease => ease-core}/ease-image-actor.vala       |    4 +
 ease-core/ease-image-element.vala                  |  126 ++++
 ease-core/ease-inspector-element-pane.vala         |   68 ++
 {libease => ease-core}/ease-inspector-pane.vala    |    0
 .../ease-inspector-slide-pane.vala                 |   25 +-
 .../ease-inspector-transition-pane.vala            |    4 +-
 {libease => ease-core}/ease-inspector-window.vala  |    0
 {libease => ease-core}/ease-inspector.vala         |   14 +-
 {libease => ease-core}/ease-iterables.vala         |    0
 {libease => ease-core}/ease-main.vala              |    0
 {libease => ease-core}/ease-media-element.vala     |    7 +
 {libease => ease-core}/ease-player.vala            |    1 +
 {libease => ease-core}/ease-scrollable-embed.vala  |    0
 .../ease-selection-rectangle.vala                  |    0
 {libease => ease-core}/ease-slide-actor.vala       |   26 +-
 .../ease-slide-button-panel.vala                   |   45 +-
 {libease => ease-core}/ease-slide.vala             |    7 +-
 {libease => ease-core}/ease-temp.vala              |    0
 {libease => ease-core}/ease-text-actor.vala        |   52 ++-
 {libease => ease-core}/ease-text-element.vala      |  116 +++-
 {libease => ease-core}/ease-theme.vala             |   21 +-
 {libease => ease-core}/ease-transformations.vala   |    0
 {libease => ease-core}/ease-transitions.vala       |    0
 {libease => ease-core}/ease-undo-action.vala       |    1 +
 .../ease-undo-actions-element.vala                 |    0
 .../ease-undo-actions-slide.vala                   |    0
 {libease => ease-core}/ease-undo-controller.vala   |    0
 {libease => ease-core}/ease-undo-item.vala         |    5 +
 {libease => ease-core}/ease-undo-source.vala       |   26 +
 {libease => ease-core}/ease-utilities.vala         |    0
 {libease => ease-core}/ease-welcome-actor.vala     |    0
 {libease => ease-core}/ease-welcome-window.vala    |    0
 {libease => ease-core}/ease-zoom-slider.vala       |    0
 libease/ease-image-element.vala                    |   80 ---
 po/LINGUAS                                         |    1 +
 po/sv.po                                           |   27 +
 src/Makefile.am                                    |   18 -
 66 files changed, 3167 insertions(+), 278 deletions(-)
---
diff --cc Makefile.am
index fdb0a93,81a15e8..198718a
--- a/Makefile.am
+++ b/Makefile.am
@@@ -1,17 -1,93 +1,38 @@@
  NULL =
  
- SUBDIRS = po data libease src
 -INCLUDES = 
++SUBDIRS = po data ease-core
++	
++bin_PROGRAMS = ease
++
++# source files
++ease_SOURCES = src/main.vala
 +
++# compiler flags
++ease_VALAFLAGS = \
++	--pkg ease-core-0.3 \
++	$(EASE_PACKAGES) \
++	--vapidir ./ease-core
++
++ease_LDADD = \
++	./ease-core/libease-core-0.3.la \
++	$(EASE_LIBS) \
++	$(NULL)
++	
 +INCLUDES = \
  	-include config.h \
  	$(EASE_CFLAGS)
  
 -bin_PROGRAMS = ease
 -
 -EASE_CFLAGS += -w
++EASE_CFLAGS += -w -I./ease-core/
+ 
  AM_CPPFLAGS = \
  	$(EASE_CFLAGS) \
  	-include $(CONFIG_HEADER) \
  	-O0 \
  	$(NULL)
  
 -ease_SOURCES = \
 -	src/ease-about-dialog.vala \
 -	src/ease-actor.vala \
 -	src/ease-animated-zoom-slider.vala \
 -	src/ease-close-confirm-dialog.vala \
 -	src/ease-clutter-iterables.vala \
 -	src/ease-color.vala \
 -	src/ease-dialogs.vala \
 -	src/ease-document.vala \
 -	src/ease-editor-embed.vala \
 -	src/ease-editor-window.vala \
 -	src/ease-element.vala \
 -	src/ease-enums.vala \
 -	src/ease-gradient.vala \
 -	src/ease-handle.vala \
 -	src/ease-html-exporter.vala \
 -	src/ease-image-actor.vala \
 -	src/ease-image-element.vala \
 -	src/ease-inspector-element-pane.vala \
 -	src/ease-inspector-pane.vala \
 -	src/ease-inspector-slide-pane.vala \
 -	src/ease-inspector-transition-pane.vala \
 -	src/ease-inspector-window.vala \
 -	src/ease-inspector.vala \
 -	src/ease-iterables.vala \
 -	src/ease-media-element.vala \
 -	src/ease-player.vala \
 -	src/ease-scrollable-embed.vala \
 -	src/ease-selection-rectangle.vala \
 -	src/ease-slide-actor.vala \
 -	src/ease-slide-button-panel.vala \
 -	src/ease-slide.vala \
 -	src/ease-temp.vala \
 -	src/ease-text-actor.vala \
 -	src/ease-text-element.vala \
 -	src/ease-theme.vala \
 -	src/ease-transformations.vala \
 -	src/ease-transitions.vala \
 -	src/ease-undo-action.vala \
 -	src/ease-undo-actions-element.vala \
 -	src/ease-undo-actions-slide.vala \
 -	src/ease-undo-controller.vala \
 -	src/ease-undo-item.vala \
 -	src/ease-undo-source.vala \
 -	src/ease-utilities.vala \
 -	src/ease-welcome-actor.vala \
 -	src/ease-welcome-window.vala \
 -	src/ease-zoom-slider.vala \
 -	src/main.vala \
 -	$(NULL)
 -
 -# ease_VALAFLAGS = $(EASE_PACKAGES)
 -VALAFLAGS = \
 -	--pkg glib-2.0 \
 -	--pkg gtk+-2.0 \
 -	--pkg clutter-1.0 \
 -	--pkg gdk-2.0 \
 -	--pkg gee-1.0 \
 -	--pkg clutter-gtk-0.10 \
 -	--pkg cogl-1.0 \
 -	--pkg gio-2.0 \
 -	--pkg json-glib-1.0\
 -	--pkg libarchive\
 -	--pkg gmodule-2.0\
 -	-g \
 -	$(NULL)
 -
 -SUBDIRS = po data
 -
 -ease_LDADD = \
 -	$(EASE_LIBS) \
 -	-lm \
 -	$(NULL)
++CLEANFILES = src/main.c
+ 
++# distribution
  EXTRA_DIST = data/ease.desktop.in.in  \
  	$(NULL)
  
@@@ -20,23 -96,11 +41,19 @@@ DISTCLEANFILES = data/ease.desktop 
  
  ACLOCAL_AMFLAGS = -I m4
  
 -doc: src/*.vala
 +pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = ease-0.1.pc
++pkgconfig_DATA = ease-core-0.3.pc
 +
- doc: libease/*.vala
++doc: ease-core/*.vala
  	rm -rf doc
 -	valadoc --internal --private --pkg "json-glib-1.0" --pkg "gee-1.0"  --pkg "clutter-gtk-0.10" --pkg "libarchive" --directory=./doc --basedir=src ./src/*.vala
 +	
 +	valadoc \
 +		--internal \
 +		$(EASE_PACKAGES) \
- 		--directory=./doc --basedir=src ./libease/*.vala
++		--directory=./doc --basedir=src ./ease-core/*.vala
 +	
  	gnome-open doc/doc/Ease.html
  
- archive: data/themes/* examples/*
+ archive: examples/*
  	sh examples/build.sh
- 	sh data/themes/build.sh
- 
- .PHONY: archive
  
- noinst_PROGRAMS = archive
diff --cc configure.ac
index 3cead0c,295984e..11d28af
--- a/configure.ac
+++ b/configure.ac
@@@ -1,14 -1,8 +1,13 @@@
- AC_INIT([Ease], [0.1], [https://bugzilla.gnome.org/enter_bug.cgi?product=ease], [ease], [http://live.gnome.org/Ease])
 -AC_INIT([Ease], [0.2], [https://bugzilla.gnome.org/enter_bug.cgi?product=ease], [ease], [http://live.gnome.org/Ease])
++AC_INIT([Ease], [0.3], [https://bugzilla.gnome.org/enter_bug.cgi?product=ease], [ease], [http://live.gnome.org/Ease])
  
  AC_PREREQ([2.59])
  
 -AC_CONFIG_FILES([Makefile po/Makefile.in data/Makefile])
 +AC_CONFIG_FILES([Makefile
 +	  po/Makefile.in
 +	  data/Makefile
- 	  libease/Makefile
- 	  src/Makefile
- 	  ease-0.1.pc])
++	  ease-core/Makefile
++	  ease-core-0.3.pc])
 +
  AC_CONFIG_SRCDIR([Makefile.am])
  AC_CONFIG_HEADERS([config.h])
  
diff --cc ease-core-0.3.pc.in
index 15582f5,0000000..15582f5
mode 100644,000000..100644
--- a/ease-core-0.3.pc.in
+++ b/ease-core-0.3.pc.in
diff --cc ease-core/Makefile.am
index 1224635,0000000..da2d68a
mode 100644,000000..100644
--- a/ease-core/Makefile.am
+++ b/ease-core/Makefile.am
@@@ -1,93 -1,0 +1,100 @@@
- lib_LTLIBRARIES = libease-0.1.la
++lib_LTLIBRARIES = libease-core-0.3.la
 +
 +INCLUDES = \
 +	$(EASE_CFLAGS)
 +
++EASE_CFLAGS += -w
++
 +AM_CPPFLAGS = \
 +	$(EASE_CFLAGS) \
 +	-include $(CONFIG_HEADER) \
 +	$(NULL)
 +
 +# source files
- libease_0_1_la_SOURCES = \
++libease_core_0_3_la_SOURCES = \
 +	ease-about-dialog.vala \
 +	ease-actor.vala \
 +	ease-animated-zoom-slider.vala \
 +	ease-close-confirm-dialog.vala \
 +	ease-clutter-iterables.vala \
 +	ease-color.vala \
 +	ease-dialogs.vala \
 +	ease-document.vala \
 +	ease-editor-embed.vala \
 +	ease-editor-window.vala \
 +	ease-element.vala \
 +	ease-enums.vala \
 +	ease-gradient.vala \
 +	ease-handle.vala \
 +	ease-html-exporter.vala \
 +	ease-image-actor.vala \
 +	ease-image-element.vala \
++	ease-inspector-element-pane.vala \
 +	ease-inspector-pane.vala \
- 	ease-inspector.vala \
++	ease-inspector-slide-pane.vala \
++	ease-inspector-transition-pane.vala \
 +	ease-inspector-window.vala \
++	ease-inspector.vala \
 +	ease-iterables.vala \
- 	ease-main.vala \
 +	ease-media-element.vala \
 +	ease-player.vala \
 +	ease-scrollable-embed.vala \
 +	ease-selection-rectangle.vala \
 +	ease-slide-actor.vala \
 +	ease-slide-button-panel.vala \
- 	ease-slide-pane.vala \
 +	ease-slide.vala \
 +	ease-temp.vala \
 +	ease-text-actor.vala \
 +	ease-text-element.vala \
 +	ease-theme.vala \
 +	ease-transformations.vala \
- 	ease-transition-pane.vala \
 +	ease-transitions.vala \
 +	ease-undo-action.vala \
 +	ease-undo-actions-element.vala \
 +	ease-undo-actions-slide.vala \
++	ease-undo-controller.vala \
 +	ease-undo-item.vala \
 +	ease-undo-source.vala \
- 	ease-undo-controller.vala \
 +	ease-utilities.vala \
 +	ease-welcome-actor.vala \
 +	ease-welcome-window.vala \
 +	ease-zoom-slider.vala \
++	ease-main.vala \
 +	$(NULL)
 +
 +# compiler flags
- libease_0_1_la_VALAFLAGS = \
++libease_core_0_3_la_VALAFLAGS = \
 +	$(EASE_PACKAGES) \
- 	--vapi=ease-0.1.vapi \
- 	--header=libease.h \
++	--vapi=ease-core-0.3.vapi \
++	--header=libease-core.h \
 +	--thread \
- 	--library Ease-0.1 \
- 	--gir=Ease-0.1.gir \
++	--library EaseCore-0.3 \
++	--gir=EaseCore-0.3.gir \
 +	-g \
 +	$(NULL)
 +
- libease_0_1_la_CFLAGS = $(EASE_CFLAGS)
- libease_0_1_la_LDFLAGS = $(EASE_LDFLAGS)
++libease_core_0_3_la_CFLAGS = $(EASE_CFLAGS)
++libease_core_0_3_la_LDFLAGS = $(EASE_LDFLAGS)
 +
 +# build typelib
 +
 +# header installation
- libease_includedir=$(includedir)/ease-0.1/
- libease_include_HEADERS = libease.h
++libease_includedir=$(includedir)/ease-0.3/
++libease_include_HEADERS = libease-core.h
 +
 +# vapi installation
 +vapidir = $(datadir)/vala/vapi
- vapi_DATA = ease-0.1.vapi
++vapi_DATA = ease-core-0.3.vapi
 +
 +# gir installation
 +girdir = $(datadir)/gir-1.0
- gir_DATA = Ease-0.1.gir
- EXTRA_DIST = Ease-0.1.gir
++gir_DATA = EaseCore-0.3.gir
++EXTRA_DIST = EaseCore-0.3.gir
 +
- # remove generated c files on `make clean`
- CLEANFILES = $(subst .vala,.c,$(libease_0_1_la_SOURCES))
++# remove generated files on `make clean`
++CLEANFILES = \
++	$(subst .vala,.c,$(libease_core_0_3_la_SOURCES)) \
++	ease-core-0.3.vapi \
++	EaseCore-0.3.gir \
++	libease-core.h
 +
diff --cc ease-core/ease-0.1.vapi
index 0000000,0000000..bcfb542
new file mode 100644
--- /dev/null
+++ b/ease-core/ease-0.1.vapi
@@@ -1,0 -1,0 +1,747 @@@
++/* ease-0.1.vapi generated by valac, do not modify. */
++
++[CCode (cprefix = "Ease", lower_case_cprefix = "ease_", gir_namespace = "Ease", gir_version = "0.1")]
++namespace Ease {
++	[CCode (cprefix = "EaseIterable", lower_case_cprefix = "ease_iterable_")]
++	namespace Iterable {
++		[CCode (cheader_filename = "libease.h")]
++		public class ListStore : Gtk.ListStore, Ease.Iterable.TreeModel {
++			public ListStore (GLib.Type[] types);
++			public int size { get; }
++		}
++		[CCode (cheader_filename = "libease.h")]
++		public interface TreeModel : Gtk.TreeModel {
++			[CCode (ref_function = "ease_iterable_tree_model_iterator_ref", unref_function = "ease_iterable_tree_model_iterator_unref", cheader_filename = "libease.h")]
++			public class Iterator {
++				public Iterator (Ease.Iterable.TreeModel self);
++				public Gtk.TreeIter @get ();
++				public bool next ();
++			}
++			public Ease.Iterable.TreeModel.Iterator iterator ();
++		}
++	}
++	[CCode (cprefix = "EaseTransformations", lower_case_cprefix = "ease_transformations_")]
++	namespace Transformations {
++		[CCode (cheader_filename = "libease.h")]
++		public static Gdk.Color clutter_color_to_gdk_color (Clutter.Color color);
++		[CCode (cheader_filename = "libease.h")]
++		public static Clutter.Color gdk_color_to_clutter_color (Gdk.Color color);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class AboutDialog : Gtk.AboutDialog {
++		public AboutDialog ();
++		public static void show_about (Gtk.Widget sender);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public abstract class Actor : Clutter.Group {
++		protected Clutter.Actor contents;
++		public Ease.ActorContext context;
++		public weak Ease.Element element;
++		public bool is_background;
++		public Actor (Ease.Element e, Ease.ActorContext c);
++		public virtual void edit (Ease.EditorEmbed sender);
++		public virtual void end_edit (Ease.EditorEmbed sender);
++		public void reposition ();
++		public void resize (float w_change, float h_change, bool proportional);
++		public void translate (float x_change, float y_change);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class AnimatedZoomSlider : Ease.ZoomSlider, Clutter.Animatable {
++		public AnimatedZoomSlider (Gtk.Adjustment adjustment, int[] button_values);
++		protected override void change_zoom (double value);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class CloseConfirmDialog : Gtk.Dialog {
++		public CloseConfirmDialog (string filename, int seconds);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class ClutterIterableGroup : Clutter.Group, Ease.ClutterIterableContainer {
++		public ClutterIterableGroup ();
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class ClutterIterableStage : Clutter.Stage, Ease.ClutterIterableContainer {
++		public ClutterIterableStage ();
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class Color : GLib.Object {
++		public Color ();
++		public Ease.Color copy ();
++		public Color.from_clutter (Clutter.Color color);
++		public Color.from_gdk (Gdk.Color color);
++		public Color.from_string (string str);
++		public Color.rgb (double r, double g, double b);
++		public Color.rgba (double r, double g, double b, double a);
++		public void set_cairo (Cairo.Context cr);
++		public string to_string ();
++		public Ease.UndoAction undo_action ();
++		public double alpha { get; set; }
++		public static Ease.Color black { owned get; }
++		public double blue { get; set; }
++		public Clutter.Color clutter { get; set; }
++		public Gdk.Color gdk { get; set; }
++		public double green { get; set; }
++		public double red { get; set; }
++		public static Ease.Color white { owned get; }
++		public signal void changed (Ease.Color self);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class Document : GLib.Object, Ease.UndoSource {
++		public Ease.Iterable.ListStore slides;
++		public const int COL_PIXBUF;
++		public const int COL_SLIDE;
++		public const string DEFAULT_SLIDE;
++		public const string THEME_PATH;
++		public Document ();
++		public string add_media_file (string file) throws GLib.Error;
++		public void add_slide (int index, Ease.Slide s);
++		public void append_slide (Ease.Slide s);
++		public void cairo_render (Cairo.Surface surface) throws GLib.Error;
++		public void export_as_html (Gtk.Window window);
++		public void export_as_pdf (Gtk.Window win);
++		public void export_as_postscript (Gtk.Window win);
++		public Document.from_saved (string file_path) throws GLib.Error;
++		public Document.from_theme (Ease.Theme doc_theme, int w, int h) throws GLib.Error;
++		public Ease.Slide get_slide (int index);
++		public bool has_next_slide (Ease.Slide slide);
++		public int index_of (Ease.Slide slide);
++		public Ease.Slide remove_slide (Ease.Slide slide);
++		public Ease.Slide? slide_by_title (string title);
++		public void to_json () throws GLib.Error;
++		public float aspect { get; }
++		public string filename { get; set; }
++		public int height { get; set; }
++		public int length { get; }
++		public string path { get; set; }
++		public Ease.Theme theme { get; set; }
++		public int width { get; set; }
++		public signal void slide_added (Ease.Slide slide, int index);
++		public signal void slide_deleted (Ease.Slide slide, int index);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class EditorEmbed : Ease.ScrollableEmbed, Ease.UndoSource {
++		public Ease.SlideActor slide_actor;
++		public EditorEmbed (Ease.Document d, Ease.EditorWindow w);
++		public void connect_keys ();
++		public void disconnect_keys ();
++		public void on_ease_actor_added (Ease.Actor actor);
++		public void on_ease_actor_removed (Ease.Actor actor);
++		public void on_element_removed (Ease.Slide slide, Ease.Element element, int index);
++		public bool on_key_press_event (Gtk.Widget self, Gdk.EventKey event);
++		public void recreate_slide ();
++		public void reposition_group ();
++		public void select_element (Ease.Element e);
++		public void set_element_color (Clutter.Color color);
++		public void set_slide (Ease.Slide slide);
++		public Ease.Actor selected { get; set; }
++		public float zoom { get; set; }
++		public signal void element_deselected (Ease.Element? deselected);
++		public signal void element_selected (Ease.Element selected);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class EditorWindow : Gtk.Window {
++		public Ease.Document document;
++		public Ease.EditorEmbed embed;
++		public Ease.Slide slide;
++		public Ease.SlideButtonPanel slide_button_panel;
++		public Ease.ZoomSlider zoom_slider;
++		public EditorWindow (Ease.Document doc);
++		public void add_undo_action (Ease.UndoItem action);
++		[CCode (instance_pos = -1)]
++		public void export_as_html (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void export_as_pdf (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void export_as_postscript (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void insert_image (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void insert_text (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void insert_video (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void inspector_clicked_handler (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void new_slide_handler (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void on_delete (Gtk.Widget sender);
++		public void on_new_slide_menu (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void on_quit (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void play_handler (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void redo_handler (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void remove_slide (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public bool save_document (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void select_font (Gtk.Widget? sender);
++		public void set_slide (int index);
++		[CCode (instance_pos = -1)]
++		public void show_color_dialog (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void undo_handler (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void zoom_in (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void zoom_out (Gtk.Widget sender);
++		public bool slides_shown { get; set; }
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public abstract class Element : GLib.Object, Ease.UndoSource {
++		public Element ();
++		public abstract Ease.Actor actor (Ease.ActorContext c);
++		public abstract void cairo_render (Cairo.Context context) throws GLib.Error;
++		public Element.from_json (Json.Object obj);
++		public virtual Clutter.Color? get_color ();
++		public abstract Gtk.Widget inspector_widget ();
++		public virtual bool set_color (Clutter.Color c);
++		public virtual void to_html (ref string html, Ease.HTMLExporter exporter, double amount);
++		public virtual Json.Object to_json ();
++		public virtual GLib.List<Gtk.ToolItem>? tool_items ();
++		public Element.with_owner (Ease.Slide owner);
++		protected abstract void write_html (ref string html, Ease.HTMLExporter exporter);
++		public Ease.Document document { get; }
++		public string element_type { get; set; }
++		public bool has_been_edited { get; set; }
++		public float height { get; set; }
++		public string identifier { get; set; }
++		public Ease.Slide parent { get; set; }
++		public float width { get; set; }
++		public float x { get; set; }
++		public float y { get; set; }
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class ElementAddUndoAction : Ease.UndoItem {
++		public ElementAddUndoAction (Ease.Element e);
++		public override Ease.UndoItem apply ();
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class ElementRemoveUndoAction : Ease.UndoItem {
++		public ElementRemoveUndoAction (Ease.Element e);
++		public override Ease.UndoItem apply ();
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class Gradient : GLib.Object {
++		public Gradient (Ease.Color start_color, Ease.Color end_color);
++		public void cairo_render_rect (Cairo.Context cr, int width, int height);
++		public Ease.Gradient copy ();
++		public void flip ();
++		public Gradient.from_string (string str);
++		public Gradient.mirrored (Ease.Color start_color, Ease.Color end_color);
++		public Gradient.radial (Ease.Color start_color, Ease.Color end_color);
++		public string to_string ();
++		public double angle { get; set; }
++		public static Ease.Gradient default_background { owned get; }
++		public Ease.Color end { get; set; }
++		public Ease.GradientType mode { get; set; }
++		public Ease.Color start { get; set; }
++		public signal void changed (Ease.Gradient self);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class HTMLExporter : GLib.Object {
++		public const string HEADER;
++		public HTMLExporter ();
++		public void add_progress (double amount);
++		public void copy_file (string end_path, string base_path);
++		public void finish ();
++		public bool request_path (Gtk.Window win);
++		public string basename { owned get; }
++		public string path { get; set; }
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class Handle : Clutter.CairoTexture {
++		public Handle (Ease.HandlePosition pos);
++		public void drag (float change_x, float change_y, Ease.Actor target, bool prop);
++		public void drag_from_center (float change_x, float change_y, Ease.Actor target, bool prop);
++		public void flip (bool f);
++		public void reposition (Clutter.Actor selection);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class ImageActor : Ease.Actor {
++		public ImageActor (Ease.ImageElement e, Ease.ActorContext c);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class ImageElement : Ease.MediaElement {
++		public ImageElement ();
++		public override Ease.Actor actor (Ease.ActorContext c);
++		public override void cairo_render (Cairo.Context context) throws GLib.Error;
++		public ImageElement.from_json (Json.Object obj);
++		public override Gtk.Widget inspector_widget ();
++		public override void write_html (ref string html, Ease.HTMLExporter exporter);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class Inspector : Gtk.Notebook, Ease.UndoSource {
++		public Inspector ();
++		public Ease.Slide slide { get; set; }
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public abstract class InspectorPane : Gtk.VBox, Ease.UndoSource {
++		public InspectorPane ();
++		protected virtual void slide_updated ();
++		public Ease.Slide slide { get; set; }
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class InspectorSlidePane : Ease.InspectorPane {
++		public InspectorSlidePane ();
++		[CCode (instance_pos = -1)]
++		public void on_background_changed (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void on_color_set (Gtk.ColorButton? sender);
++		[CCode (instance_pos = -1)]
++		public void on_file_set (Gtk.FileChooserButton? sender);
++		[CCode (instance_pos = -1)]
++		public void on_gradient_type_changed (Gtk.ComboBox? sender);
++		[CCode (instance_pos = -1)]
++		public void on_reverse_gradient (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void on_set_angle (Gtk.Widget? sender);
++		protected override void slide_updated ();
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class InspectorTransitionPane : Ease.InspectorPane {
++		public Gtk.ComboBox effect;
++		public Gtk.ComboBox variant;
++		public InspectorTransitionPane ();
++		protected override void slide_updated ();
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class InspectorWindow : Gtk.Window {
++		public InspectorWindow ();
++		public static void toggle ();
++		public static Ease.Slide slide { get; set; }
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class Main : GLib.Object {
++		public static bool presentation_windowed;
++		public Main ();
++		public static void add_window (Ease.EditorWindow win);
++		public static int main (string[] args);
++		public static void open_file (string path);
++		public static void remove_welcome ();
++		public static void remove_window (Ease.EditorWindow win);
++		public static void show_welcome ();
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public abstract class MediaElement : Ease.Element {
++		public MediaElement ();
++		public MediaElement.from_json (Json.Object obj);
++		public override Json.Object to_json ();
++		public string filename { get; set; }
++		public string full_filename { owned get; }
++		public string source_filename { get; set; }
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class OpenDialog : GLib.Object {
++		public OpenDialog ();
++		public static void run ();
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class Player : GLib.Object {
++		public Player (Ease.Document doc);
++		public void advance ();
++		public void on_button_press (Clutter.ButtonEvent event);
++		public void on_button_release (Clutter.ButtonEvent event);
++		public void on_key_press (Clutter.KeyEvent event);
++		public void on_motion (Clutter.MotionEvent event);
++		public Ease.Document document { get; set; }
++		public int slide_index { get; set; }
++		public Clutter.Stage stage { get; set; }
++		public signal void complete ();
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class ScrollableEmbed : Gtk.HBox {
++		public ScrollableEmbed (bool horizontal, bool has_frame);
++		public Clutter.Stage get_stage ();
++		public void key_focus ();
++		public Clutter.Group contents { get; set; }
++		public bool has_horizontal { get; set; }
++		public float height { get; }
++		public float width { get; }
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class SelectionRectangle : Clutter.Group {
++		public SelectionRectangle ();
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class Slide : GLib.Object, Ease.UndoSource {
++		public Gee.ArrayList<Ease.Element> elements;
++		public const string IMAGE_TYPE;
++		public Slide ();
++		public void add (Ease.Element e);
++		public void add_element (int index, Ease.Element e);
++		public void cairo_render (Cairo.Context context) throws GLib.Error;
++		public void cairo_render_background (Cairo.Context cr, int w, int h) throws GLib.Error;
++		public void cairo_render_sized (Cairo.Context context, int w, int h) throws GLib.Error;
++		public Ease.Element element_at (int i);
++		public int index_of (Ease.Element e);
++		public void remove_at (int index);
++		public void remove_element (Ease.Element e);
++		public void to_html (ref string html, Ease.HTMLExporter exporter, double amount, int index);
++		public Slide.with_owner (Ease.Document owner);
++		public double advance_delay { get; set; }
++		public bool automatically_advance { get; set; }
++		public string background_abs { owned get; }
++		public Ease.Color background_color { get; set; }
++		public Ease.Gradient background_gradient { get; set; }
++		public string background_image { get; set; }
++		public string background_image_source { get; set; }
++		public Ease.BackgroundType background_type { get; set; }
++		public int count { get; }
++		public Ease.Slide? next { owned get; }
++		public Ease.Document parent { get; set; }
++		public Ease.Slide? previous { owned get; }
++		public Ease.Theme theme { get; set; }
++		public string title { get; set; }
++		public Ease.Transition transition { get; set; }
++		public uint transition_msecs { get; set; }
++		public double transition_time { get; set; }
++		public Ease.TransitionVariant variant { get; set; }
++		public signal void background_changed (Ease.Slide self);
++		public signal void changed (Ease.Slide self);
++		public signal void element_added (Ease.Slide self, Ease.Element element, int index);
++		public signal void element_removed (Ease.Slide self, Ease.Element element, int index);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class SlideActor : Clutter.Group {
++		public Clutter.CairoTexture background;
++		public Ease.ClutterIterableGroup contents;
++		public Ease.ActorContext context;
++		public const int EASE_DROP;
++		public const int EASE_PIVOT;
++		public const int EASE_SLIDE;
++		public const float FLIP_DEPTH;
++		public const float PANEL_SCALE;
++		public SlideActor ();
++		public SlideActor.blank (Ease.Document document, Clutter.Color color);
++		public SlideActor.from_slide (Ease.Document document, Ease.Slide s, bool clip, Ease.ActorContext ctx);
++		public void on_element_added (Ease.Slide slide, Ease.Element element, int index);
++		public void on_element_removed (Ease.Slide slide, Ease.Element element, int index);
++		public void relayout ();
++		public void reset (Clutter.Group container);
++		public void stack (Clutter.Actor container);
++		public void transition (Ease.SlideActor new_slide, Clutter.Group container);
++		public void unstack (Ease.SlideActor other, Clutter.Actor container);
++		public SlideActor.with_dimensions (float w, float h, Ease.Slide s, bool clip, Ease.ActorContext ctx);
++		public Clutter.Timeline animation_time { get; set; }
++		public Ease.Slide slide { get; set; }
++		public signal void ease_actor_added (Ease.Actor actor);
++		public signal void ease_actor_removed (Ease.Actor actor);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class SlideAddUndoAction : Ease.UndoItem {
++		public SlideAddUndoAction (Ease.Slide s);
++		public override Ease.UndoItem apply ();
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class SlideButtonPanel : Gtk.ScrolledWindow {
++		public SlideButtonPanel (Ease.Document d, Ease.EditorWindow win);
++		public void select_slide (Ease.Slide slide);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class SlideRemoveUndoAction : Ease.UndoItem {
++		public SlideRemoveUndoAction (Ease.Slide s);
++		public override Ease.UndoItem apply ();
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class Temp : GLib.Object {
++		public const string IMG_DIR;
++		public const string TEMP_DIR;
++		public const string THEME_DIR;
++		public const string UI_DIR;
++		public Temp ();
++		public static void clean ();
++		public static bool exists (int dir, string tmp);
++		public static string request () throws GLib.Error;
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class TextActor : Ease.Actor {
++		public TextActor (Ease.TextElement e, Ease.ActorContext c);
++		public override void edit (Ease.EditorEmbed sender);
++		public override void end_edit (Ease.EditorEmbed sender);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class TextElement : Ease.Element {
++		public TextElement ();
++		public override Ease.Actor actor (Ease.ActorContext c);
++		public override void cairo_render (Cairo.Context context) throws GLib.Error;
++		public TextElement.from_json (Json.Object obj);
++		public override Clutter.Color? get_color ();
++		public override Gtk.Widget inspector_widget ();
++		[CCode (instance_pos = -1)]
++		public void on_inspector_alignment (Gtk.Widget sender);
++		public override bool set_color (Clutter.Color c);
++		public void text_align_from_string (string str);
++		public string text_align_to_string ();
++		public void text_size_from_string (string str);
++		public string text_size_to_string ();
++		public void text_style_from_string (string str);
++		public string text_style_to_string ();
++		public void text_variant_from_string (string str);
++		public string text_variant_to_string ();
++		public void text_weight_from_string (string str);
++		public string text_weight_to_string ();
++		public override Json.Object to_json ();
++		protected override void write_html (ref string html, Ease.HTMLExporter exporter);
++		public Ease.Color color { get; set; }
++		public Pango.FontDescription font_description { owned get; set; }
++		public string text { get; set; }
++		public Pango.Alignment text_align { get; set; }
++		public string text_font { get; set; }
++		public int text_size { get; set; }
++		public Pango.Style text_style { get; set; }
++		public Pango.Variant text_variant { get; set; }
++		public int text_weight { get; set; }
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class Theme : GLib.Object {
++		public string title;
++		public const string BACKGROUND_COLOR;
++		public const string BACKGROUND_GRADIENT;
++		public const string BACKGROUND_IMAGE;
++		public const string CONTENT;
++		public const string CONTENT_DUAL;
++		public const string CONTENT_DUAL_HEADER;
++		public const string CONTENT_HEADER;
++		public const string CONTENT_MEDIA;
++		public const string CUSTOM_MEDIA;
++		public const string ELEMENT_TYPE;
++		public const string E_IDENTIFIER;
++		public const string GRAD_LINEAR;
++		public const string GRAD_LINEAR_MIRRORED;
++		public const string GRAD_RADIAL;
++		public const string HAS_BEEN_EDITED;
++		public const string HEIGHT;
++		public const string JSON_PATH;
++		public const string[] MASTER_SLIDES;
++		public const string MEDIA;
++		public const string MEDIA_FILENAME;
++		public const string MEDIA_HEADER;
++		public const string MEDIA_SOURCE_FILENAME;
++		public const string PAD_BOTTOM;
++		public const string PAD_LEFT;
++		public const string PAD_RIGHT;
++		public const string PAD_TOP;
++		public const string S_IDENTIFIER;
++		public const string TEXT_ALIGN;
++		public const string TEXT_COLOR;
++		public const string TEXT_FONT;
++		public const string TEXT_SIZE;
++		public const string TEXT_STYLE;
++		public const string TEXT_TEXT;
++		public const string TEXT_VARIANT;
++		public const string TEXT_WEIGHT;
++		public const string TITLE;
++		public const string WIDTH;
++		public const string X;
++		public const string Y;
++		public Theme (string dir_path);
++		public void copy_media (string target) throws GLib.Error;
++		public Ease.Theme copy_to_path (string copy_to) throws GLib.Error;
++		public Ease.TextElement create_custom_text ();
++		public Ease.Slide? create_slide (string master, int width, int height);
++		public Theme.json (string json_path);
++		public static string master_description (string master);
++		public static string master_from_description (string desc);
++		public static string master_mnemonic_description (string master);
++		public string path { get; set; }
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class UndoAction : Ease.UndoItem {
++		public UndoAction (GLib.Object obj, string prop);
++		public void add (GLib.Object obj, string prop);
++		public override Ease.UndoItem apply ();
++		public void combine (Ease.UndoAction action);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class UndoController : GLib.Object {
++		public UndoController ();
++		public void add_action (Ease.UndoItem action);
++		public bool can_redo ();
++		public bool can_undo ();
++		public void clear_redo ();
++		public void redo ();
++		public void undo ();
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public abstract class UndoItem : GLib.Object {
++		public UndoItem ();
++		public abstract Ease.UndoItem apply ();
++		public signal void applied (Ease.UndoAction sender);
++		public signal void pre_apply (Ease.UndoAction sender);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class WelcomeActor : Clutter.Group {
++		public WelcomeActor (Ease.Theme t);
++		public void fade ();
++		public void set_actor_size (float w, float h);
++		public void set_slide_size (int w, int h);
++		public void unfade ();
++		public Ease.Theme theme { get; set; }
++		public signal void double_click (Ease.WelcomeActor sender);
++		public signal void selected (Ease.WelcomeActor sender);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class WelcomeWindow : Gtk.Window {
++		public WelcomeWindow ();
++		[CCode (instance_pos = -1)]
++		public void create_new_document (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void on_open_pres_button_clicked (Gtk.Widget sender);
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public class ZoomSlider : Gtk.Alignment {
++		public ZoomSlider (Gtk.Adjustment adjustment, int[] button_values);
++		protected virtual void change_zoom (double value);
++		public double get_value ();
++		public void zoom_in ();
++		public void zoom_out ();
++		public bool buttons_shown { get; set; }
++		public int digits { get; set; }
++		public double sliderpos { get; set; }
++		public Gtk.PositionType value_pos { get; set; }
++		public signal void value_changed ();
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public interface ClutterIterableContainer : Clutter.Container {
++		[CCode (ref_function = "ease_clutter_iterable_container_iterator_ref", unref_function = "ease_clutter_iterable_container_iterator_unref", cheader_filename = "libease.h")]
++		public class Iterator {
++			public Iterator (Ease.ClutterIterableContainer self);
++			public Clutter.Actor @get ();
++			public bool next ();
++		}
++		public Ease.ClutterIterableContainer.Iterator iterator ();
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public interface UndoSource : GLib.Object {
++		protected void forward (Ease.UndoItem action);
++		protected void listen (Ease.UndoSource source);
++		protected void silence (Ease.UndoSource source);
++		public signal void undo (Ease.UndoItem action);
++	}
++	[CCode (cprefix = "EASE_ACTOR_CONTEXT_", cheader_filename = "libease.h")]
++	public enum ActorContext {
++		PRESENTATION,
++		EDITOR,
++		INSPECTOR
++	}
++	[CCode (cprefix = "EASE_BACKGROUND_TYPE_", cheader_filename = "libease.h")]
++	public enum BackgroundType {
++		COLOR,
++		GRADIENT,
++		IMAGE;
++		public string to_string ();
++		public static Ease.BackgroundType from_string (string str);
++		public string description ();
++		public const Ease.BackgroundType[] TYPES;
++	}
++	[CCode (cprefix = "EASE_GRADIENT_TYPE_", cheader_filename = "libease.h")]
++	public enum GradientType {
++		LINEAR,
++		LINEAR_MIRRORED,
++		RADIAL;
++		public string to_string ();
++		public static Ease.GradientType from_string (string str);
++		public string description ();
++		public static Gtk.ListStore list_store ();
++	}
++	[CCode (cprefix = "EASE_HANDLE_POSITION_", cheader_filename = "libease.h")]
++	public enum HandlePosition {
++		TOP_LEFT,
++		TOP_RIGHT,
++		TOP,
++		LEFT,
++		RIGHT,
++		BOTTOM_LEFT,
++		BOTTOM_RIGHT,
++		BOTTOM
++	}
++	[CCode (cprefix = "EASE_KEY_", cheader_filename = "libease.h")]
++	public enum Key {
++		UP,
++		DOWN,
++		LEFT,
++		RIGHT,
++		BACKSPACE,
++		DELETE
++	}
++	[CCode (cprefix = "EASE_TRANSITION_", cheader_filename = "libease.h")]
++	public enum Transition {
++		NONE,
++		FADE,
++		SLIDE,
++		DROP,
++		PIVOT,
++		FLIP,
++		REVOLVING_DOOR,
++		REVEAL,
++		FALL,
++		SLATS,
++		OPEN_DOOR,
++		EXPLODE,
++		ASSEMBLE,
++		ZOOM,
++		PANEL,
++		SPIN_CONTENTS,
++		SPRING_CONTENTS,
++		SWING_CONTENTS,
++		SLIDE_CONTENTS,
++		ZOOM_CONTENTS;
++		public static Gtk.ListStore model ();
++		public Gtk.ListStore variant_model ();
++		public static Ease.Transition from_string (string str);
++		public Ease.TransitionVariant[] variants ();
++		public string get_name ();
++	}
++	[CCode (cprefix = "EASE_TRANSITION_VARIANT_", cheader_filename = "libease.h")]
++	public enum TransitionVariant {
++		LEFT,
++		RIGHT,
++		UP,
++		DOWN,
++		BOTTOM,
++		TOP,
++		CENTER,
++		TOP_LEFT,
++		TOP_RIGHT,
++		BOTTOM_LEFT,
++		BOTTOM_RIGHT,
++		TOP_TO_BOTTOM,
++		BOTTOM_TO_TOP,
++		LEFT_TO_RIGHT,
++		RIGHT_TO_LEFT,
++		IN,
++		OUT;
++		public static Ease.TransitionVariant from_string (string str);
++		public string get_name ();
++	}
++	[CCode (cheader_filename = "libease.h")]
++	public delegate void RecursiveDirAction (string path, string full_path);
++	[CCode (cheader_filename = "libease.h")]
++	public static string? data_path (string path);
++	[CCode (cheader_filename = "libease.h")]
++	public static double dmax (double a, double b);
++	[CCode (cheader_filename = "libease.h")]
++	public static double dmin (double a, double b);
++	[CCode (cheader_filename = "libease.h")]
++	public static void error_dialog (string title, string message);
++	[CCode (cheader_filename = "libease.h")]
++	public static void recursive_copy (string from_dir, string to_dir) throws GLib.Error;
++	[CCode (cheader_filename = "libease.h")]
++	public static void recursive_delete (string path) throws GLib.Error;
++	[CCode (cheader_filename = "libease.h")]
++	public static void recursive_directory (string directory, Ease.RecursiveDirAction? directory_action, Ease.RecursiveDirAction? file_action) throws GLib.Error;
++	[CCode (cheader_filename = "libease.h")]
++	public static void recursive_directory_after (string directory, Ease.RecursiveDirAction? directory_action, Ease.RecursiveDirAction? file_action) throws GLib.Error;
++	[CCode (cheader_filename = "libease.h")]
++	public static int roundd (double num);
++	[CCode (cheader_filename = "libease.h")]
++	public static Clutter.Color theme_clutter_color (string color);
++	[CCode (cheader_filename = "libease.h")]
++	public static Gdk.Color? theme_color (string color);
++	[CCode (cheader_filename = "libease.h")]
++	public static Gtk.Window widget_window (Gtk.Widget widg);
++}
++[CCode (cheader_filename = "libease.h")]
++public static string? save_dialog (string title, Gtk.Window? modal);
diff --cc ease-core/ease-core-0.1.vapi
index 0000000,0000000..bbf21d2
new file mode 100644
--- /dev/null
+++ b/ease-core/ease-core-0.1.vapi
@@@ -1,0 -1,0 +1,747 @@@
++/* ease-core-0.1.vapi generated by valac, do not modify. */
++
++[CCode (cprefix = "Ease", lower_case_cprefix = "ease_", gir_namespace = "EaseCore", gir_version = "0.1")]
++namespace Ease {
++	[CCode (cprefix = "EaseIterable", lower_case_cprefix = "ease_iterable_")]
++	namespace Iterable {
++		[CCode (cheader_filename = "libease-core.h")]
++		public class ListStore : Gtk.ListStore, Ease.Iterable.TreeModel {
++			public ListStore (GLib.Type[] types);
++			public int size { get; }
++		}
++		[CCode (cheader_filename = "libease-core.h")]
++		public interface TreeModel : Gtk.TreeModel {
++			[CCode (ref_function = "ease_iterable_tree_model_iterator_ref", unref_function = "ease_iterable_tree_model_iterator_unref", cheader_filename = "libease-core.h")]
++			public class Iterator {
++				public Iterator (Ease.Iterable.TreeModel self);
++				public Gtk.TreeIter @get ();
++				public bool next ();
++			}
++			public Ease.Iterable.TreeModel.Iterator iterator ();
++		}
++	}
++	[CCode (cprefix = "EaseTransformations", lower_case_cprefix = "ease_transformations_")]
++	namespace Transformations {
++		[CCode (cheader_filename = "libease-core.h")]
++		public static Gdk.Color clutter_color_to_gdk_color (Clutter.Color color);
++		[CCode (cheader_filename = "libease-core.h")]
++		public static Clutter.Color gdk_color_to_clutter_color (Gdk.Color color);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class AboutDialog : Gtk.AboutDialog {
++		public AboutDialog ();
++		public static void show_about (Gtk.Widget sender);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public abstract class Actor : Clutter.Group {
++		protected Clutter.Actor contents;
++		public Ease.ActorContext context;
++		public weak Ease.Element element;
++		public bool is_background;
++		public Actor (Ease.Element e, Ease.ActorContext c);
++		public virtual void edit (Ease.EditorEmbed sender);
++		public virtual void end_edit (Ease.EditorEmbed sender);
++		public void reposition ();
++		public void resize (float w_change, float h_change, bool proportional);
++		public void translate (float x_change, float y_change);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class AnimatedZoomSlider : Ease.ZoomSlider, Clutter.Animatable {
++		public AnimatedZoomSlider (Gtk.Adjustment adjustment, int[] button_values);
++		protected override void change_zoom (double value);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class CloseConfirmDialog : Gtk.Dialog {
++		public CloseConfirmDialog (string filename, int seconds);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class ClutterIterableGroup : Clutter.Group, Ease.ClutterIterableContainer {
++		public ClutterIterableGroup ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class ClutterIterableStage : Clutter.Stage, Ease.ClutterIterableContainer {
++		public ClutterIterableStage ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Color : GLib.Object {
++		public Color ();
++		public Ease.Color copy ();
++		public Color.from_clutter (Clutter.Color color);
++		public Color.from_gdk (Gdk.Color color);
++		public Color.from_string (string str);
++		public Color.rgb (double r, double g, double b);
++		public Color.rgba (double r, double g, double b, double a);
++		public void set_cairo (Cairo.Context cr);
++		public string to_string ();
++		public Ease.UndoAction undo_action ();
++		public double alpha { get; set; }
++		public static Ease.Color black { owned get; }
++		public double blue { get; set; }
++		public Clutter.Color clutter { get; set; }
++		public Gdk.Color gdk { get; set; }
++		public double green { get; set; }
++		public double red { get; set; }
++		public static Ease.Color white { owned get; }
++		public signal void changed (Ease.Color self);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Document : GLib.Object, Ease.UndoSource {
++		public Ease.Iterable.ListStore slides;
++		public const int COL_PIXBUF;
++		public const int COL_SLIDE;
++		public const string DEFAULT_SLIDE;
++		public const string THEME_PATH;
++		public Document ();
++		public string add_media_file (string file) throws GLib.Error;
++		public void add_slide (int index, Ease.Slide s);
++		public void append_slide (Ease.Slide s);
++		public void cairo_render (Cairo.Surface surface) throws GLib.Error;
++		public void export_as_html (Gtk.Window window);
++		public void export_as_pdf (Gtk.Window win);
++		public void export_as_postscript (Gtk.Window win);
++		public Document.from_saved (string file_path) throws GLib.Error;
++		public Document.from_theme (Ease.Theme doc_theme, int w, int h) throws GLib.Error;
++		public Ease.Slide get_slide (int index);
++		public bool has_next_slide (Ease.Slide slide);
++		public int index_of (Ease.Slide slide);
++		public Ease.Slide remove_slide (Ease.Slide slide);
++		public Ease.Slide? slide_by_title (string title);
++		public void to_json () throws GLib.Error;
++		public float aspect { get; }
++		public string filename { get; set; }
++		public int height { get; set; }
++		public int length { get; }
++		public string path { get; set; }
++		public Ease.Theme theme { get; set; }
++		public int width { get; set; }
++		public signal void slide_added (Ease.Slide slide, int index);
++		public signal void slide_deleted (Ease.Slide slide, int index);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class EditorEmbed : Ease.ScrollableEmbed, Ease.UndoSource {
++		public Ease.SlideActor slide_actor;
++		public EditorEmbed (Ease.Document d, Ease.EditorWindow w);
++		public void connect_keys ();
++		public void disconnect_keys ();
++		public void on_ease_actor_added (Ease.Actor actor);
++		public void on_ease_actor_removed (Ease.Actor actor);
++		public void on_element_removed (Ease.Slide slide, Ease.Element element, int index);
++		public bool on_key_press_event (Gtk.Widget self, Gdk.EventKey event);
++		public void recreate_slide ();
++		public void reposition_group ();
++		public void select_element (Ease.Element e);
++		public void set_element_color (Clutter.Color color);
++		public void set_slide (Ease.Slide slide);
++		public Ease.Actor selected { get; set; }
++		public float zoom { get; set; }
++		public signal void element_deselected (Ease.Element? deselected);
++		public signal void element_selected (Ease.Element selected);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class EditorWindow : Gtk.Window {
++		public Ease.Document document;
++		public Ease.EditorEmbed embed;
++		public Ease.Slide slide;
++		public Ease.SlideButtonPanel slide_button_panel;
++		public Ease.ZoomSlider zoom_slider;
++		public EditorWindow (Ease.Document doc);
++		public void add_undo_action (Ease.UndoItem action);
++		[CCode (instance_pos = -1)]
++		public void export_as_html (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void export_as_pdf (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void export_as_postscript (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void insert_image (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void insert_text (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void insert_video (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void inspector_clicked_handler (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void new_slide_handler (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void on_delete (Gtk.Widget sender);
++		public void on_new_slide_menu (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void on_quit (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void play_handler (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void redo_handler (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void remove_slide (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public bool save_document (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void select_font (Gtk.Widget? sender);
++		public void set_slide (int index);
++		[CCode (instance_pos = -1)]
++		public void show_color_dialog (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void undo_handler (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void zoom_in (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void zoom_out (Gtk.Widget sender);
++		public bool slides_shown { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public abstract class Element : GLib.Object, Ease.UndoSource {
++		public Element ();
++		public abstract Ease.Actor actor (Ease.ActorContext c);
++		public abstract void cairo_render (Cairo.Context context) throws GLib.Error;
++		public Element.from_json (Json.Object obj);
++		public virtual Clutter.Color? get_color ();
++		public abstract Gtk.Widget inspector_widget ();
++		public virtual bool set_color (Clutter.Color c);
++		public virtual void to_html (ref string html, Ease.HTMLExporter exporter, double amount);
++		public virtual Json.Object to_json ();
++		public virtual GLib.List<Gtk.ToolItem>? tool_items ();
++		public Element.with_owner (Ease.Slide owner);
++		protected abstract void write_html (ref string html, Ease.HTMLExporter exporter);
++		public Ease.Document document { get; }
++		public string element_type { get; set; }
++		public bool has_been_edited { get; set; }
++		public float height { get; set; }
++		public string identifier { get; set; }
++		public Ease.Slide parent { get; set; }
++		public float width { get; set; }
++		public float x { get; set; }
++		public float y { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class ElementAddUndoAction : Ease.UndoItem {
++		public ElementAddUndoAction (Ease.Element e);
++		public override Ease.UndoItem apply ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class ElementRemoveUndoAction : Ease.UndoItem {
++		public ElementRemoveUndoAction (Ease.Element e);
++		public override Ease.UndoItem apply ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Gradient : GLib.Object {
++		public Gradient (Ease.Color start_color, Ease.Color end_color);
++		public void cairo_render_rect (Cairo.Context cr, int width, int height);
++		public Ease.Gradient copy ();
++		public void flip ();
++		public Gradient.from_string (string str);
++		public Gradient.mirrored (Ease.Color start_color, Ease.Color end_color);
++		public Gradient.radial (Ease.Color start_color, Ease.Color end_color);
++		public string to_string ();
++		public double angle { get; set; }
++		public static Ease.Gradient default_background { owned get; }
++		public Ease.Color end { get; set; }
++		public Ease.GradientType mode { get; set; }
++		public Ease.Color start { get; set; }
++		public signal void changed (Ease.Gradient self);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class HTMLExporter : GLib.Object {
++		public const string HEADER;
++		public HTMLExporter ();
++		public void add_progress (double amount);
++		public void copy_file (string end_path, string base_path);
++		public void finish ();
++		public bool request_path (Gtk.Window win);
++		public string basename { owned get; }
++		public string path { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Handle : Clutter.CairoTexture {
++		public Handle (Ease.HandlePosition pos);
++		public void drag (float change_x, float change_y, Ease.Actor target, bool prop);
++		public void drag_from_center (float change_x, float change_y, Ease.Actor target, bool prop);
++		public void flip (bool f);
++		public void reposition (Clutter.Actor selection);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class ImageActor : Ease.Actor {
++		public ImageActor (Ease.ImageElement e, Ease.ActorContext c);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class ImageElement : Ease.MediaElement {
++		public ImageElement ();
++		public override Ease.Actor actor (Ease.ActorContext c);
++		public override void cairo_render (Cairo.Context context) throws GLib.Error;
++		public ImageElement.from_json (Json.Object obj);
++		public override Gtk.Widget inspector_widget ();
++		public override void write_html (ref string html, Ease.HTMLExporter exporter);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Inspector : Gtk.Notebook, Ease.UndoSource {
++		public Inspector ();
++		public Ease.Slide slide { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public abstract class InspectorPane : Gtk.VBox, Ease.UndoSource {
++		public InspectorPane ();
++		protected virtual void slide_updated ();
++		public Ease.Slide slide { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class InspectorSlidePane : Ease.InspectorPane {
++		public InspectorSlidePane ();
++		[CCode (instance_pos = -1)]
++		public void on_background_changed (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void on_color_set (Gtk.ColorButton? sender);
++		[CCode (instance_pos = -1)]
++		public void on_file_set (Gtk.FileChooserButton? sender);
++		[CCode (instance_pos = -1)]
++		public void on_gradient_type_changed (Gtk.ComboBox? sender);
++		[CCode (instance_pos = -1)]
++		public void on_reverse_gradient (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void on_set_angle (Gtk.Widget? sender);
++		protected override void slide_updated ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class InspectorTransitionPane : Ease.InspectorPane {
++		public Gtk.ComboBox effect;
++		public Gtk.ComboBox variant;
++		public InspectorTransitionPane ();
++		protected override void slide_updated ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class InspectorWindow : Gtk.Window {
++		public InspectorWindow ();
++		public static void toggle ();
++		public static Ease.Slide slide { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Main : GLib.Object {
++		public static bool presentation_windowed;
++		public Main ();
++		public static void add_window (Ease.EditorWindow win);
++		public static int main (string[] args);
++		public static void open_file (string path);
++		public static void remove_welcome ();
++		public static void remove_window (Ease.EditorWindow win);
++		public static void show_welcome ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public abstract class MediaElement : Ease.Element {
++		public MediaElement ();
++		public MediaElement.from_json (Json.Object obj);
++		public override Json.Object to_json ();
++		public string filename { get; set; }
++		public string full_filename { owned get; }
++		public string source_filename { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class OpenDialog : GLib.Object {
++		public OpenDialog ();
++		public static void run ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Player : GLib.Object {
++		public Player (Ease.Document doc);
++		public void advance ();
++		public void on_button_press (Clutter.ButtonEvent event);
++		public void on_button_release (Clutter.ButtonEvent event);
++		public void on_key_press (Clutter.KeyEvent event);
++		public void on_motion (Clutter.MotionEvent event);
++		public Ease.Document document { get; set; }
++		public int slide_index { get; set; }
++		public Clutter.Stage stage { get; set; }
++		public signal void complete ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class ScrollableEmbed : Gtk.HBox {
++		public ScrollableEmbed (bool horizontal, bool has_frame);
++		public Clutter.Stage get_stage ();
++		public void key_focus ();
++		public Clutter.Group contents { get; set; }
++		public bool has_horizontal { get; set; }
++		public float height { get; }
++		public float width { get; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class SelectionRectangle : Clutter.Group {
++		public SelectionRectangle ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Slide : GLib.Object, Ease.UndoSource {
++		public Gee.ArrayList<Ease.Element> elements;
++		public const string IMAGE_TYPE;
++		public Slide ();
++		public void add (Ease.Element e);
++		public void add_element (int index, Ease.Element e);
++		public void cairo_render (Cairo.Context context) throws GLib.Error;
++		public void cairo_render_background (Cairo.Context cr, int w, int h) throws GLib.Error;
++		public void cairo_render_sized (Cairo.Context context, int w, int h) throws GLib.Error;
++		public Ease.Element element_at (int i);
++		public int index_of (Ease.Element e);
++		public void remove_at (int index);
++		public void remove_element (Ease.Element e);
++		public void to_html (ref string html, Ease.HTMLExporter exporter, double amount, int index);
++		public Slide.with_owner (Ease.Document owner);
++		public double advance_delay { get; set; }
++		public bool automatically_advance { get; set; }
++		public string background_abs { owned get; }
++		public Ease.Color background_color { get; set; }
++		public Ease.Gradient background_gradient { get; set; }
++		public string background_image { get; set; }
++		public string background_image_source { get; set; }
++		public Ease.BackgroundType background_type { get; set; }
++		public int count { get; }
++		public Ease.Slide? next { owned get; }
++		public Ease.Document parent { get; set; }
++		public Ease.Slide? previous { owned get; }
++		public Ease.Theme theme { get; set; }
++		public string title { get; set; }
++		public Ease.Transition transition { get; set; }
++		public uint transition_msecs { get; set; }
++		public double transition_time { get; set; }
++		public Ease.TransitionVariant variant { get; set; }
++		public signal void background_changed (Ease.Slide self);
++		public signal void changed (Ease.Slide self);
++		public signal void element_added (Ease.Slide self, Ease.Element element, int index);
++		public signal void element_removed (Ease.Slide self, Ease.Element element, int index);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class SlideActor : Clutter.Group {
++		public Clutter.CairoTexture background;
++		public Ease.ClutterIterableGroup contents;
++		public Ease.ActorContext context;
++		public const int EASE_DROP;
++		public const int EASE_PIVOT;
++		public const int EASE_SLIDE;
++		public const float FLIP_DEPTH;
++		public const float PANEL_SCALE;
++		public SlideActor ();
++		public SlideActor.blank (Ease.Document document, Clutter.Color color);
++		public SlideActor.from_slide (Ease.Document document, Ease.Slide s, bool clip, Ease.ActorContext ctx);
++		public void on_element_added (Ease.Slide slide, Ease.Element element, int index);
++		public void on_element_removed (Ease.Slide slide, Ease.Element element, int index);
++		public void relayout ();
++		public void reset (Clutter.Group container);
++		public void stack (Clutter.Actor container);
++		public void transition (Ease.SlideActor new_slide, Clutter.Group container);
++		public void unstack (Ease.SlideActor other, Clutter.Actor container);
++		public SlideActor.with_dimensions (float w, float h, Ease.Slide s, bool clip, Ease.ActorContext ctx);
++		public Clutter.Timeline animation_time { get; set; }
++		public Ease.Slide slide { get; set; }
++		public signal void ease_actor_added (Ease.Actor actor);
++		public signal void ease_actor_removed (Ease.Actor actor);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class SlideAddUndoAction : Ease.UndoItem {
++		public SlideAddUndoAction (Ease.Slide s);
++		public override Ease.UndoItem apply ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class SlideButtonPanel : Gtk.ScrolledWindow {
++		public SlideButtonPanel (Ease.Document d, Ease.EditorWindow win);
++		public void select_slide (Ease.Slide slide);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class SlideRemoveUndoAction : Ease.UndoItem {
++		public SlideRemoveUndoAction (Ease.Slide s);
++		public override Ease.UndoItem apply ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Temp : GLib.Object {
++		public const string IMG_DIR;
++		public const string TEMP_DIR;
++		public const string THEME_DIR;
++		public const string UI_DIR;
++		public Temp ();
++		public static void clean ();
++		public static bool exists (int dir, string tmp);
++		public static string request () throws GLib.Error;
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class TextActor : Ease.Actor {
++		public TextActor (Ease.TextElement e, Ease.ActorContext c);
++		public override void edit (Ease.EditorEmbed sender);
++		public override void end_edit (Ease.EditorEmbed sender);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class TextElement : Ease.Element {
++		public TextElement ();
++		public override Ease.Actor actor (Ease.ActorContext c);
++		public override void cairo_render (Cairo.Context context) throws GLib.Error;
++		public TextElement.from_json (Json.Object obj);
++		public override Clutter.Color? get_color ();
++		public override Gtk.Widget inspector_widget ();
++		[CCode (instance_pos = -1)]
++		public void on_inspector_alignment (Gtk.Widget sender);
++		public override bool set_color (Clutter.Color c);
++		public void text_align_from_string (string str);
++		public string text_align_to_string ();
++		public void text_size_from_string (string str);
++		public string text_size_to_string ();
++		public void text_style_from_string (string str);
++		public string text_style_to_string ();
++		public void text_variant_from_string (string str);
++		public string text_variant_to_string ();
++		public void text_weight_from_string (string str);
++		public string text_weight_to_string ();
++		public override Json.Object to_json ();
++		protected override void write_html (ref string html, Ease.HTMLExporter exporter);
++		public Ease.Color color { get; set; }
++		public Pango.FontDescription font_description { owned get; set; }
++		public string text { get; set; }
++		public Pango.Alignment text_align { get; set; }
++		public string text_font { get; set; }
++		public int text_size { get; set; }
++		public Pango.Style text_style { get; set; }
++		public Pango.Variant text_variant { get; set; }
++		public int text_weight { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Theme : GLib.Object {
++		public string title;
++		public const string BACKGROUND_COLOR;
++		public const string BACKGROUND_GRADIENT;
++		public const string BACKGROUND_IMAGE;
++		public const string CONTENT;
++		public const string CONTENT_DUAL;
++		public const string CONTENT_DUAL_HEADER;
++		public const string CONTENT_HEADER;
++		public const string CONTENT_MEDIA;
++		public const string CUSTOM_MEDIA;
++		public const string ELEMENT_TYPE;
++		public const string E_IDENTIFIER;
++		public const string GRAD_LINEAR;
++		public const string GRAD_LINEAR_MIRRORED;
++		public const string GRAD_RADIAL;
++		public const string HAS_BEEN_EDITED;
++		public const string HEIGHT;
++		public const string JSON_PATH;
++		public const string[] MASTER_SLIDES;
++		public const string MEDIA;
++		public const string MEDIA_FILENAME;
++		public const string MEDIA_HEADER;
++		public const string MEDIA_SOURCE_FILENAME;
++		public const string PAD_BOTTOM;
++		public const string PAD_LEFT;
++		public const string PAD_RIGHT;
++		public const string PAD_TOP;
++		public const string S_IDENTIFIER;
++		public const string TEXT_ALIGN;
++		public const string TEXT_COLOR;
++		public const string TEXT_FONT;
++		public const string TEXT_SIZE;
++		public const string TEXT_STYLE;
++		public const string TEXT_TEXT;
++		public const string TEXT_VARIANT;
++		public const string TEXT_WEIGHT;
++		public const string TITLE;
++		public const string WIDTH;
++		public const string X;
++		public const string Y;
++		public Theme (string dir_path);
++		public void copy_media (string target) throws GLib.Error;
++		public Ease.Theme copy_to_path (string copy_to) throws GLib.Error;
++		public Ease.TextElement create_custom_text ();
++		public Ease.Slide? create_slide (string master, int width, int height);
++		public Theme.json (string json_path);
++		public static string master_description (string master);
++		public static string master_from_description (string desc);
++		public static string master_mnemonic_description (string master);
++		public string path { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class UndoAction : Ease.UndoItem {
++		public UndoAction (GLib.Object obj, string prop);
++		public void add (GLib.Object obj, string prop);
++		public override Ease.UndoItem apply ();
++		public void combine (Ease.UndoAction action);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class UndoController : GLib.Object {
++		public UndoController ();
++		public void add_action (Ease.UndoItem action);
++		public bool can_redo ();
++		public bool can_undo ();
++		public void clear_redo ();
++		public void redo ();
++		public void undo ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public abstract class UndoItem : GLib.Object {
++		public UndoItem ();
++		public abstract Ease.UndoItem apply ();
++		public signal void applied (Ease.UndoAction sender);
++		public signal void pre_apply (Ease.UndoAction sender);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class WelcomeActor : Clutter.Group {
++		public WelcomeActor (Ease.Theme t);
++		public void fade ();
++		public void set_actor_size (float w, float h);
++		public void set_slide_size (int w, int h);
++		public void unfade ();
++		public Ease.Theme theme { get; set; }
++		public signal void double_click (Ease.WelcomeActor sender);
++		public signal void selected (Ease.WelcomeActor sender);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class WelcomeWindow : Gtk.Window {
++		public WelcomeWindow ();
++		[CCode (instance_pos = -1)]
++		public void create_new_document (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void on_open_pres_button_clicked (Gtk.Widget sender);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class ZoomSlider : Gtk.Alignment {
++		public ZoomSlider (Gtk.Adjustment adjustment, int[] button_values);
++		protected virtual void change_zoom (double value);
++		public double get_value ();
++		public void zoom_in ();
++		public void zoom_out ();
++		public bool buttons_shown { get; set; }
++		public int digits { get; set; }
++		public double sliderpos { get; set; }
++		public Gtk.PositionType value_pos { get; set; }
++		public signal void value_changed ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public interface ClutterIterableContainer : Clutter.Container {
++		[CCode (ref_function = "ease_clutter_iterable_container_iterator_ref", unref_function = "ease_clutter_iterable_container_iterator_unref", cheader_filename = "libease-core.h")]
++		public class Iterator {
++			public Iterator (Ease.ClutterIterableContainer self);
++			public Clutter.Actor @get ();
++			public bool next ();
++		}
++		public Ease.ClutterIterableContainer.Iterator iterator ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public interface UndoSource : GLib.Object {
++		protected void forward (Ease.UndoItem action);
++		protected void listen (Ease.UndoSource source);
++		protected void silence (Ease.UndoSource source);
++		public signal void undo (Ease.UndoItem action);
++	}
++	[CCode (cprefix = "EASE_ACTOR_CONTEXT_", cheader_filename = "libease-core.h")]
++	public enum ActorContext {
++		PRESENTATION,
++		EDITOR,
++		INSPECTOR
++	}
++	[CCode (cprefix = "EASE_BACKGROUND_TYPE_", cheader_filename = "libease-core.h")]
++	public enum BackgroundType {
++		COLOR,
++		GRADIENT,
++		IMAGE;
++		public string to_string ();
++		public static Ease.BackgroundType from_string (string str);
++		public string description ();
++		public const Ease.BackgroundType[] TYPES;
++	}
++	[CCode (cprefix = "EASE_GRADIENT_TYPE_", cheader_filename = "libease-core.h")]
++	public enum GradientType {
++		LINEAR,
++		LINEAR_MIRRORED,
++		RADIAL;
++		public string to_string ();
++		public static Ease.GradientType from_string (string str);
++		public string description ();
++		public static Gtk.ListStore list_store ();
++	}
++	[CCode (cprefix = "EASE_HANDLE_POSITION_", cheader_filename = "libease-core.h")]
++	public enum HandlePosition {
++		TOP_LEFT,
++		TOP_RIGHT,
++		TOP,
++		LEFT,
++		RIGHT,
++		BOTTOM_LEFT,
++		BOTTOM_RIGHT,
++		BOTTOM
++	}
++	[CCode (cprefix = "EASE_KEY_", cheader_filename = "libease-core.h")]
++	public enum Key {
++		UP,
++		DOWN,
++		LEFT,
++		RIGHT,
++		BACKSPACE,
++		DELETE
++	}
++	[CCode (cprefix = "EASE_TRANSITION_", cheader_filename = "libease-core.h")]
++	public enum Transition {
++		NONE,
++		FADE,
++		SLIDE,
++		DROP,
++		PIVOT,
++		FLIP,
++		REVOLVING_DOOR,
++		REVEAL,
++		FALL,
++		SLATS,
++		OPEN_DOOR,
++		EXPLODE,
++		ASSEMBLE,
++		ZOOM,
++		PANEL,
++		SPIN_CONTENTS,
++		SPRING_CONTENTS,
++		SWING_CONTENTS,
++		SLIDE_CONTENTS,
++		ZOOM_CONTENTS;
++		public static Gtk.ListStore model ();
++		public Gtk.ListStore variant_model ();
++		public static Ease.Transition from_string (string str);
++		public Ease.TransitionVariant[] variants ();
++		public string get_name ();
++	}
++	[CCode (cprefix = "EASE_TRANSITION_VARIANT_", cheader_filename = "libease-core.h")]
++	public enum TransitionVariant {
++		LEFT,
++		RIGHT,
++		UP,
++		DOWN,
++		BOTTOM,
++		TOP,
++		CENTER,
++		TOP_LEFT,
++		TOP_RIGHT,
++		BOTTOM_LEFT,
++		BOTTOM_RIGHT,
++		TOP_TO_BOTTOM,
++		BOTTOM_TO_TOP,
++		LEFT_TO_RIGHT,
++		RIGHT_TO_LEFT,
++		IN,
++		OUT;
++		public static Ease.TransitionVariant from_string (string str);
++		public string get_name ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public delegate void RecursiveDirAction (string path, string full_path);
++	[CCode (cheader_filename = "libease-core.h")]
++	public static string? data_path (string path);
++	[CCode (cheader_filename = "libease-core.h")]
++	public static double dmax (double a, double b);
++	[CCode (cheader_filename = "libease-core.h")]
++	public static double dmin (double a, double b);
++	[CCode (cheader_filename = "libease-core.h")]
++	public static void error_dialog (string title, string message);
++	[CCode (cheader_filename = "libease-core.h")]
++	public static void recursive_copy (string from_dir, string to_dir) throws GLib.Error;
++	[CCode (cheader_filename = "libease-core.h")]
++	public static void recursive_delete (string path) throws GLib.Error;
++	[CCode (cheader_filename = "libease-core.h")]
++	public static void recursive_directory (string directory, Ease.RecursiveDirAction? directory_action, Ease.RecursiveDirAction? file_action) throws GLib.Error;
++	[CCode (cheader_filename = "libease-core.h")]
++	public static void recursive_directory_after (string directory, Ease.RecursiveDirAction? directory_action, Ease.RecursiveDirAction? file_action) throws GLib.Error;
++	[CCode (cheader_filename = "libease-core.h")]
++	public static int roundd (double num);
++	[CCode (cheader_filename = "libease-core.h")]
++	public static Clutter.Color theme_clutter_color (string color);
++	[CCode (cheader_filename = "libease-core.h")]
++	public static Gdk.Color? theme_color (string color);
++	[CCode (cheader_filename = "libease-core.h")]
++	public static Gtk.Window widget_window (Gtk.Widget widg);
++}
++[CCode (cheader_filename = "libease-core.h")]
++public static string? save_dialog (string title, Gtk.Window? modal);
diff --cc ease-core/ease-core-0.3.vapi
index 0000000,0000000..df7237a
new file mode 100644
--- /dev/null
+++ b/ease-core/ease-core-0.3.vapi
@@@ -1,0 -1,0 +1,747 @@@
++/* ease-core-0.3.vapi generated by valac, do not modify. */
++
++[CCode (cprefix = "Ease", lower_case_cprefix = "ease_", gir_namespace = "EaseCore", gir_version = "0.3")]
++namespace Ease {
++	[CCode (cprefix = "EaseIterable", lower_case_cprefix = "ease_iterable_")]
++	namespace Iterable {
++		[CCode (cheader_filename = "libease-core.h")]
++		public class ListStore : Gtk.ListStore, Ease.Iterable.TreeModel {
++			public ListStore (GLib.Type[] types);
++			public int size { get; }
++		}
++		[CCode (cheader_filename = "libease-core.h")]
++		public interface TreeModel : Gtk.TreeModel {
++			[CCode (ref_function = "ease_iterable_tree_model_iterator_ref", unref_function = "ease_iterable_tree_model_iterator_unref", cheader_filename = "libease-core.h")]
++			public class Iterator {
++				public Iterator (Ease.Iterable.TreeModel self);
++				public Gtk.TreeIter @get ();
++				public bool next ();
++			}
++			public Ease.Iterable.TreeModel.Iterator iterator ();
++		}
++	}
++	[CCode (cprefix = "EaseTransformations", lower_case_cprefix = "ease_transformations_")]
++	namespace Transformations {
++		[CCode (cheader_filename = "libease-core.h")]
++		public static Gdk.Color clutter_color_to_gdk_color (Clutter.Color color);
++		[CCode (cheader_filename = "libease-core.h")]
++		public static Clutter.Color gdk_color_to_clutter_color (Gdk.Color color);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class AboutDialog : Gtk.AboutDialog {
++		public AboutDialog ();
++		public static void show_about (Gtk.Widget sender);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public abstract class Actor : Clutter.Group {
++		protected Clutter.Actor contents;
++		public Ease.ActorContext context;
++		public weak Ease.Element element;
++		public bool is_background;
++		public Actor (Ease.Element e, Ease.ActorContext c);
++		public virtual void edit (Ease.EditorEmbed sender);
++		public virtual void end_edit (Ease.EditorEmbed sender);
++		public void reposition ();
++		public void resize (float w_change, float h_change, bool proportional);
++		public void translate (float x_change, float y_change);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class AnimatedZoomSlider : Ease.ZoomSlider, Clutter.Animatable {
++		public AnimatedZoomSlider (Gtk.Adjustment adjustment, int[] button_values);
++		protected override void change_zoom (double value);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class CloseConfirmDialog : Gtk.Dialog {
++		public CloseConfirmDialog (string filename, int seconds);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class ClutterIterableGroup : Clutter.Group, Ease.ClutterIterableContainer {
++		public ClutterIterableGroup ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class ClutterIterableStage : Clutter.Stage, Ease.ClutterIterableContainer {
++		public ClutterIterableStage ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Color : GLib.Object {
++		public Color ();
++		public Ease.Color copy ();
++		public Color.from_clutter (Clutter.Color color);
++		public Color.from_gdk (Gdk.Color color);
++		public Color.from_string (string str);
++		public Color.rgb (double r, double g, double b);
++		public Color.rgba (double r, double g, double b, double a);
++		public void set_cairo (Cairo.Context cr);
++		public string to_string ();
++		public Ease.UndoAction undo_action ();
++		public double alpha { get; set; }
++		public static Ease.Color black { owned get; }
++		public double blue { get; set; }
++		public Clutter.Color clutter { get; set; }
++		public Gdk.Color gdk { get; set; }
++		public double green { get; set; }
++		public double red { get; set; }
++		public static Ease.Color white { owned get; }
++		public signal void changed (Ease.Color self);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Document : GLib.Object, Ease.UndoSource {
++		public Ease.Iterable.ListStore slides;
++		public const int COL_PIXBUF;
++		public const int COL_SLIDE;
++		public const string DEFAULT_SLIDE;
++		public const string THEME_PATH;
++		public Document ();
++		public string add_media_file (string file) throws GLib.Error;
++		public void add_slide (int index, Ease.Slide s);
++		public void append_slide (Ease.Slide s);
++		public void cairo_render (Cairo.Surface surface) throws GLib.Error;
++		public void export_as_html (Gtk.Window window);
++		public void export_as_pdf (Gtk.Window win);
++		public void export_as_postscript (Gtk.Window win);
++		public Document.from_saved (string file_path) throws GLib.Error;
++		public Document.from_theme (Ease.Theme doc_theme, int w, int h) throws GLib.Error;
++		public Ease.Slide get_slide (int index);
++		public bool has_next_slide (Ease.Slide slide);
++		public int index_of (Ease.Slide slide);
++		public Ease.Slide remove_slide (Ease.Slide slide);
++		public Ease.Slide? slide_by_title (string title);
++		public void to_json () throws GLib.Error;
++		public float aspect { get; }
++		public string filename { get; set; }
++		public int height { get; set; }
++		public int length { get; }
++		public string path { get; set; }
++		public Ease.Theme theme { get; set; }
++		public int width { get; set; }
++		public signal void slide_added (Ease.Slide slide, int index);
++		public signal void slide_deleted (Ease.Slide slide, int index);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class EditorEmbed : Ease.ScrollableEmbed, Ease.UndoSource {
++		public Ease.SlideActor slide_actor;
++		public EditorEmbed (Ease.Document d, Ease.EditorWindow w);
++		public void connect_keys ();
++		public void disconnect_keys ();
++		public void on_ease_actor_added (Ease.Actor actor);
++		public void on_ease_actor_removed (Ease.Actor actor);
++		public void on_element_removed (Ease.Slide slide, Ease.Element element, int index);
++		public bool on_key_press_event (Gtk.Widget self, Gdk.EventKey event);
++		public void recreate_slide ();
++		public void reposition_group ();
++		public void select_element (Ease.Element e);
++		public void set_element_color (Clutter.Color color);
++		public void set_slide (Ease.Slide slide);
++		public Ease.Actor selected { get; set; }
++		public float zoom { get; set; }
++		public signal void element_deselected (Ease.Element? deselected);
++		public signal void element_selected (Ease.Element selected);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class EditorWindow : Gtk.Window {
++		public Ease.Document document;
++		public Ease.EditorEmbed embed;
++		public Ease.Slide slide;
++		public Ease.SlideButtonPanel slide_button_panel;
++		public Ease.ZoomSlider zoom_slider;
++		public EditorWindow (Ease.Document doc);
++		public void add_undo_action (Ease.UndoItem action);
++		[CCode (instance_pos = -1)]
++		public void export_as_html (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void export_as_pdf (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void export_as_postscript (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void insert_image (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void insert_text (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void insert_video (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void inspector_clicked_handler (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void new_slide_handler (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void on_delete (Gtk.Widget sender);
++		public void on_new_slide_menu (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void on_quit (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void play_handler (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void redo_handler (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void remove_slide (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public bool save_document (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void select_font (Gtk.Widget? sender);
++		public void set_slide (int index);
++		[CCode (instance_pos = -1)]
++		public void show_color_dialog (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void undo_handler (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void zoom_in (Gtk.Widget sender);
++		[CCode (instance_pos = -1)]
++		public void zoom_out (Gtk.Widget sender);
++		public bool slides_shown { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public abstract class Element : GLib.Object, Ease.UndoSource {
++		public Element ();
++		public abstract Ease.Actor actor (Ease.ActorContext c);
++		public abstract void cairo_render (Cairo.Context context) throws GLib.Error;
++		public Element.from_json (Json.Object obj);
++		public virtual Clutter.Color? get_color ();
++		public abstract Gtk.Widget inspector_widget ();
++		public virtual bool set_color (Clutter.Color c);
++		public virtual void to_html (ref string html, Ease.HTMLExporter exporter, double amount);
++		public virtual Json.Object to_json ();
++		public virtual GLib.List<Gtk.ToolItem>? tool_items ();
++		public Element.with_owner (Ease.Slide owner);
++		protected abstract void write_html (ref string html, Ease.HTMLExporter exporter);
++		public Ease.Document document { get; }
++		public string element_type { get; set; }
++		public bool has_been_edited { get; set; }
++		public float height { get; set; }
++		public string identifier { get; set; }
++		public Ease.Slide parent { get; set; }
++		public float width { get; set; }
++		public float x { get; set; }
++		public float y { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class ElementAddUndoAction : Ease.UndoItem {
++		public ElementAddUndoAction (Ease.Element e);
++		public override Ease.UndoItem apply ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class ElementRemoveUndoAction : Ease.UndoItem {
++		public ElementRemoveUndoAction (Ease.Element e);
++		public override Ease.UndoItem apply ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Gradient : GLib.Object {
++		public Gradient (Ease.Color start_color, Ease.Color end_color);
++		public void cairo_render_rect (Cairo.Context cr, int width, int height);
++		public Ease.Gradient copy ();
++		public void flip ();
++		public Gradient.from_string (string str);
++		public Gradient.mirrored (Ease.Color start_color, Ease.Color end_color);
++		public Gradient.radial (Ease.Color start_color, Ease.Color end_color);
++		public string to_string ();
++		public double angle { get; set; }
++		public static Ease.Gradient default_background { owned get; }
++		public Ease.Color end { get; set; }
++		public Ease.GradientType mode { get; set; }
++		public Ease.Color start { get; set; }
++		public signal void changed (Ease.Gradient self);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class HTMLExporter : GLib.Object {
++		public const string HEADER;
++		public HTMLExporter ();
++		public void add_progress (double amount);
++		public void copy_file (string end_path, string base_path);
++		public void finish ();
++		public bool request_path (Gtk.Window win);
++		public string basename { owned get; }
++		public string path { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Handle : Clutter.CairoTexture {
++		public Handle (Ease.HandlePosition pos);
++		public void drag (float change_x, float change_y, Ease.Actor target, bool prop);
++		public void drag_from_center (float change_x, float change_y, Ease.Actor target, bool prop);
++		public void flip (bool f);
++		public void reposition (Clutter.Actor selection);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class ImageActor : Ease.Actor {
++		public ImageActor (Ease.ImageElement e, Ease.ActorContext c);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class ImageElement : Ease.MediaElement {
++		public ImageElement ();
++		public override Ease.Actor actor (Ease.ActorContext c);
++		public override void cairo_render (Cairo.Context context) throws GLib.Error;
++		public ImageElement.from_json (Json.Object obj);
++		public override Gtk.Widget inspector_widget ();
++		public override void write_html (ref string html, Ease.HTMLExporter exporter);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Inspector : Gtk.Notebook, Ease.UndoSource {
++		public Inspector ();
++		public Ease.Slide slide { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public abstract class InspectorPane : Gtk.VBox, Ease.UndoSource {
++		public InspectorPane ();
++		protected virtual void slide_updated ();
++		public Ease.Slide slide { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class InspectorSlidePane : Ease.InspectorPane {
++		public InspectorSlidePane ();
++		[CCode (instance_pos = -1)]
++		public void on_background_changed (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void on_color_set (Gtk.ColorButton? sender);
++		[CCode (instance_pos = -1)]
++		public void on_file_set (Gtk.FileChooserButton? sender);
++		[CCode (instance_pos = -1)]
++		public void on_gradient_type_changed (Gtk.ComboBox? sender);
++		[CCode (instance_pos = -1)]
++		public void on_reverse_gradient (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void on_set_angle (Gtk.Widget? sender);
++		protected override void slide_updated ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class InspectorTransitionPane : Ease.InspectorPane {
++		public Gtk.ComboBox effect;
++		public Gtk.ComboBox variant;
++		public InspectorTransitionPane ();
++		protected override void slide_updated ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class InspectorWindow : Gtk.Window {
++		public InspectorWindow ();
++		public static void toggle ();
++		public static Ease.Slide slide { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Main : GLib.Object {
++		public static bool presentation_windowed;
++		public Main ();
++		public static void add_window (Ease.EditorWindow win);
++		public static int main (string[] args);
++		public static void open_file (string path);
++		public static void remove_welcome ();
++		public static void remove_window (Ease.EditorWindow win);
++		public static void show_welcome ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public abstract class MediaElement : Ease.Element {
++		public MediaElement ();
++		public MediaElement.from_json (Json.Object obj);
++		public override Json.Object to_json ();
++		public string filename { get; set; }
++		public string full_filename { owned get; }
++		public string source_filename { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class OpenDialog : GLib.Object {
++		public OpenDialog ();
++		public static void run ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Player : GLib.Object {
++		public Player (Ease.Document doc);
++		public void advance ();
++		public void on_button_press (Clutter.ButtonEvent event);
++		public void on_button_release (Clutter.ButtonEvent event);
++		public void on_key_press (Clutter.KeyEvent event);
++		public void on_motion (Clutter.MotionEvent event);
++		public Ease.Document document { get; set; }
++		public int slide_index { get; set; }
++		public Clutter.Stage stage { get; set; }
++		public signal void complete ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class ScrollableEmbed : Gtk.HBox {
++		public ScrollableEmbed (bool horizontal, bool has_frame);
++		public Clutter.Stage get_stage ();
++		public void key_focus ();
++		public Clutter.Group contents { get; set; }
++		public bool has_horizontal { get; set; }
++		public float height { get; }
++		public float width { get; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class SelectionRectangle : Clutter.Group {
++		public SelectionRectangle ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Slide : GLib.Object, Ease.UndoSource {
++		public Gee.ArrayList<Ease.Element> elements;
++		public const string IMAGE_TYPE;
++		public Slide ();
++		public void add (Ease.Element e);
++		public void add_element (int index, Ease.Element e);
++		public void cairo_render (Cairo.Context context) throws GLib.Error;
++		public void cairo_render_background (Cairo.Context cr, int w, int h) throws GLib.Error;
++		public void cairo_render_sized (Cairo.Context context, int w, int h) throws GLib.Error;
++		public Ease.Element element_at (int i);
++		public int index_of (Ease.Element e);
++		public void remove_at (int index);
++		public void remove_element (Ease.Element e);
++		public void to_html (ref string html, Ease.HTMLExporter exporter, double amount, int index);
++		public Slide.with_owner (Ease.Document owner);
++		public double advance_delay { get; set; }
++		public bool automatically_advance { get; set; }
++		public string background_abs { owned get; }
++		public Ease.Color background_color { get; set; }
++		public Ease.Gradient background_gradient { get; set; }
++		public string background_image { get; set; }
++		public string background_image_source { get; set; }
++		public Ease.BackgroundType background_type { get; set; }
++		public int count { get; }
++		public Ease.Slide? next { owned get; }
++		public Ease.Document parent { get; set; }
++		public Ease.Slide? previous { owned get; }
++		public Ease.Theme theme { get; set; }
++		public string title { get; set; }
++		public Ease.Transition transition { get; set; }
++		public uint transition_msecs { get; set; }
++		public double transition_time { get; set; }
++		public Ease.TransitionVariant variant { get; set; }
++		public signal void background_changed (Ease.Slide self);
++		public signal void changed (Ease.Slide self);
++		public signal void element_added (Ease.Slide self, Ease.Element element, int index);
++		public signal void element_removed (Ease.Slide self, Ease.Element element, int index);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class SlideActor : Clutter.Group {
++		public Clutter.CairoTexture background;
++		public Ease.ClutterIterableGroup contents;
++		public Ease.ActorContext context;
++		public const int EASE_DROP;
++		public const int EASE_PIVOT;
++		public const int EASE_SLIDE;
++		public const float FLIP_DEPTH;
++		public const float PANEL_SCALE;
++		public SlideActor ();
++		public SlideActor.blank (Ease.Document document, Clutter.Color color);
++		public SlideActor.from_slide (Ease.Document document, Ease.Slide s, bool clip, Ease.ActorContext ctx);
++		public void on_element_added (Ease.Slide slide, Ease.Element element, int index);
++		public void on_element_removed (Ease.Slide slide, Ease.Element element, int index);
++		public void relayout ();
++		public void reset (Clutter.Group container);
++		public void stack (Clutter.Actor container);
++		public void transition (Ease.SlideActor new_slide, Clutter.Group container);
++		public void unstack (Ease.SlideActor other, Clutter.Actor container);
++		public SlideActor.with_dimensions (float w, float h, Ease.Slide s, bool clip, Ease.ActorContext ctx);
++		public Clutter.Timeline animation_time { get; set; }
++		public Ease.Slide slide { get; set; }
++		public signal void ease_actor_added (Ease.Actor actor);
++		public signal void ease_actor_removed (Ease.Actor actor);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class SlideAddUndoAction : Ease.UndoItem {
++		public SlideAddUndoAction (Ease.Slide s);
++		public override Ease.UndoItem apply ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class SlideButtonPanel : Gtk.ScrolledWindow {
++		public SlideButtonPanel (Ease.Document d, Ease.EditorWindow win);
++		public void select_slide (Ease.Slide slide);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class SlideRemoveUndoAction : Ease.UndoItem {
++		public SlideRemoveUndoAction (Ease.Slide s);
++		public override Ease.UndoItem apply ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Temp : GLib.Object {
++		public const string IMG_DIR;
++		public const string TEMP_DIR;
++		public const string THEME_DIR;
++		public const string UI_DIR;
++		public Temp ();
++		public static void clean ();
++		public static bool exists (int dir, string tmp);
++		public static string request () throws GLib.Error;
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class TextActor : Ease.Actor {
++		public TextActor (Ease.TextElement e, Ease.ActorContext c);
++		public override void edit (Ease.EditorEmbed sender);
++		public override void end_edit (Ease.EditorEmbed sender);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class TextElement : Ease.Element {
++		public TextElement ();
++		public override Ease.Actor actor (Ease.ActorContext c);
++		public override void cairo_render (Cairo.Context context) throws GLib.Error;
++		public TextElement.from_json (Json.Object obj);
++		public override Clutter.Color? get_color ();
++		public override Gtk.Widget inspector_widget ();
++		[CCode (instance_pos = -1)]
++		public void on_inspector_alignment (Gtk.Widget sender);
++		public override bool set_color (Clutter.Color c);
++		public void text_align_from_string (string str);
++		public string text_align_to_string ();
++		public void text_size_from_string (string str);
++		public string text_size_to_string ();
++		public void text_style_from_string (string str);
++		public string text_style_to_string ();
++		public void text_variant_from_string (string str);
++		public string text_variant_to_string ();
++		public void text_weight_from_string (string str);
++		public string text_weight_to_string ();
++		public override Json.Object to_json ();
++		protected override void write_html (ref string html, Ease.HTMLExporter exporter);
++		public Ease.Color color { get; set; }
++		public Pango.FontDescription font_description { owned get; set; }
++		public string text { get; set; }
++		public Pango.Alignment text_align { get; set; }
++		public string text_font { get; set; }
++		public int text_size { get; set; }
++		public Pango.Style text_style { get; set; }
++		public Pango.Variant text_variant { get; set; }
++		public int text_weight { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class Theme : GLib.Object {
++		public string title;
++		public const string BACKGROUND_COLOR;
++		public const string BACKGROUND_GRADIENT;
++		public const string BACKGROUND_IMAGE;
++		public const string CONTENT;
++		public const string CONTENT_DUAL;
++		public const string CONTENT_DUAL_HEADER;
++		public const string CONTENT_HEADER;
++		public const string CONTENT_MEDIA;
++		public const string CUSTOM_MEDIA;
++		public const string ELEMENT_TYPE;
++		public const string E_IDENTIFIER;
++		public const string GRAD_LINEAR;
++		public const string GRAD_LINEAR_MIRRORED;
++		public const string GRAD_RADIAL;
++		public const string HAS_BEEN_EDITED;
++		public const string HEIGHT;
++		public const string JSON_PATH;
++		public const string[] MASTER_SLIDES;
++		public const string MEDIA;
++		public const string MEDIA_FILENAME;
++		public const string MEDIA_HEADER;
++		public const string MEDIA_SOURCE_FILENAME;
++		public const string PAD_BOTTOM;
++		public const string PAD_LEFT;
++		public const string PAD_RIGHT;
++		public const string PAD_TOP;
++		public const string S_IDENTIFIER;
++		public const string TEXT_ALIGN;
++		public const string TEXT_COLOR;
++		public const string TEXT_FONT;
++		public const string TEXT_SIZE;
++		public const string TEXT_STYLE;
++		public const string TEXT_TEXT;
++		public const string TEXT_VARIANT;
++		public const string TEXT_WEIGHT;
++		public const string TITLE;
++		public const string WIDTH;
++		public const string X;
++		public const string Y;
++		public Theme (string dir_path);
++		public void copy_media (string target) throws GLib.Error;
++		public Ease.Theme copy_to_path (string copy_to) throws GLib.Error;
++		public Ease.TextElement create_custom_text ();
++		public Ease.Slide? create_slide (string master, int width, int height);
++		public Theme.json (string json_path);
++		public static string master_description (string master);
++		public static string master_from_description (string desc);
++		public static string master_mnemonic_description (string master);
++		public string path { get; set; }
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class UndoAction : Ease.UndoItem {
++		public UndoAction (GLib.Object obj, string prop);
++		public void add (GLib.Object obj, string prop);
++		public override Ease.UndoItem apply ();
++		public void combine (Ease.UndoAction action);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class UndoController : GLib.Object {
++		public UndoController ();
++		public void add_action (Ease.UndoItem action);
++		public bool can_redo ();
++		public bool can_undo ();
++		public void clear_redo ();
++		public void redo ();
++		public void undo ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public abstract class UndoItem : GLib.Object {
++		public UndoItem ();
++		public abstract Ease.UndoItem apply ();
++		public signal void applied (Ease.UndoAction sender);
++		public signal void pre_apply (Ease.UndoAction sender);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class WelcomeActor : Clutter.Group {
++		public WelcomeActor (Ease.Theme t);
++		public void fade ();
++		public void set_actor_size (float w, float h);
++		public void set_slide_size (int w, int h);
++		public void unfade ();
++		public Ease.Theme theme { get; set; }
++		public signal void double_click (Ease.WelcomeActor sender);
++		public signal void selected (Ease.WelcomeActor sender);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class WelcomeWindow : Gtk.Window {
++		public WelcomeWindow ();
++		[CCode (instance_pos = -1)]
++		public void create_new_document (Gtk.Widget? sender);
++		[CCode (instance_pos = -1)]
++		public void on_open_pres_button_clicked (Gtk.Widget sender);
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public class ZoomSlider : Gtk.Alignment {
++		public ZoomSlider (Gtk.Adjustment adjustment, int[] button_values);
++		protected virtual void change_zoom (double value);
++		public double get_value ();
++		public void zoom_in ();
++		public void zoom_out ();
++		public bool buttons_shown { get; set; }
++		public int digits { get; set; }
++		public double sliderpos { get; set; }
++		public Gtk.PositionType value_pos { get; set; }
++		public signal void value_changed ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public interface ClutterIterableContainer : Clutter.Container {
++		[CCode (ref_function = "ease_clutter_iterable_container_iterator_ref", unref_function = "ease_clutter_iterable_container_iterator_unref", cheader_filename = "libease-core.h")]
++		public class Iterator {
++			public Iterator (Ease.ClutterIterableContainer self);
++			public Clutter.Actor @get ();
++			public bool next ();
++		}
++		public Ease.ClutterIterableContainer.Iterator iterator ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public interface UndoSource : GLib.Object {
++		protected void forward (Ease.UndoItem action);
++		protected void listen (Ease.UndoSource source);
++		protected void silence (Ease.UndoSource source);
++		public signal void undo (Ease.UndoItem action);
++	}
++	[CCode (cprefix = "EASE_ACTOR_CONTEXT_", cheader_filename = "libease-core.h")]
++	public enum ActorContext {
++		PRESENTATION,
++		EDITOR,
++		INSPECTOR
++	}
++	[CCode (cprefix = "EASE_BACKGROUND_TYPE_", cheader_filename = "libease-core.h")]
++	public enum BackgroundType {
++		COLOR,
++		GRADIENT,
++		IMAGE;
++		public string to_string ();
++		public static Ease.BackgroundType from_string (string str);
++		public string description ();
++		public const Ease.BackgroundType[] TYPES;
++	}
++	[CCode (cprefix = "EASE_GRADIENT_TYPE_", cheader_filename = "libease-core.h")]
++	public enum GradientType {
++		LINEAR,
++		LINEAR_MIRRORED,
++		RADIAL;
++		public string to_string ();
++		public static Ease.GradientType from_string (string str);
++		public string description ();
++		public static Gtk.ListStore list_store ();
++	}
++	[CCode (cprefix = "EASE_HANDLE_POSITION_", cheader_filename = "libease-core.h")]
++	public enum HandlePosition {
++		TOP_LEFT,
++		TOP_RIGHT,
++		TOP,
++		LEFT,
++		RIGHT,
++		BOTTOM_LEFT,
++		BOTTOM_RIGHT,
++		BOTTOM
++	}
++	[CCode (cprefix = "EASE_KEY_", cheader_filename = "libease-core.h")]
++	public enum Key {
++		UP,
++		DOWN,
++		LEFT,
++		RIGHT,
++		BACKSPACE,
++		DELETE
++	}
++	[CCode (cprefix = "EASE_TRANSITION_", cheader_filename = "libease-core.h")]
++	public enum Transition {
++		NONE,
++		FADE,
++		SLIDE,
++		DROP,
++		PIVOT,
++		FLIP,
++		REVOLVING_DOOR,
++		REVEAL,
++		FALL,
++		SLATS,
++		OPEN_DOOR,
++		EXPLODE,
++		ASSEMBLE,
++		ZOOM,
++		PANEL,
++		SPIN_CONTENTS,
++		SPRING_CONTENTS,
++		SWING_CONTENTS,
++		SLIDE_CONTENTS,
++		ZOOM_CONTENTS;
++		public static Gtk.ListStore model ();
++		public Gtk.ListStore variant_model ();
++		public static Ease.Transition from_string (string str);
++		public Ease.TransitionVariant[] variants ();
++		public string get_name ();
++	}
++	[CCode (cprefix = "EASE_TRANSITION_VARIANT_", cheader_filename = "libease-core.h")]
++	public enum TransitionVariant {
++		LEFT,
++		RIGHT,
++		UP,
++		DOWN,
++		BOTTOM,
++		TOP,
++		CENTER,
++		TOP_LEFT,
++		TOP_RIGHT,
++		BOTTOM_LEFT,
++		BOTTOM_RIGHT,
++		TOP_TO_BOTTOM,
++		BOTTOM_TO_TOP,
++		LEFT_TO_RIGHT,
++		RIGHT_TO_LEFT,
++		IN,
++		OUT;
++		public static Ease.TransitionVariant from_string (string str);
++		public string get_name ();
++	}
++	[CCode (cheader_filename = "libease-core.h")]
++	public delegate void RecursiveDirAction (string path, string full_path);
++	[CCode (cheader_filename = "libease-core.h")]
++	public static string? data_path (string path);
++	[CCode (cheader_filename = "libease-core.h")]
++	public static double dmax (double a, double b);
++	[CCode (cheader_filename = "libease-core.h")]
++	public static double dmin (double a, double b);
++	[CCode (cheader_filename = "libease-core.h")]
++	public static void error_dialog (string title, string message);
++	[CCode (cheader_filename = "libease-core.h")]
++	public static void recursive_copy (string from_dir, string to_dir) throws GLib.Error;
++	[CCode (cheader_filename = "libease-core.h")]
++	public static void recursive_delete (string path) throws GLib.Error;
++	[CCode (cheader_filename = "libease-core.h")]
++	public static void recursive_directory (string directory, Ease.RecursiveDirAction? directory_action, Ease.RecursiveDirAction? file_action) throws GLib.Error;
++	[CCode (cheader_filename = "libease-core.h")]
++	public static void recursive_directory_after (string directory, Ease.RecursiveDirAction? directory_action, Ease.RecursiveDirAction? file_action) throws GLib.Error;
++	[CCode (cheader_filename = "libease-core.h")]
++	public static int roundd (double num);
++	[CCode (cheader_filename = "libease-core.h")]
++	public static Clutter.Color theme_clutter_color (string color);
++	[CCode (cheader_filename = "libease-core.h")]
++	public static Gdk.Color? theme_color (string color);
++	[CCode (cheader_filename = "libease-core.h")]
++	public static Gtk.Window widget_window (Gtk.Widget widg);
++}
++[CCode (cheader_filename = "libease-core.h")]
++public static string? save_dialog (string title, Gtk.Window? modal);
diff --cc ease-core/ease-image-element.vala
index 0000000,edacf44..edacf44
mode 000000,100644..100644
--- a/ease-core/ease-image-element.vala
+++ b/ease-core/ease-image-element.vala
diff --cc ease-core/ease-inspector-element-pane.vala
index 0000000,2e3f7dc..2e3f7dc
mode 000000,100644..100644
--- a/ease-core/ease-inspector-element-pane.vala
+++ b/ease-core/ease-inspector-element-pane.vala
diff --cc ease-core/ease-main.vala
index 470b1f9,0000000..470b1f9
mode 100644,000000..100644
--- a/ease-core/ease-main.vala
+++ b/ease-core/ease-main.vala



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