aboutsummaryrefslogtreecommitdiff
path: root/bindings
diff options
context:
space:
mode:
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2011-02-03 16:22:06 +0100
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2011-02-03 16:22:06 +0100
commit7f49d7c2602ccb2ef01c64067e2abcc6b5715200 (patch)
tree48fe2d080655bb443e07795c26e7791eed034a72 /bindings
parent19c543fd42571ef3e011db21a6d93e93d7da4483 (diff)
downloadlibayatana-appindicator-7f49d7c2602ccb2ef01c64067e2abcc6b5715200.tar.gz
libayatana-appindicator-7f49d7c2602ccb2ef01c64067e2abcc6b5715200.tar.bz2
libayatana-appindicator-7f49d7c2602ccb2ef01c64067e2abcc6b5715200.zip
Adding vala bindings and example
Adding proper support for vala bindings, fixing the include path Now they are built in the bindings subfolder and they include a *.deps file. and I've also added a small example.
Diffstat (limited to 'bindings')
-rw-r--r--bindings/Makefile.am7
-rw-r--r--bindings/vala/Makefile.am32
-rw-r--r--bindings/vala/examples/Makefile.am14
-rw-r--r--bindings/vala/examples/indicator-example.vala45
4 files changed, 96 insertions, 2 deletions
diff --git a/bindings/Makefile.am b/bindings/Makefile.am
index f74dec5..8e621e4 100644
--- a/bindings/Makefile.am
+++ b/bindings/Makefile.am
@@ -1,7 +1,10 @@
if USE_GTK3
-SUBDIRS = mono
+SUBDIRS = \
+ mono \
+ vala
else
SUBDIRS = \
mono \
- python
+ python \
+ vala
endif
diff --git a/bindings/vala/Makefile.am b/bindings/vala/Makefile.am
new file mode 100644
index 0000000..c4627f5
--- /dev/null
+++ b/bindings/vala/Makefile.am
@@ -0,0 +1,32 @@
+SUBDIRS = . examples
+
+
+#########################
+# VAPI Files
+#########################
+
+if HAVE_INTROSPECTION
+
+if USE_GTK3
+GTKVAPI = gtk+-3.0
+else
+GTKVAPI = gtk+-2.0
+endif
+
+vapidir = $(datadir)/vala/vapi
+vapiprefix = appindicator$(VER)-0.1
+vapi_DATA = $(vapiprefix).vapi $(vapiprefix).deps
+DEPS = $(GTKVAPI)
+
+$(vapiprefix).deps:
+ echo $(DEPS) > $@
+
+$(vapiprefix).vapi: $(top_builddir)/src/AppIndicator$(VER)-0.1.gir $(vapiprefix).deps
+ $(VALA_API_GEN) --library=$(vapiprefix) \
+ --pkg $(GTKVAPI) \
+ $<
+
+
+CLEANFILES = $(vapi_DATA)
+
+endif
diff --git a/bindings/vala/examples/Makefile.am b/bindings/vala/examples/Makefile.am
new file mode 100644
index 0000000..6c3bd3c
--- /dev/null
+++ b/bindings/vala/examples/Makefile.am
@@ -0,0 +1,14 @@
+
+TESTS = indicator-example
+VALAFILES = indicator-example.vala
+CLEANFILES = $(TESTS) *.c
+EXTRA_DIST = $(VALAFILES)
+
+VALAFLAGS = --pkg appindicator-0.1 --vapidir=$(top_builddir)/bindings/vala --save-temps
+
+if HAVE_VALAC
+$(TESTS): $(VALAFILES) Makefile.am
+ $(VALAC) $(VALAFLAGS) $(srcdir)/$(VALAFILES)
+
+all: $(TESTS)
+endif
diff --git a/bindings/vala/examples/indicator-example.vala b/bindings/vala/examples/indicator-example.vala
new file mode 100644
index 0000000..908913a
--- /dev/null
+++ b/bindings/vala/examples/indicator-example.vala
@@ -0,0 +1,45 @@
+using Gtk;
+using AppIndicator;
+
+public class IndicatorExample {
+ public static int main(string[] args) {
+ Gtk.init(ref args);
+
+ var win = new Window();
+ win.title = "Indicator Test";
+ win.resize(200, 200);
+ win.destroy.connect(Gtk.main_quit);
+
+ var label = new Label("Hello, world!");
+ win.add(label);
+
+ var indicator = new Indicator(win.title, "indicator-messages",
+ IndicatorCategory.APPLICATION_STATUS);
+
+ indicator.set_status(IndicatorStatus.ACTIVE);
+ indicator.set_attention_icon("indicator-messages-new");
+
+ var menu = new Menu();
+ var item = new MenuItem.with_label("Foo");
+ item.activate.connect(() => {
+ indicator.set_status(IndicatorStatus.ATTENTION);
+ });
+ item.show();
+ menu.append(item);
+
+
+ item = new MenuItem.with_label("Bar");
+ item.show();
+ item.activate.connect(() => {
+ indicator.set_status(IndicatorStatus.ATTENTION);
+ });
+ menu.append(item);
+
+ indicator.set_menu(menu);
+
+ win.show_all();
+
+ Gtk.main();
+ return 0;
+ }
+}