[tasque/transition: 53/213] Refactored INativeApplication interface and implemented NativeApplication



commit 682d7485df4cd713ca5b6e8354230f4c8556a3b9
Author: Antonius Riha <antoniusriha gmail com>
Date:   Mon Jun 4 16:08:58 2012 +0200

    Refactored INativeApplication interface and implemented NativeApplication
    
    INativeApplication interface:
    * Initialize: removed following parameters
    	- locale_dir ... this anticipates a certain i18n technology. Removed in order to make it platform indepenedent
    	- display_name ... this was only there for GNOME platform
    	- process_anme ... this was only there for GNOME platform
    * renamed ExitingEvent to Exiting (better naming)
    * renamed OpenUrl to OpenUrlInBrowser (better naming)
    * reordered file contents alphabetically
    
    NativeApplication class:
    * Implementation: platform independent
    * this class may be added to in the future (currently it is not very useful - other than being a reference implementation of the interface)
    
    Misc:
    * made adjustments to new Interface/abstract class in solution where necessary
    * documented INativeApplication and NativeApplication
    * integrated documentation build in GnomeDebug and GtkLinuxDebug build configurations

 src/libtasque/INativeApplication.cs                |   20 +-
 src/libtasque/NativeApplication.cs                 |   64 ++++
 src/libtasque/docs/libtasque.sources               |    5 +
 .../Tasque.Backends/BackendInitializedHandler.xml  |   19 +
 .../Tasque.Backends/BackendSyncFinishedHandler.xml |   19 +
 .../Tasque.Backends/BackendSyncStartedHandler.xml  |   19 +
 .../docs/sources/Tasque.Backends/IBackend.xml      |  246 +++++++++++++
 src/libtasque/docs/sources/Tasque/ICategory.xml    |   51 +++
 .../docs/sources/Tasque/INativeApplication.xml     |  151 ++++++++
 src/libtasque/docs/sources/Tasque/INote.xml        |   31 ++
 src/libtasque/docs/sources/Tasque/ITask.xml        |  369 ++++++++++++++++++++
 .../docs/sources/Tasque/NativeApplication.xml      |  199 +++++++++++
 src/libtasque/docs/sources/Tasque/TaskParser.xml   |  195 +++++++++++
 src/libtasque/docs/sources/Tasque/TaskPriority.xml |   73 ++++
 src/libtasque/docs/sources/Tasque/TaskState.xml    |   73 ++++
 src/libtasque/docs/sources/index.xml               |   53 +++
 src/libtasque/docs/sources/ns-Tasque.Backends.xml  |    6 +
 src/libtasque/docs/sources/ns-Tasque.xml           |    6 +
 src/libtasque/libtasque.csproj                     |   40 +++
 src/tasque/Application.cs                          |    6 +-
 src/tasque/Backends/Rtm/RtmPreferencesWidget.cs    |    2 +-
 src/tasque/GnomeApplication.cs                     |   40 +--
 src/tasque/GtkApplication.cs                       |   34 +--
 23 files changed, 1648 insertions(+), 73 deletions(-)
---
diff --git a/src/libtasque/INativeApplication.cs b/src/libtasque/INativeApplication.cs
index d333357..4211330 100644
--- a/src/libtasque/INativeApplication.cs
+++ b/src/libtasque/INativeApplication.cs
@@ -4,20 +4,20 @@ namespace Tasque
 {
 	public interface INativeApplication
 	{
-		void Initialize (string locale_dir,
-		                 string display_name,
-		                 string process_name,
-		                 string [] args);
-
-		event EventHandler ExitingEvent;
+		string ConfDir { get; }
 
 		void Exit (int exitcode);
-		void StartMainLoop ();
-		void QuitMainLoop ();
+
+		void Initialize (string [] args);
+
 		void InitializeIdle ();
 
-		string ConfDir { get; }
+		void OpenUrlInBrowser (string url);
+
+		void QuitMainLoop ();
+
+		void StartMainLoop ();
 
-		void OpenUrl (string url);
+		event EventHandler Exiting;
 	}
 }
diff --git a/src/libtasque/NativeApplication.cs b/src/libtasque/NativeApplication.cs
new file mode 100644
index 0000000..ff36840
--- /dev/null
+++ b/src/libtasque/NativeApplication.cs
@@ -0,0 +1,64 @@
+// 
+// NativeApplication.cs
+//  
+// Author:
+//       Antonius Riha <antoniusriha gmail com>
+// 
+// Copyright (c) 2012 Antonius Riha
+// 
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+// 
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+
+using System;
+using System.Diagnostics;
+
+namespace Tasque
+{
+	public abstract class NativeApplication : INativeApplication
+	{
+		public abstract string ConfDir { get; }
+
+		public void Exit (int exitcode)
+		{
+			OnExit (exitcode);
+
+			if (Exiting != null)
+				Exiting (this, EventArgs.Empty);
+
+			Environment.Exit (exitcode);
+		}
+
+		public abstract void Initialize (string[] args);
+
+		public virtual void InitializeIdle () {}
+
+		protected virtual void OnExit (int exitCode) {}
+
+		public virtual void OpenUrlInBrowser (string url)
+		{
+			Process.Start (url);
+		}
+
+		public abstract void QuitMainLoop ();
+
+		public abstract void StartMainLoop ();
+
+		public event EventHandler Exiting;
+	}
+}
+
diff --git a/src/libtasque/docs/libtasque.sources b/src/libtasque/docs/libtasque.sources
new file mode 100644
index 0000000..b83099d
--- /dev/null
+++ b/src/libtasque/docs/libtasque.sources
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<monodoc>
+  <node label="Tasque Library" name="mydocs-lib" parent="libraries" />
+  <source provider="ecma" basefile="libtasque" path="mydocs-lib" />
+</monodoc>
diff --git a/src/libtasque/docs/sources/Tasque.Backends/BackendInitializedHandler.xml b/src/libtasque/docs/sources/Tasque.Backends/BackendInitializedHandler.xml
new file mode 100644
index 0000000..acdb7f9
--- /dev/null
+++ b/src/libtasque/docs/sources/Tasque.Backends/BackendInitializedHandler.xml
@@ -0,0 +1,19 @@
+<Type Name="BackendInitializedHandler" FullName="Tasque.Backends.BackendInitializedHandler">
+  <TypeSignature Language="C#" Value="public delegate void BackendInitializedHandler();" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed BackendInitializedHandler extends System.MulticastDelegate" />
+  <AssemblyInfo>
+    <AssemblyName>libtasque</AssemblyName>
+    <AssemblyVersion>0.1.10.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Delegate</BaseTypeName>
+  </Base>
+  <Parameters />
+  <ReturnValue>
+    <ReturnType>System.Void</ReturnType>
+  </ReturnValue>
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+</Type>
diff --git a/src/libtasque/docs/sources/Tasque.Backends/BackendSyncFinishedHandler.xml b/src/libtasque/docs/sources/Tasque.Backends/BackendSyncFinishedHandler.xml
new file mode 100644
index 0000000..44131a1
--- /dev/null
+++ b/src/libtasque/docs/sources/Tasque.Backends/BackendSyncFinishedHandler.xml
@@ -0,0 +1,19 @@
+<Type Name="BackendSyncFinishedHandler" FullName="Tasque.Backends.BackendSyncFinishedHandler">
+  <TypeSignature Language="C#" Value="public delegate void BackendSyncFinishedHandler();" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed BackendSyncFinishedHandler extends System.MulticastDelegate" />
+  <AssemblyInfo>
+    <AssemblyName>libtasque</AssemblyName>
+    <AssemblyVersion>0.1.10.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Delegate</BaseTypeName>
+  </Base>
+  <Parameters />
+  <ReturnValue>
+    <ReturnType>System.Void</ReturnType>
+  </ReturnValue>
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+</Type>
diff --git a/src/libtasque/docs/sources/Tasque.Backends/BackendSyncStartedHandler.xml b/src/libtasque/docs/sources/Tasque.Backends/BackendSyncStartedHandler.xml
new file mode 100644
index 0000000..00f438e
--- /dev/null
+++ b/src/libtasque/docs/sources/Tasque.Backends/BackendSyncStartedHandler.xml
@@ -0,0 +1,19 @@
+<Type Name="BackendSyncStartedHandler" FullName="Tasque.Backends.BackendSyncStartedHandler">
+  <TypeSignature Language="C#" Value="public delegate void BackendSyncStartedHandler();" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed BackendSyncStartedHandler extends System.MulticastDelegate" />
+  <AssemblyInfo>
+    <AssemblyName>libtasque</AssemblyName>
+    <AssemblyVersion>0.1.10.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Delegate</BaseTypeName>
+  </Base>
+  <Parameters />
+  <ReturnValue>
+    <ReturnType>System.Void</ReturnType>
+  </ReturnValue>
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+</Type>
diff --git a/src/libtasque/docs/sources/Tasque.Backends/IBackend.xml b/src/libtasque/docs/sources/Tasque.Backends/IBackend.xml
new file mode 100644
index 0000000..c75ab19
--- /dev/null
+++ b/src/libtasque/docs/sources/Tasque.Backends/IBackend.xml
@@ -0,0 +1,246 @@
+<Type Name="IBackend" FullName="Tasque.Backends.IBackend">
+  <TypeSignature Language="C#" Value="public interface IBackend" />
+  <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IBackend" />
+  <AssemblyInfo>
+    <AssemblyName>libtasque</AssemblyName>
+    <AssemblyVersion>0.1.10.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Interfaces />
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName="BackendInitialized">
+      <MemberSignature Language="C#" Value="public event Tasque.Backends.BackendInitializedHandler BackendInitialized;" />
+      <MemberSignature Language="ILAsm" Value=".event class Tasque.Backends.BackendInitializedHandler BackendInitialized" />
+      <MemberType>Event</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Tasque.Backends.BackendInitializedHandler</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="BackendSyncFinished">
+      <MemberSignature Language="C#" Value="public event Tasque.Backends.BackendSyncFinishedHandler BackendSyncFinished;" />
+      <MemberSignature Language="ILAsm" Value=".event class Tasque.Backends.BackendSyncFinishedHandler BackendSyncFinished" />
+      <MemberType>Event</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Tasque.Backends.BackendSyncFinishedHandler</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="BackendSyncStarted">
+      <MemberSignature Language="C#" Value="public event Tasque.Backends.BackendSyncStartedHandler BackendSyncStarted;" />
+      <MemberSignature Language="ILAsm" Value=".event class Tasque.Backends.BackendSyncStartedHandler BackendSyncStarted" />
+      <MemberType>Event</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Tasque.Backends.BackendSyncStartedHandler</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Categories">
+      <MemberSignature Language="C#" Value="public Gtk.TreeModel Categories { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance class Gtk.TreeModel Categories" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Gtk.TreeModel</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Cleanup">
+      <MemberSignature Language="C#" Value="public void Cleanup ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Cleanup() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Configured">
+      <MemberSignature Language="C#" Value="public bool Configured { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance bool Configured" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Boolean</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="CreateTask">
+      <MemberSignature Language="C#" Value="public Tasque.ITask CreateTask (string taskName, Tasque.ICategory category);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class Tasque.ITask CreateTask(string taskName, class Tasque.ICategory category) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Tasque.ITask</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="taskName" Type="System.String" />
+        <Parameter Name="category" Type="Tasque.ICategory" />
+      </Parameters>
+      <Docs>
+        <param name="taskName">To be added.</param>
+        <param name="category">To be added.</param>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="DeleteTask">
+      <MemberSignature Language="C#" Value="public void DeleteTask (Tasque.ITask task);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void DeleteTask(class Tasque.ITask task) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="task" Type="Tasque.ITask" />
+      </Parameters>
+      <Docs>
+        <param name="task">To be added.</param>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="GetPreferencesWidget">
+      <MemberSignature Language="C#" Value="public Gtk.Widget GetPreferencesWidget ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class Gtk.Widget GetPreferencesWidget() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Gtk.Widget</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Initialize">
+      <MemberSignature Language="C#" Value="public void Initialize ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Initialize() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Initialized">
+      <MemberSignature Language="C#" Value="public bool Initialized { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance bool Initialized" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Boolean</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Name">
+      <MemberSignature Language="C#" Value="public string Name { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance string Name" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Refresh">
+      <MemberSignature Language="C#" Value="public void Refresh ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Refresh() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Tasks">
+      <MemberSignature Language="C#" Value="public Gtk.TreeModel Tasks { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance class Gtk.TreeModel Tasks" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Gtk.TreeModel</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
diff --git a/src/libtasque/docs/sources/Tasque/ICategory.xml b/src/libtasque/docs/sources/Tasque/ICategory.xml
new file mode 100644
index 0000000..7091f1b
--- /dev/null
+++ b/src/libtasque/docs/sources/Tasque/ICategory.xml
@@ -0,0 +1,51 @@
+<Type Name="ICategory" FullName="Tasque.ICategory">
+  <TypeSignature Language="C#" Value="public interface ICategory" />
+  <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract ICategory" />
+  <AssemblyInfo>
+    <AssemblyName>libtasque</AssemblyName>
+    <AssemblyVersion>0.1.10.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Interfaces />
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName="ContainsTask">
+      <MemberSignature Language="C#" Value="public bool ContainsTask (Tasque.ITask task);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance bool ContainsTask(class Tasque.ITask task) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Boolean</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="task" Type="Tasque.ITask" />
+      </Parameters>
+      <Docs>
+        <param name="task">To be added.</param>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Name">
+      <MemberSignature Language="C#" Value="public string Name { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance string Name" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
diff --git a/src/libtasque/docs/sources/Tasque/INativeApplication.xml b/src/libtasque/docs/sources/Tasque/INativeApplication.xml
new file mode 100644
index 0000000..26b1b23
--- /dev/null
+++ b/src/libtasque/docs/sources/Tasque/INativeApplication.xml
@@ -0,0 +1,151 @@
+<Type Name="INativeApplication" FullName="Tasque.INativeApplication">
+  <TypeSignature Language="C#" Value="public interface INativeApplication" />
+  <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract INativeApplication" />
+  <AssemblyInfo>
+    <AssemblyName>libtasque</AssemblyName>
+    <AssemblyVersion>0.1.10.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Interfaces />
+  <Docs>
+    <summary>Implemented by classes that represent the Tasque application. This interface is GUI toolkit agnostic.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName="ConfDir">
+      <MemberSignature Language="C#" Value="public string ConfDir { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance string ConfDir" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>Gets the file system directory which holds the application configuration file(s).</summary>
+        <value>The path to the configuration directory.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Exit">
+      <MemberSignature Language="C#" Value="public void Exit (int exitcode);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Exit(int32 exitcode) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="exitcode" Type="System.Int32" />
+      </Parameters>
+      <Docs>
+        <param name="exitcode">The exit code.</param>
+        <summary>Exits the application with the specified exit code.</summary>
+        <remarks>This method fires the <see cref="E:Tasque.INativeApplication.Exiting" /> event.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Exiting">
+      <MemberSignature Language="C#" Value="public event EventHandler Exiting;" />
+      <MemberSignature Language="ILAsm" Value=".event class System.EventHandler Exiting" />
+      <MemberType>Event</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.EventHandler</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>Occurs when the application is exiting.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Initialize">
+      <MemberSignature Language="C#" Value="public void Initialize (string[] args);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Initialize(string[] args) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="args" Type="System.String[]" />
+      </Parameters>
+      <Docs>
+        <param name="args">Arguments passed along with the command (passed through from <c>Main()</c>).</param>
+        <summary>Initialize the native application.</summary>
+        <remarks>Initialization should take place right after object creation. This method must only be called once. Subsequent calls are ignored.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="InitializeIdle">
+      <MemberSignature Language="C#" Value="public void InitializeIdle ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void InitializeIdle() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>Runs low priority initialization tasks.</summary>
+        <remarks>This method is not called immediately after <see cref="M:Tasque.INativeApplication.Initialize(string[])" />, rather on a separate thread when the application main loop is running idle.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="OpenUrlInBrowser">
+      <MemberSignature Language="C#" Value="public void OpenUrlInBrowser (string url);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void OpenUrlInBrowser(string url) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="url" Type="System.String" />
+      </Parameters>
+      <Docs>
+        <param name="url">The URL.</param>
+        <summary>Opens a URL in a browser.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="QuitMainLoop">
+      <MemberSignature Language="C#" Value="public void QuitMainLoop ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void QuitMainLoop() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>Quits the main loop.</summary>
+        <remarks>This method must be called after <see cref="M:Tasque.INativeApplication.StartMainLoop()" />. Otherwise it throws an exception. Calls to this method are ignored, if the main loop has already been quit.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="StartMainLoop">
+      <MemberSignature Language="C#" Value="public void StartMainLoop ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void StartMainLoop() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>Starts the main loop.</summary>
+        <remarks>This method must be called after <see cref="M:Tasque.INativeApplication.Initialize()" />. Otherwise it throws an exception. Subsequent calls to this method are ignored as long as <see cref="M:Tasque.INativeApplication.QuitMainLoop()" /> has not been called.</remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
diff --git a/src/libtasque/docs/sources/Tasque/INote.xml b/src/libtasque/docs/sources/Tasque/INote.xml
new file mode 100644
index 0000000..3c83489
--- /dev/null
+++ b/src/libtasque/docs/sources/Tasque/INote.xml
@@ -0,0 +1,31 @@
+<Type Name="INote" FullName="Tasque.INote">
+  <TypeSignature Language="C#" Value="public interface INote" />
+  <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract INote" />
+  <AssemblyInfo>
+    <AssemblyName>libtasque</AssemblyName>
+    <AssemblyVersion>0.1.10.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Interfaces />
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName="Text">
+      <MemberSignature Language="C#" Value="public string Text { get; set; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance string Text" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
diff --git a/src/libtasque/docs/sources/Tasque/ITask.xml b/src/libtasque/docs/sources/Tasque/ITask.xml
new file mode 100644
index 0000000..5fac5b3
--- /dev/null
+++ b/src/libtasque/docs/sources/Tasque/ITask.xml
@@ -0,0 +1,369 @@
+<Type Name="ITask" FullName="Tasque.ITask">
+  <TypeSignature Language="C#" Value="public interface ITask" />
+  <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract ITask" />
+  <AssemblyInfo>
+    <AssemblyName>libtasque</AssemblyName>
+    <AssemblyVersion>0.1.10.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Interfaces />
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName="Activate">
+      <MemberSignature Language="C#" Value="public void Activate ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Activate() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Category">
+      <MemberSignature Language="C#" Value="public Tasque.ICategory Category { get; set; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance class Tasque.ICategory Category" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Tasque.ICategory</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="CompareTo">
+      <MemberSignature Language="C#" Value="public int CompareTo (Tasque.ITask task);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 CompareTo(class Tasque.ITask task) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Int32</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="task" Type="Tasque.ITask" />
+      </Parameters>
+      <Docs>
+        <param name="task">To be added.</param>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="CompareToByCompletionDate">
+      <MemberSignature Language="C#" Value="public int CompareToByCompletionDate (Tasque.ITask task);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance int32 CompareToByCompletionDate(class Tasque.ITask task) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Int32</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="task" Type="Tasque.ITask" />
+      </Parameters>
+      <Docs>
+        <param name="task">To be added.</param>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Complete">
+      <MemberSignature Language="C#" Value="public void Complete ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Complete() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="CompletionDate">
+      <MemberSignature Language="C#" Value="public DateTime CompletionDate { get; set; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance valuetype System.DateTime CompletionDate" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.DateTime</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="CreateNote">
+      <MemberSignature Language="C#" Value="public Tasque.INote CreateNote (string text);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class Tasque.INote CreateNote(string text) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Tasque.INote</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="text" Type="System.String" />
+      </Parameters>
+      <Docs>
+        <param name="text">To be added.</param>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Delete">
+      <MemberSignature Language="C#" Value="public void Delete ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Delete() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="DeleteNote">
+      <MemberSignature Language="C#" Value="public void DeleteNote (Tasque.INote note);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void DeleteNote(class Tasque.INote note) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="note" Type="Tasque.INote" />
+      </Parameters>
+      <Docs>
+        <param name="note">To be added.</param>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="DueDate">
+      <MemberSignature Language="C#" Value="public DateTime DueDate { get; set; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance valuetype System.DateTime DueDate" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.DateTime</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="HasNotes">
+      <MemberSignature Language="C#" Value="public bool HasNotes { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance bool HasNotes" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Boolean</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Id">
+      <MemberSignature Language="C#" Value="public string Id { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance string Id" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Inactivate">
+      <MemberSignature Language="C#" Value="public void Inactivate ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Inactivate() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="IsComplete">
+      <MemberSignature Language="C#" Value="public bool IsComplete { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance bool IsComplete" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Boolean</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Name">
+      <MemberSignature Language="C#" Value="public string Name { get; set; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance string Name" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Notes">
+      <MemberSignature Language="C#" Value="public System.Collections.Generic.List&lt;Tasque.INote&gt; Notes { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance class System.Collections.Generic.List`1&lt;class Tasque.INote&gt; Notes" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Collections.Generic.List&lt;Tasque.INote&gt;</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Priority">
+      <MemberSignature Language="C#" Value="public Tasque.TaskPriority Priority { get; set; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance valuetype Tasque.TaskPriority Priority" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Tasque.TaskPriority</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="SaveNote">
+      <MemberSignature Language="C#" Value="public void SaveNote (Tasque.INote note);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void SaveNote(class Tasque.INote note) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="note" Type="Tasque.INote" />
+      </Parameters>
+      <Docs>
+        <param name="note">To be added.</param>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="State">
+      <MemberSignature Language="C#" Value="public Tasque.TaskState State { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance valuetype Tasque.TaskState State" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Tasque.TaskState</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="SupportsMultipleNotes">
+      <MemberSignature Language="C#" Value="public bool SupportsMultipleNotes { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance bool SupportsMultipleNotes" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Boolean</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="TimerID">
+      <MemberSignature Language="C#" Value="public uint TimerID { get; set; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance unsigned int32 TimerID" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.UInt32</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
diff --git a/src/libtasque/docs/sources/Tasque/NativeApplication.xml b/src/libtasque/docs/sources/Tasque/NativeApplication.xml
new file mode 100644
index 0000000..1bde9d7
--- /dev/null
+++ b/src/libtasque/docs/sources/Tasque/NativeApplication.xml
@@ -0,0 +1,199 @@
+<Type Name="NativeApplication" FullName="Tasque.NativeApplication">
+  <TypeSignature Language="C#" Value="public abstract class NativeApplication : Tasque.INativeApplication" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi abstract beforefieldinit NativeApplication extends System.Object implements class Tasque.INativeApplication" />
+  <AssemblyInfo>
+    <AssemblyName>libtasque</AssemblyName>
+    <AssemblyVersion>0.1.10.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Object</BaseTypeName>
+  </Base>
+  <Interfaces>
+    <Interface>
+      <InterfaceName>Tasque.INativeApplication</InterfaceName>
+    </Interface>
+  </Interfaces>
+  <Docs>
+    <summary>A common base class for all native applications.</summary>
+    <remarks>This class can be used as a base class for various platform specific implementations of the Tasque application.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName=".ctor">
+      <MemberSignature Language="C#" Value="protected NativeApplication ();" />
+      <MemberSignature Language="ILAsm" Value=".method familyhidebysig specialname rtspecialname instance void .ctor() cil managed" />
+      <MemberType>Constructor</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <Parameters />
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="ConfDir">
+      <MemberSignature Language="C#" Value="public abstract string ConfDir { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property instance string ConfDir" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>Gets the file system directory which holds the application configuration file(s).</summary>
+        <value>The path to the configuration directory.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Exit">
+      <MemberSignature Language="C#" Value="public void Exit (int exitcode);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Exit(int32 exitcode) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="exitcode" Type="System.Int32" />
+      </Parameters>
+      <Docs>
+        <param name="exitcode">The exit code.</param>
+        <summary>Exits the application with the specified exit code.</summary>
+        <remarks>This method calls <see cref="M:Tasque.NativeApplication.OnExit(int)" /> and fires the <see cref="E:Tasque.NativeApplication.Exiting" /> event.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Exiting">
+      <MemberSignature Language="C#" Value="public event EventHandler Exiting;" />
+      <MemberSignature Language="ILAsm" Value=".event class System.EventHandler Exiting" />
+      <MemberType>Event</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.EventHandler</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>Occurs when the application is exiting.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Initialize">
+      <MemberSignature Language="C#" Value="public abstract void Initialize (string[] args);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void Initialize(string[] args) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="args" Type="System.String[]" />
+      </Parameters>
+      <Docs>
+        <param name="args">Arguments passed along with the command (passed through from <c>Main()</c>).</param>
+        <summary>Initialize the native application.</summary>
+        <remarks>Initialization should take place right after object creation. This method must only be called once. Subsequent calls are ignored.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="InitializeIdle">
+      <MemberSignature Language="C#" Value="public virtual void InitializeIdle ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void InitializeIdle() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>Runs low priority initialization tasks.</summary>
+        <remarks>This method is not called immediately after <see cref="M:Tasque.NativeApplication.Initialize(string[])" />, rather on a separate thread when the application main loop is running idle.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="OnExit">
+      <MemberSignature Language="C#" Value="protected virtual void OnExit (int exitCode);" />
+      <MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void OnExit(int32 exitCode) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="exitCode" Type="System.Int32" />
+      </Parameters>
+      <Docs>
+        <param name="exitCode">To be added.</param>
+        <summary>Is called when the application exits.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="OpenUrlInBrowser">
+      <MemberSignature Language="C#" Value="public virtual void OpenUrlInBrowser (string url);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void OpenUrlInBrowser(string url) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="url" Type="System.String" />
+      </Parameters>
+      <Docs>
+        <param name="url">The URL.</param>
+        <summary>Opens a URL in a browser.</summary>
+        <remarks>
+          <para>
+This method opens the system default browser and navigates to url.
+</para>
+          <block subset="none" type="note">
+            <para>
+    This method does not handle exceptions.
+  </para>
+          </block>
+        </remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="QuitMainLoop">
+      <MemberSignature Language="C#" Value="public abstract void QuitMainLoop ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void QuitMainLoop() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>Quits the main loop.</summary>
+        <remarks>This method must be called after <see cref="M:Tasque.NativeApplication.StartMainLoop()" />. Otherwise it throws an exception. Calls to this method are ignored, if the main loop has already been quit.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="StartMainLoop">
+      <MemberSignature Language="C#" Value="public abstract void StartMainLoop ();" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void StartMainLoop() cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Void</ReturnType>
+      </ReturnValue>
+      <Parameters />
+      <Docs>
+        <summary>Starts the main loop.</summary>
+        <remarks>This method must be called after <see cref="M:Tasque.NativeApplication.Initialize()" />. Otherwise it throws an exception. Subsequent calls to this method are ignored as long as <see cref="M:Tasque.NativeApplication.QuitMainLoop()" /> has not been called.</remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
diff --git a/src/libtasque/docs/sources/Tasque/TaskParser.xml b/src/libtasque/docs/sources/Tasque/TaskParser.xml
new file mode 100644
index 0000000..d4ce876
--- /dev/null
+++ b/src/libtasque/docs/sources/Tasque/TaskParser.xml
@@ -0,0 +1,195 @@
+<Type Name="TaskParser" FullName="Tasque.TaskParser">
+  <TypeSignature Language="C#" Value="public class TaskParser" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit TaskParser extends System.Object" />
+  <AssemblyInfo>
+    <AssemblyName>libtasque</AssemblyName>
+    <AssemblyVersion>0.1.10.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Object</BaseTypeName>
+  </Base>
+  <Interfaces />
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName="Day">
+      <MemberSignature Language="C#" Value="public static string Day;" />
+      <MemberSignature Language="ILAsm" Value=".field public static string Day" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Instance">
+      <MemberSignature Language="C#" Value="public static Tasque.TaskParser Instance { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property class Tasque.TaskParser Instance" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Tasque.TaskParser</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Month">
+      <MemberSignature Language="C#" Value="public static string Month;" />
+      <MemberSignature Language="ILAsm" Value=".field public static string Month" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="MonthsArray">
+      <MemberSignature Language="C#" Value="public static string[] MonthsArray { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property string[] MonthsArray" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.String[]</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="OrdinalSuffixes">
+      <MemberSignature Language="C#" Value="public static string OrdinalSuffixes;" />
+      <MemberSignature Language="ILAsm" Value=".field public static string OrdinalSuffixes" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Today">
+      <MemberSignature Language="C#" Value="public static string Today;" />
+      <MemberSignature Language="ILAsm" Value=".field public static string Today" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Tomorrow">
+      <MemberSignature Language="C#" Value="public static string Tomorrow;" />
+      <MemberSignature Language="ILAsm" Value=".field public static string Tomorrow" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="TryParse">
+      <MemberSignature Language="C#" Value="public bool TryParse (string enteredTaskText, out string parsedTaskText, out DateTime dueDateTime);" />
+      <MemberSignature Language="ILAsm" Value=".method public hidebysig instance bool TryParse(string enteredTaskText, string parsedTaskText, valuetype System.DateTime dueDateTime) cil managed" />
+      <MemberType>Method</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.Boolean</ReturnType>
+      </ReturnValue>
+      <Parameters>
+        <Parameter Name="enteredTaskText" Type="System.String" />
+        <Parameter Name="parsedTaskText" Type="System.String&amp;" RefType="out" />
+        <Parameter Name="dueDateTime" Type="System.DateTime&amp;" RefType="out" />
+      </Parameters>
+      <Docs>
+        <param name="enteredTaskText">To be added.</param>
+        <param name="parsedTaskText">To be added.</param>
+        <param name="dueDateTime">To be added.</param>
+        <summary>To be added.</summary>
+        <returns>To be added.</returns>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Week">
+      <MemberSignature Language="C#" Value="public static string Week;" />
+      <MemberSignature Language="ILAsm" Value=".field public static string Week" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="WeekdaysArray">
+      <MemberSignature Language="C#" Value="public static string[] WeekdaysArray { get; }" />
+      <MemberSignature Language="ILAsm" Value=".property string[] WeekdaysArray" />
+      <MemberType>Property</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.String[]</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <value>To be added.</value>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+    <Member MemberName="Year">
+      <MemberSignature Language="C#" Value="public static string Year;" />
+      <MemberSignature Language="ILAsm" Value=".field public static string Year" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>System.String</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+        <remarks>To be added.</remarks>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
diff --git a/src/libtasque/docs/sources/Tasque/TaskPriority.xml b/src/libtasque/docs/sources/Tasque/TaskPriority.xml
new file mode 100644
index 0000000..cd837c4
--- /dev/null
+++ b/src/libtasque/docs/sources/Tasque/TaskPriority.xml
@@ -0,0 +1,73 @@
+<Type Name="TaskPriority" FullName="Tasque.TaskPriority">
+  <TypeSignature Language="C#" Value="public enum TaskPriority" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed TaskPriority extends System.Enum" />
+  <AssemblyInfo>
+    <AssemblyName>libtasque</AssemblyName>
+    <AssemblyVersion>0.1.10.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Enum</BaseTypeName>
+  </Base>
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName="High">
+      <MemberSignature Language="C#" Value="High" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Tasque.TaskPriority High = int32(3)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Tasque.TaskPriority</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Low">
+      <MemberSignature Language="C#" Value="Low" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Tasque.TaskPriority Low = int32(1)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Tasque.TaskPriority</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Medium">
+      <MemberSignature Language="C#" Value="Medium" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Tasque.TaskPriority Medium = int32(2)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Tasque.TaskPriority</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="None">
+      <MemberSignature Language="C#" Value="None" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Tasque.TaskPriority None = int32(0)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Tasque.TaskPriority</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
diff --git a/src/libtasque/docs/sources/Tasque/TaskState.xml b/src/libtasque/docs/sources/Tasque/TaskState.xml
new file mode 100644
index 0000000..d854927
--- /dev/null
+++ b/src/libtasque/docs/sources/Tasque/TaskState.xml
@@ -0,0 +1,73 @@
+<Type Name="TaskState" FullName="Tasque.TaskState">
+  <TypeSignature Language="C#" Value="public enum TaskState" />
+  <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed TaskState extends System.Enum" />
+  <AssemblyInfo>
+    <AssemblyName>libtasque</AssemblyName>
+    <AssemblyVersion>0.1.10.0</AssemblyVersion>
+  </AssemblyInfo>
+  <Base>
+    <BaseTypeName>System.Enum</BaseTypeName>
+  </Base>
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+  <Members>
+    <Member MemberName="Active">
+      <MemberSignature Language="C#" Value="Active" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Tasque.TaskState Active = int32(0)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Tasque.TaskState</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Completed">
+      <MemberSignature Language="C#" Value="Completed" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Tasque.TaskState Completed = int32(2)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Tasque.TaskState</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Deleted">
+      <MemberSignature Language="C#" Value="Deleted" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Tasque.TaskState Deleted = int32(3)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Tasque.TaskState</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+    <Member MemberName="Inactive">
+      <MemberSignature Language="C#" Value="Inactive" />
+      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Tasque.TaskState Inactive = int32(1)" />
+      <MemberType>Field</MemberType>
+      <AssemblyInfo>
+        <AssemblyVersion>0.1.10.0</AssemblyVersion>
+      </AssemblyInfo>
+      <ReturnValue>
+        <ReturnType>Tasque.TaskState</ReturnType>
+      </ReturnValue>
+      <Docs>
+        <summary>To be added.</summary>
+      </Docs>
+    </Member>
+  </Members>
+</Type>
diff --git a/src/libtasque/docs/sources/index.xml b/src/libtasque/docs/sources/index.xml
new file mode 100644
index 0000000..4d0deeb
--- /dev/null
+++ b/src/libtasque/docs/sources/index.xml
@@ -0,0 +1,53 @@
+<Overview>
+  <Assemblies>
+    <Assembly Name="libtasque" Version="0.1.10.0">
+      <Attributes>
+        <Attribute>
+          <AttributeName>System.Reflection.AssemblyCompany("")</AttributeName>
+        </Attribute>
+        <Attribute>
+          <AttributeName>System.Reflection.AssemblyConfiguration("")</AttributeName>
+        </Attribute>
+        <Attribute>
+          <AttributeName>System.Reflection.AssemblyCopyright("MIT")</AttributeName>
+        </Attribute>
+        <Attribute>
+          <AttributeName>System.Reflection.AssemblyInformationalVersion("0.1.10")</AttributeName>
+        </Attribute>
+        <Attribute>
+          <AttributeName>System.Reflection.AssemblyProduct("Tasque")</AttributeName>
+        </Attribute>
+        <Attribute>
+          <AttributeName>System.Reflection.AssemblyTitle("libtasque")</AttributeName>
+        </Attribute>
+        <Attribute>
+          <AttributeName>System.Reflection.AssemblyTrademark("")</AttributeName>
+        </Attribute>
+        <Attribute>
+          <AttributeName>System.Runtime.CompilerServices.RuntimeCompatibility(WrapNonExceptionThrows=true)</AttributeName>
+        </Attribute>
+      </Attributes>
+    </Assembly>
+  </Assemblies>
+  <Remarks>To be added.</Remarks>
+  <Copyright>To be added.</Copyright>
+  <Types>
+    <Namespace Name="Tasque">
+      <Type Name="ICategory" Kind="Interface" />
+      <Type Name="INativeApplication" Kind="Interface" />
+      <Type Name="INote" Kind="Interface" />
+      <Type Name="ITask" Kind="Interface" />
+      <Type Name="NativeApplication" Kind="Class" />
+      <Type Name="TaskParser" Kind="Class" />
+      <Type Name="TaskPriority" Kind="Enumeration" />
+      <Type Name="TaskState" Kind="Enumeration" />
+    </Namespace>
+    <Namespace Name="Tasque.Backends">
+      <Type Name="BackendInitializedHandler" Kind="Delegate" />
+      <Type Name="BackendSyncFinishedHandler" Kind="Delegate" />
+      <Type Name="BackendSyncStartedHandler" Kind="Delegate" />
+      <Type Name="IBackend" Kind="Interface" />
+    </Namespace>
+  </Types>
+  <Title>libtasque</Title>
+</Overview>
diff --git a/src/libtasque/docs/sources/ns-Tasque.Backends.xml b/src/libtasque/docs/sources/ns-Tasque.Backends.xml
new file mode 100644
index 0000000..49df08f
--- /dev/null
+++ b/src/libtasque/docs/sources/ns-Tasque.Backends.xml
@@ -0,0 +1,6 @@
+<Namespace Name="Tasque.Backends">
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+</Namespace>
diff --git a/src/libtasque/docs/sources/ns-Tasque.xml b/src/libtasque/docs/sources/ns-Tasque.xml
new file mode 100644
index 0000000..d4c67bf
--- /dev/null
+++ b/src/libtasque/docs/sources/ns-Tasque.xml
@@ -0,0 +1,6 @@
+<Namespace Name="Tasque">
+  <Docs>
+    <summary>To be added.</summary>
+    <remarks>To be added.</remarks>
+  </Docs>
+</Namespace>
diff --git a/src/libtasque/libtasque.csproj b/src/libtasque/libtasque.csproj
index dca7c02..59fc470 100644
--- a/src/libtasque/libtasque.csproj
+++ b/src/libtasque/libtasque.csproj
@@ -19,6 +19,12 @@
     <DefineConstants>DEBUG;TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
+    <CustomCommands>
+      <CustomCommands>
+        <Command type="AfterBuild" command="mdoc update -o ${ProjectDir}/docs/sources ${TargetFile}" />
+        <Command type="AfterBuild" command="mdoc assemble -o ${TargetDir}/libtasque ${ProjectDir}/docs/sources" />
+      </CustomCommands>
+    </CustomCommands>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'GnomeRelease|AnyCPU' ">
     <DebugType>none</DebugType>
@@ -41,6 +47,12 @@
     <DefineConstants>DEBUG;TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
+    <CustomCommands>
+      <CustomCommands>
+        <Command type="AfterBuild" command="mdoc update -o docs ${TargetFile}" />
+        <Command type="AfterBuild" command="mdoc assemble -o ${TargetDir}/libtasque ${ProjectDir}/docs/sources" />
+      </CustomCommands>
+    </CustomCommands>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'GtkLinuxRelease|AnyCPU' ">
     <DebugType>none</DebugType>
@@ -153,6 +165,7 @@
     <Compile Include="..\..\build\GlobalDefines.cs">
       <Link>Properties\GlobalDefines.cs</Link>
     </Compile>
+    <Compile Include="NativeApplication.cs" />
   </ItemGroup>
   <ItemGroup>
     <Reference Include="gtk-sharp, Version=2.12.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f">
@@ -181,6 +194,8 @@
   <ItemGroup>
     <Folder Include="DateFormatters\" />
     <Folder Include="Properties\" />
+    <Folder Include="docs\" />
+    <Folder Include="docs\sources\" />
   </ItemGroup>
   <ProjectExtensions>
     <MonoDevelop>
@@ -190,4 +205,29 @@
     </MonoDevelop>
   </ProjectExtensions>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <ItemGroup>
+    <None Include="docs\sources\Tasque\ICategory.xml" />
+    <None Include="docs\sources\Tasque\INativeApplication.xml" />
+    <None Include="docs\sources\Tasque\INote.xml" />
+    <None Include="docs\sources\Tasque\ITask.xml" />
+    <None Include="docs\sources\Tasque\NativeApplication.xml" />
+    <None Include="docs\sources\Tasque\TaskParser.xml" />
+    <None Include="docs\sources\Tasque\TaskPriority.xml" />
+    <None Include="docs\sources\Tasque\TaskState.xml" />
+    <None Include="docs\sources\Tasque.Backends\BackendInitializedHandler.xml" />
+    <None Include="docs\sources\Tasque.Backends\BackendSyncFinishedHandler.xml" />
+    <None Include="docs\sources\Tasque.Backends\BackendSyncStartedHandler.xml" />
+    <None Include="docs\sources\Tasque.Backends\IBackend.xml" />
+    <None Include="docs\sources\Tasque.UI\INativeTray.xml" />
+    <None Include="docs\sources\Tasque.UI\INativeWindow.xml" />
+    <None Include="docs\sources\Tasque.UI\NativeTray.xml" />
+    <None Include="docs\sources\index.xml" />
+    <None Include="docs\sources\ns-Tasque.Backends.xml" />
+    <None Include="docs\sources\ns-Tasque.UI.xml" />
+    <None Include="docs\sources\ns-Tasque.xml" />
+    <DocsSourcesFile Include="docs\libtasque.sources" />
+  </ItemGroup>
+  <Target Name="AfterBuild">
+    <Copy SourceFiles="@(DocsSourcesFile)" DestinationFolder="$(OutputPath)" />
+  </Target>
 </Project>
diff --git a/src/tasque/Application.cs b/src/tasque/Application.cs
index f6d2c99..68fc577 100644
--- a/src/tasque/Application.cs
+++ b/src/tasque/Application.cs
@@ -155,11 +155,7 @@ namespace Tasque
 #else
 			nativeApp = new GnomeApplication ();
 #endif
-			nativeApp.Initialize (
-				GlobalDefines.LocaleDir,
-				"Tasque",
-				"Tasque",
-				args);
+			nativeApp.Initialize (args);
 			
 			RegisterUIManager ();
 
diff --git a/src/tasque/Backends/Rtm/RtmPreferencesWidget.cs b/src/tasque/Backends/Rtm/RtmPreferencesWidget.cs
index fe6097e..51f17b6 100644
--- a/src/tasque/Backends/Rtm/RtmPreferencesWidget.cs
+++ b/src/tasque/Backends/Rtm/RtmPreferencesWidget.cs
@@ -114,7 +114,7 @@ namespace Tasque.Backends.RtmBackend
 					}
 					Logger.Debug("Launching browser to authorize with Remember the Milk");
 					try {
-						Application.Instance.NativeApplication.OpenUrl (url);
+						Application.Instance.NativeApplication.OpenUrlInBrowser (url);
 						authRequested = true;
 						authButton.Label = Catalog.GetString ("Click Here After Authorizing");
 					} catch (Exception ex) {
diff --git a/src/tasque/GnomeApplication.cs b/src/tasque/GnomeApplication.cs
index 30c6d2c..6578904 100644
--- a/src/tasque/GnomeApplication.cs
+++ b/src/tasque/GnomeApplication.cs
@@ -10,7 +10,7 @@ using Mono.Unix.Native;
 
 namespace Tasque
 {
-	public class GnomeApplication : INativeApplication
+	public class GnomeApplication : NativeApplication
 	{
 		private Gnome.Program program;
 		private string confDir;
@@ -25,41 +25,26 @@ namespace Tasque
 				Directory.CreateDirectory (confDir);
 		}
 
-		public void Initialize (string locale_dir,
-		                        string display_name,
-		                        string process_name,
-		                        string [] args)
+		public override void Initialize (string [] args)
 		{
 			Mono.Unix.Catalog.Init ("tasque", GlobalDefines.LocaleDir);
 			try {
-				SetProcessName (process_name);
+				SetProcessName ("Tasque");
 			} catch {} // Ignore exception if fail (not needed to run)
 
 			Gtk.Application.Init ();
-			program = new Gnome.Program (display_name,
+			program = new Gnome.Program ("Tasque",
 			                             GlobalDefines.Version,
 			                             Gnome.Modules.UI,
 			                             args);
 		}
 
-		public void InitializeIdle ()
-		{
-		}
-
-		public event EventHandler ExitingEvent;
-
-		public void Exit (int exitcode)
-		{
-			OnExitSignal (-1);
-			System.Environment.Exit (exitcode);
-		}
-
-		public void StartMainLoop ()
+		public override void StartMainLoop ()
 		{
 			program.Run ();
 		}
 
-		public void QuitMainLoop ()
+		public override void QuitMainLoop ()
 		{
 			Gtk.Main.Quit ();
 		}
@@ -83,22 +68,13 @@ namespace Tasque
 				        "Error setting process name: " +
 				        Mono.Unix.Native.Stdlib.GetLastError ());
 		}
-
-		private void OnExitSignal (int signal)
-		{
-			if (ExitingEvent != null)
-				ExitingEvent (null, new EventArgs ());
-
-			if (signal >= 0)
-				System.Environment.Exit (0);
-		}
 		
-		public void OpenUrl (string url)
+		public override void OpenUrlInBrowser (string url)
 		{
 			Gnome.Url.Show (url);
 		}
 		
-		public string ConfDir {
+		public override string ConfDir {
 			get {
 				return confDir;
 			}
diff --git a/src/tasque/GtkApplication.cs b/src/tasque/GtkApplication.cs
index c6925bd..f51aae5 100644
--- a/src/tasque/GtkApplication.cs
+++ b/src/tasque/GtkApplication.cs
@@ -18,25 +18,22 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
 // 
 // Copyright (c) 2008 Novell, Inc. (http://www.novell.com) 
+// Copyright (c) 2012 Antonius Riha
 // 
 // Authors: 
 //      Sandy Armstrong <sanfordarmstrong gmail com>
+//      Antonius Riha <antoniusriha gmail com>
 // 
 
-
 using System;
 using System.IO;
 
 namespace Tasque
 {
-	public class GtkApplication : INativeApplication
+	public class GtkApplication : NativeApplication
 	{
-		#region INativeApplication implementation 
-
 		private string confDir;
 
-		public virtual event EventHandler ExitingEvent;
-
 		public GtkApplication ()
 		{
 			confDir = Path.Combine (
@@ -46,34 +43,23 @@ namespace Tasque
 			if (!Directory.Exists (confDir))
 				Directory.CreateDirectory (confDir);
 		}
-		
-		public virtual void Initialize (string locale_dir, string display_name, string process_name, string[] args)
-		{
-			Gtk.Application.Init ();
-		}
 
-		public virtual void InitializeIdle ()
-		{
-		}
-		
-		public virtual void Exit (int exitcode)
+		public override void Initialize (string[] args)
 		{
-			if (ExitingEvent != null)
-				ExitingEvent (null, new EventArgs ());
-			System.Environment.Exit (exitcode);
+			Gtk.Application.Init ();
 		}
 		
-		public virtual void StartMainLoop ()
+		public override void StartMainLoop ()
 		{
 			Gtk.Application.Run ();
 		}
 		
-		public virtual void QuitMainLoop ()
+		public override void QuitMainLoop ()
 		{
 			Gtk.Application.Quit ();
 		}
 
-		public virtual string ConfDir
+		public override string ConfDir
 		{
 			get
 			{
@@ -81,7 +67,7 @@ namespace Tasque
 			}
 		}
 
-		public virtual void OpenUrl (string url)
+		public override void OpenUrlInBrowser (string url)
 		{
 			try {
 				System.Diagnostics.Process.Start (url);
@@ -89,7 +75,5 @@ namespace Tasque
 				Logger.Error ("Error opening url [{0}]:\n{1}", url, e.ToString ());
 			}
 		}
-
-		#endregion
 	}
 }



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