From 88a109e2f9513a4560419f0892971967636224b1 Mon Sep 17 00:00:00 2001 From: Cody Russell Date: Fri, 11 Dec 2009 10:31:49 -0600 Subject: Move to bindings/mono --- bindings/mono/Makefile.am | 39 ++++++++++++++++++++++++++ bindings/mono/app-indicator.sources.xml | 12 ++++++++ bindings/mono/appindicator-sharp.dll.config.in | 7 +++++ bindings/mono/appindicator-sharp.pc.in | 12 ++++++++ bindings/mono/libappindicator-api.metadata | 15 ++++++++++ 5 files changed, 85 insertions(+) create mode 100644 bindings/mono/Makefile.am create mode 100644 bindings/mono/app-indicator.sources.xml create mode 100644 bindings/mono/appindicator-sharp.dll.config.in create mode 100644 bindings/mono/appindicator-sharp.pc.in create mode 100644 bindings/mono/libappindicator-api.metadata (limited to 'bindings/mono') diff --git a/bindings/mono/Makefile.am b/bindings/mono/Makefile.am new file mode 100644 index 0000000..23e8214 --- /dev/null +++ b/bindings/mono/Makefile.am @@ -0,0 +1,39 @@ +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = appindicator-sharp.pc + +API = libappindicator-api.xml +RAW_API = libappindicator-api.raw +METADATA = libappindicator-api.metadata +ASSEMBLY_NAME = appindicator-sharp +ASSEMBLY = appindicator-sharp.dll +TARGET = $(ASSEMBLY) $(ASSEMBLY).config +assemblydir = $(libdir)/appindicator-sharp +assembly_DATA = $(TARGET) +CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb generated-stamp generated/*.cs $(API) $(RAW_API) +DISTCLEANFILES = $(ASSEMBLY).config +EXTRA_DIST = $(RAW_API) $(METADATA) appindicator-sharp.pc.in appindicator-sharp.dll.config.in + +references = $(GTK_SHARP_LIBS) + +$(RAW_API): app-indicator.sources.xml + $(GAPI_PARSER) app-indicator.sources.xml + +$(API): $(METADATA) $(RAW_API) + cp $(srcdir)/$(RAW_API) $(API) + chmod u+w $(API) + @if test -n '$(METADATA)'; then \ + echo "$(GAPI_FIXUP) --api=$(API) --metadata=$(srcdir)/$(METADATA)"; \ + $(GAPI_FIXUP) --api=$(API) --metadata=$(srcdir)/$(METADATA); \ + fi + +api_includes = $(GTK_SHARP_FLAGS) + +generated-stamp: $(API) + rm -f generated/* && \ + $(GAPI_CODEGEN) --generate $(API) $(api_includes) \ + --outdir=generated --assembly-name=$(ASSEMBLY_NAME) \ + && touch generated-stamp + +$(ASSEMBLY): generated-stamp + @rm -f $(ASSEMBLY).mdb + $(CSC) $(CSFLAGS) -nowarn:0169,0612,0618 -unsafe -out:$(ASSEMBLY) -target:library $(references) $(GENERATED_SOURCES) \ No newline at end of file diff --git a/bindings/mono/app-indicator.sources.xml b/bindings/mono/app-indicator.sources.xml new file mode 100644 index 0000000..8ee8758 --- /dev/null +++ b/bindings/mono/app-indicator.sources.xml @@ -0,0 +1,12 @@ + + + + + + app-indicator-enum-types.h.in + app-indicator-enum-types.c.in + + + + + diff --git a/bindings/mono/appindicator-sharp.dll.config.in b/bindings/mono/appindicator-sharp.dll.config.in new file mode 100644 index 0000000..c8caa80 --- /dev/null +++ b/bindings/mono/appindicator-sharp.dll.config.in @@ -0,0 +1,7 @@ + + + + + + + diff --git a/bindings/mono/appindicator-sharp.pc.in b/bindings/mono/appindicator-sharp.pc.in new file mode 100644 index 0000000..be5595a --- /dev/null +++ b/bindings/mono/appindicator-sharp.pc.in @@ -0,0 +1,12 @@ +prefix=${pcfiledir}/../.. +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +assemblies_dir=${libdir}/appindicator-sharp + +Name: appindicator +Description: application indicators for .NET +Version: @VERSION@ +Libraries: ${assemblies_dir}/appindicator-sharp.dll ${assemblies_dir}/appindicator-sharp.dll.config +Requires: gtk-sharp-2.0 +Cflags: +Libs: -r:${assemblies_dir}/appindicator-sharp.dll diff --git a/bindings/mono/libappindicator-api.metadata b/bindings/mono/libappindicator-api.metadata new file mode 100644 index 0000000..36c69e1 --- /dev/null +++ b/bindings/mono/libappindicator-api.metadata @@ -0,0 +1,15 @@ + + + ApplicationIndicator + NewAttentionIcon + NewStatus + ConnectionChanged + NewIcon + ID + Category + Status + IconName + AttentionIconName + Menu + Connected + -- cgit v1.2.3 From 7783eb689c166151cec3ab3219d02587a3b0463f Mon Sep 17 00:00:00 2001 From: Cody Russell Date: Fri, 11 Dec 2009 11:00:29 -0600 Subject: Move appindicator-sharp.pc to appindicator-sharp-0.1.pc --- bindings/mono/Makefile.am | 6 +++--- bindings/mono/appindicator-sharp-0.1.pc.in | 12 ++++++++++++ bindings/mono/appindicator-sharp.pc.in | 12 ------------ 3 files changed, 15 insertions(+), 15 deletions(-) create mode 100644 bindings/mono/appindicator-sharp-0.1.pc.in delete mode 100644 bindings/mono/appindicator-sharp.pc.in (limited to 'bindings/mono') diff --git a/bindings/mono/Makefile.am b/bindings/mono/Makefile.am index 23e8214..7cabf18 100644 --- a/bindings/mono/Makefile.am +++ b/bindings/mono/Makefile.am @@ -1,5 +1,5 @@ pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = appindicator-sharp.pc +pkgconfig_DATA = appindicator-sharp-0.1.pc API = libappindicator-api.xml RAW_API = libappindicator-api.raw @@ -11,7 +11,7 @@ assemblydir = $(libdir)/appindicator-sharp assembly_DATA = $(TARGET) CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb generated-stamp generated/*.cs $(API) $(RAW_API) DISTCLEANFILES = $(ASSEMBLY).config -EXTRA_DIST = $(RAW_API) $(METADATA) appindicator-sharp.pc.in appindicator-sharp.dll.config.in +EXTRA_DIST = $(RAW_API) $(METADATA) appindicator-sharp-0.1.pc.in appindicator-sharp.dll.config.in references = $(GTK_SHARP_LIBS) @@ -36,4 +36,4 @@ generated-stamp: $(API) $(ASSEMBLY): generated-stamp @rm -f $(ASSEMBLY).mdb - $(CSC) $(CSFLAGS) -nowarn:0169,0612,0618 -unsafe -out:$(ASSEMBLY) -target:library $(references) $(GENERATED_SOURCES) \ No newline at end of file + $(CSC) $(CSFLAGS) -nowarn:0169,0612,0618 -unsafe -out:$(ASSEMBLY) -target:library $(references) $(GENERATED_SOURCES) diff --git a/bindings/mono/appindicator-sharp-0.1.pc.in b/bindings/mono/appindicator-sharp-0.1.pc.in new file mode 100644 index 0000000..16872ae --- /dev/null +++ b/bindings/mono/appindicator-sharp-0.1.pc.in @@ -0,0 +1,12 @@ +prefix=${pcfiledir}/../.. +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +assemblies_dir=${libdir}/appindicator-sharp-0.1 + +Name: appindicator-sharp +Description: application indicators for .NET +Version: @VERSION@ +Libraries: ${assemblies_dir}/appindicator-sharp.dll ${assemblies_dir}/appindicator-sharp.dll.config +Requires: gtk-sharp-2.0 +Cflags: +Libs: -r:${assemblies_dir}/appindicator-sharp.dll diff --git a/bindings/mono/appindicator-sharp.pc.in b/bindings/mono/appindicator-sharp.pc.in deleted file mode 100644 index be5595a..0000000 --- a/bindings/mono/appindicator-sharp.pc.in +++ /dev/null @@ -1,12 +0,0 @@ -prefix=${pcfiledir}/../.. -exec_prefix=${prefix} -libdir=${exec_prefix}/lib -assemblies_dir=${libdir}/appindicator-sharp - -Name: appindicator -Description: application indicators for .NET -Version: @VERSION@ -Libraries: ${assemblies_dir}/appindicator-sharp.dll ${assemblies_dir}/appindicator-sharp.dll.config -Requires: gtk-sharp-2.0 -Cflags: -Libs: -r:${assemblies_dir}/appindicator-sharp.dll -- cgit v1.2.3 From ed4810839b0bd16af47201bae84524088b9ef178 Mon Sep 17 00:00:00 2001 From: Cody Russell Date: Fri, 11 Dec 2009 11:24:30 -0600 Subject: Fix distcheck --- bindings/mono/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bindings/mono') diff --git a/bindings/mono/Makefile.am b/bindings/mono/Makefile.am index 7cabf18..a8444ea 100644 --- a/bindings/mono/Makefile.am +++ b/bindings/mono/Makefile.am @@ -11,7 +11,7 @@ assemblydir = $(libdir)/appindicator-sharp assembly_DATA = $(TARGET) CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb generated-stamp generated/*.cs $(API) $(RAW_API) DISTCLEANFILES = $(ASSEMBLY).config -EXTRA_DIST = $(RAW_API) $(METADATA) appindicator-sharp-0.1.pc.in appindicator-sharp.dll.config.in +EXTRA_DIST = $(RAW_API) $(METADATA) appindicator-sharp-0.1.pc.in appindicator-sharp.dll.config.in app-indicator.sources.xml references = $(GTK_SHARP_LIBS) -- cgit v1.2.3 From 59526b689303cde25721d0a1fdcafdb371fdddba Mon Sep 17 00:00:00 2001 From: Cody Russell Date: Sat, 12 Dec 2009 12:20:52 -0600 Subject: Initial stab at setting up test/example fu --- bindings/mono/Makefile.am | 14 ++++- bindings/mono/TestIndicator.cs | 82 +++++++++++++++++++++++++++++ bindings/mono/examples/IndicatorExample.cs | 36 +++++++++++++ bindings/mono/examples/Makefile.am | 12 +++++ bindings/mono/examples/indicator-example.in | 2 + 5 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 bindings/mono/TestIndicator.cs create mode 100644 bindings/mono/examples/IndicatorExample.cs create mode 100644 bindings/mono/examples/Makefile.am create mode 100755 bindings/mono/examples/indicator-example.in (limited to 'bindings/mono') diff --git a/bindings/mono/Makefile.am b/bindings/mono/Makefile.am index a8444ea..ef03f7e 100644 --- a/bindings/mono/Makefile.am +++ b/bindings/mono/Makefile.am @@ -1,6 +1,10 @@ +SUBDIRS = . examples + pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = appindicator-sharp-0.1.pc +TEST = AppIndicator.Test.dll + API = libappindicator-api.xml RAW_API = libappindicator-api.raw METADATA = libappindicator-api.metadata @@ -9,11 +13,14 @@ ASSEMBLY = appindicator-sharp.dll TARGET = $(ASSEMBLY) $(ASSEMBLY).config assemblydir = $(libdir)/appindicator-sharp assembly_DATA = $(TARGET) -CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb generated-stamp generated/*.cs $(API) $(RAW_API) +CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb generated-stamp generated/*.cs $(API) $(RAW_API) $(TEST) DISTCLEANFILES = $(ASSEMBLY).config EXTRA_DIST = $(RAW_API) $(METADATA) appindicator-sharp-0.1.pc.in appindicator-sharp.dll.config.in app-indicator.sources.xml +TEST_SOURCES = TestIndicator.cs + references = $(GTK_SHARP_LIBS) +test_references = $(GTK_SHARP_LIBS) $(NUNIT_LIBS) -r:$(ASSEMBLY) $(RAW_API): app-indicator.sources.xml $(GAPI_PARSER) app-indicator.sources.xml @@ -37,3 +44,8 @@ generated-stamp: $(API) $(ASSEMBLY): generated-stamp @rm -f $(ASSEMBLY).mdb $(CSC) $(CSFLAGS) -nowarn:0169,0612,0618 -unsafe -out:$(ASSEMBLY) -target:library $(references) $(GENERATED_SOURCES) + +$(TEST): $(ASSEMBLY) + $(CSC) -out:$(TEST) -target:library $(test_references) $(TEST_SOURCES) + +all: $(TEST) diff --git a/bindings/mono/TestIndicator.cs b/bindings/mono/TestIndicator.cs new file mode 100644 index 0000000..3127342 --- /dev/null +++ b/bindings/mono/TestIndicator.cs @@ -0,0 +1,82 @@ +/* + * Copyright 2009 Canonical Ltd. + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 3, as published + * by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranties of + * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + * + * Authors: + * Cody Russell + */ + +using System; +using GLib; +using Gtk; +using AppIndicator; + +using NUnit.Framework; + +namespace Ayatana.AppIndicator.Test +{ + [TestFixture] + public class IndicatorTest + { + ApplicationIndicator indicator; + + private void Update () + { + while (MainContext.Pending ()) + MainContext.Iteration(true); + } + + [SetUp] + public void Init () + { + Application.Init (); + + Console.WriteLine ("Init()"); + + indicator = new ApplicationIndicator ("my-id", "my-name", Category.ApplicationStatus); + + Console.WriteLine ("Created indicator"); + + Update(); + } + + [Test] + public void TestProperties () + { + Console.WriteLine ("TestProperties()"); + + Assert.AreNotSame (indicator, null); + + Assert.AreEqual (indicator.IconName, "my-name"); + Assert.AreEqual (indicator.ID, "my-id"); + Assert.AreEqual (indicator.Status, Category.ApplicationStatus); + + Console.WriteLine ("End.."); + } + + [Test] + public void TestSetProperties () + { + Console.WriteLine ("TestSetProperties"); + + indicator.Status = Status.Attention; + indicator.AttentionIconName = "my-attention-name"; + + Assert.AreEqual (indicator.Status, Status.Attention); + Assert.AreEqual (indicator.AttentionIconName, "my-attention-name"); + + Console.WriteLine ("End.."); + } + } +} \ No newline at end of file diff --git a/bindings/mono/examples/IndicatorExample.cs b/bindings/mono/examples/IndicatorExample.cs new file mode 100644 index 0000000..0cb72a1 --- /dev/null +++ b/bindings/mono/examples/IndicatorExample.cs @@ -0,0 +1,36 @@ +using Gtk; +using AppIndicator; + +public class IndicatorExample +{ + public static void Main () + { + Application.Init (); + + Window win = new Window ("Test"); + win.Resize (200, 200); + + Label label = new Label (); + label.Text = "Hello, world!"; + + win.Add (label); + + ApplicationIndicator indicator = new ApplicationIndicator ("my-id", + "my-name", + Category.ApplicationStatus); + + indicator.Status = Status.Attention; + + /* + Menu menu = new Menu (); + menu.Append (new MenuItem ("Foo")); + menu.Append (new MenuItem ("Bar")); + + indicator.Menu = menu; + */ + + win.ShowAll (); + + Application.Run (); + } +} \ No newline at end of file diff --git a/bindings/mono/examples/Makefile.am b/bindings/mono/examples/Makefile.am new file mode 100644 index 0000000..cb7f268 --- /dev/null +++ b/bindings/mono/examples/Makefile.am @@ -0,0 +1,12 @@ +ASSEMBLY = IndicatorExample.exe +CSFILES = IndicatorExample.cs +CLEANFILES = $(ASSEMBLY) + +EXTRA_DIST = $(CSFILES) + +references = $(GTK_SHARP_LIBS) -r:$(top_builddir)/bindings/mono/appindicator-sharp.dll + +$(ASSEMBLY): + $(CSC) $(CSFLAGS) -out:$(ASSEMBLY) -target:exe $(references) $(CSFILES) + +all: $(ASSEMBLY) \ No newline at end of file diff --git a/bindings/mono/examples/indicator-example.in b/bindings/mono/examples/indicator-example.in new file mode 100755 index 0000000..3eca155 --- /dev/null +++ b/bindings/mono/examples/indicator-example.in @@ -0,0 +1,2 @@ +#!/bin/sh +MONO_PATH=@top_builddir@/bindings/mono @top_builddir@/bindings/mono/examples/IndicatorExample.exe -- cgit v1.2.3 From 40f3778a064695662c814fb02ba1722501c72e9a Mon Sep 17 00:00:00 2001 From: Cody Russell Date: Sat, 12 Dec 2009 12:27:20 -0600 Subject: Try to add SetMenu() --- bindings/mono/libappindicator-api.metadata | 1 + 1 file changed, 1 insertion(+) (limited to 'bindings/mono') diff --git a/bindings/mono/libappindicator-api.metadata b/bindings/mono/libappindicator-api.metadata index 36c69e1..52a44f2 100644 --- a/bindings/mono/libappindicator-api.metadata +++ b/bindings/mono/libappindicator-api.metadata @@ -12,4 +12,5 @@ AttentionIconName Menu Connected + SetMenu -- cgit v1.2.3 From 3d0245f5d5bd66855d73288a0a9e1d863cb296c9 Mon Sep 17 00:00:00 2001 From: Jason Smith Date: Mon, 14 Dec 2009 10:20:17 -0500 Subject: Make build work right --- bindings/mono/Makefile.am | 2 +- bindings/mono/libappindicator-api.metadata | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'bindings/mono') diff --git a/bindings/mono/Makefile.am b/bindings/mono/Makefile.am index ef03f7e..67da2c1 100644 --- a/bindings/mono/Makefile.am +++ b/bindings/mono/Makefile.am @@ -33,7 +33,7 @@ $(API): $(METADATA) $(RAW_API) $(GAPI_FIXUP) --api=$(API) --metadata=$(srcdir)/$(METADATA); \ fi -api_includes = $(GTK_SHARP_FLAGS) +api_includes = `pkg-config --cflags gtk-sharp-2.0` generated-stamp: $(API) rm -f generated/* && \ diff --git a/bindings/mono/libappindicator-api.metadata b/bindings/mono/libappindicator-api.metadata index 52a44f2..ad0ebc0 100644 --- a/bindings/mono/libappindicator-api.metadata +++ b/bindings/mono/libappindicator-api.metadata @@ -11,6 +11,7 @@ IconName AttentionIconName Menu + GtkMenu* Connected SetMenu -- cgit v1.2.3 From 5e6e5ba6c2ad9b2919aa87da80cbbe8f4655d1c1 Mon Sep 17 00:00:00 2001 From: Jason Smith Date: Mon, 14 Dec 2009 10:32:30 -0500 Subject: Nicer fix --- bindings/mono/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bindings/mono') diff --git a/bindings/mono/Makefile.am b/bindings/mono/Makefile.am index 67da2c1..cfae87a 100644 --- a/bindings/mono/Makefile.am +++ b/bindings/mono/Makefile.am @@ -33,7 +33,7 @@ $(API): $(METADATA) $(RAW_API) $(GAPI_FIXUP) --api=$(API) --metadata=$(srcdir)/$(METADATA); \ fi -api_includes = `pkg-config --cflags gtk-sharp-2.0` +api_includes = $(GTK_SHARP_CFLAGS) generated-stamp: $(API) rm -f generated/* && \ -- cgit v1.2.3