<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Little Big Tomatoes &#187; Tutorials</title>
	<atom:link href="http://www.littlebigtomatoes.com/blog/tags/tutorials/feed" rel="self" type="application/rss+xml" />
	<link>http://www.littlebigtomatoes.com/blog</link>
	<description>... does software in all colours and flavours!</description>
	<lastBuildDate>Fri, 20 Aug 2010 07:33:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Extending Shuriken</title>
		<link>http://www.littlebigtomatoes.com/blog/shuriken/extending-shuriken</link>
		<comments>http://www.littlebigtomatoes.com/blog/shuriken/extending-shuriken#comments</comments>
		<pubDate>Sun, 08 Feb 2009 17:26:00 +0000</pubDate>
		<dc:creator>gyurisc</dc:creator>
				<category><![CDATA[Shuriken]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.littlebigtomatoes.com/blog/shuriken/extending-shuriken</guid>
		<description><![CDATA[This is the first of a series of articles, I am planning to write explaining how to create your own modules for extending Shuriken. In this article, the hello world is implemented for Shuriken. 
Shuriken is an application launcher&#160; that is trying to bring you the power and flexibility of the famous Quicksilver on OSX. [...]]]></description>
			<content:encoded><![CDATA[<p>This is the first of a series of articles, I am planning to write explaining how to create your own modules for extending Shuriken. In this article, the hello world is implemented for Shuriken. </p>
<p>Shuriken is an application launcher&#160; that is trying to bring you the power and flexibility of the famous Quicksilver on OSX. It is developed in .NET and C#, but you can use any .NET language to develop your own module. All you will need is Visual Studio 2008 any Express Edition or better. </p>
<h3>Setting up your project</h3>
<p>The first thing is download the latest release of Shuriken from <a href="http://www.codeplex.com/shuriken">Shuriken project site</a> on Codeplex.com and unzip it.&#160; Run it and notice that a <strong>plugin</strong> folder is created in your installation directory. </p>
<p>Next is to fire up Visual Studio.NET 2008 and create Class Library project. </p>
<p><a href="http://www.littlebigtomatoes.com/blog/wp-content/uploads/2009/02/clip-image001.png"><img title="clip_image001" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="323" alt="clip_image001" src="http://www.littlebigtomatoes.com/blog/wp-content/uploads/2009/02/clip-image001-thumb.png" width="454" border="0" /></a></p>
<p>The next is to add the <strong>Shuriken.Base.dll</strong> as a reference to your project. This dll can be found next to your Shuriken.exe and contains all the interfaces and classes that you will need to use to write your own modules. </p>
<p><a href="http://www.littlebigtomatoes.com/blog/wp-content/uploads/2009/02/clip-image0011.png"><img title="clip_image001[1]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="250" alt="clip_image001[1]" src="http://www.littlebigtomatoes.com/blog/wp-content/uploads/2009/02/clip-image0011-thumb.png" width="308" border="0" /></a></p>
<p>After adding the reference your project structure should look like this.    </p>
<h3>Subjects and Actions</h3>
<p>There are two main concepts in Shuriken, the Subject and the Action. A Subject is normally on the first pane and this is the <strong>Notepad</strong> on the picture. The Action is the second pane on the UI and in this case the <strong>Reveal</strong> action. After pressing enter the Reveal action will show the location of the Notepad subject. </p>
<p><a href="http://www.littlebigtomatoes.com/blog/wp-content/uploads/2009/02/clip-image0013.png"><img title="clip_image001[3]" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="228" alt="clip_image001[3]" src="http://www.littlebigtomatoes.com/blog/wp-content/uploads/2009/02/clip-image0013-thumb.png" width="454" border="0" /></a></p>
<p>When you write modules then you most of the time creating subjects and actions. Let’s start with the action. All we need to create a new class and implement the ISubject interface from the Shuriken.Base namespace. </p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> <span style="color: #0000ff">using</span> System;</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span> <span style="color: #0000ff">using</span> Shuriken.Base; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span> <span style="color: #0000ff">namespace</span> HelloWorldSubject</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   5:</span> {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   6:</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> HelloWorldSubject : Shuriken.Base.ISubject</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   7:</span>     {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   8:</span>         <span style="color: #cc6633">#region</span> ISubject Members</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   9:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  10:</span>         <span style="color: #0000ff">public</span> System.Collections.Generic.List&lt;IAction&gt; GetListOfActions()</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  11:</span>         {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  12:</span>             <span style="color: #0000ff">return</span> <span style="color: #0000ff">new</span> System.Collections.Generic.List&lt;IAction&gt;();</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  13:</span>         }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  14:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  15:</span>         <span style="color: #cc6633">#endregion</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  16:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  17:</span>         <span style="color: #cc6633">#region</span> IObject Members</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  18:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  19:</span>         <span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span> Description</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  20:</span>         {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  21:</span>             get { <span style="color: #0000ff">return</span> <span style="color: #006080">&quot;First Shuriken plugin ever&quot;</span>; }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  22:</span>         }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  23:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  24:</span>         <span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span> Icon</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  25:</span>         {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  26:</span>             get</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  27:</span>             {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  28:</span>                 <span style="color: #0000ff">return</span> <span style="color: #0000ff">string</span>.Empty;</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  29:</span>             }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  30:</span>             set</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  31:</span>             {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  32:</span>                 </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  33:</span>             }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  34:</span>         }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  35:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  36:</span>         <span style="color: #0000ff">public</span> <span style="color: #0000ff">string</span> Name</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  37:</span>         {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  38:</span>             get { <span style="color: #0000ff">return</span> <span style="color: #006080">&quot;Hello World!&quot;</span>; }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  39:</span>         }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  40:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  41:</span>         <span style="color: #cc6633">#endregion</span></pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  42:</span>     }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  43:</span> }</pre>
</p></div>
</div>
<p>There are couple of methods you will need to implement in your class. The first is called <strong>GetListOfActions</strong> which needs to be only returning an empty list for now. </p>
<p>The <strong>Description</strong> property is returning a string that is going to be the description for our subject. The <strong>Name</strong> property is going to be the name of this subject and the <strong>Icon</strong> will be the icon displayed. In the code I gave Hello World as the name and left the Icon property to be and empty. </p>
<p>To have something meaningful happening to our subject an action is needed as well. </p>
<div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, &#39;Courier New&#39;, courier, monospace; background-color: #f4f4f4">
<div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   1:</span> [DefaultAction]</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   2:</span> [ActionName(<span style="color: #006080">&quot;Say It&quot;</span>)]</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   3:</span> <span style="color: #0000ff">public</span> <span style="color: #0000ff">class</span> HelloWorldAction : Shuriken.Base.BaseAction</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   4:</span> {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   5:</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">override</span> <span style="color: #0000ff">bool</span> CanExecuteOn(ISubject subject)</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   6:</span>     {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   7:</span>         <span style="color: #0000ff">if</span> (subject.Name.Equals(<span style="color: #006080">&quot;Hello World!&quot;</span>))</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">   8:</span>         {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">   9:</span>             <span style="color: #0000ff">return</span> <span style="color: #0000ff">true</span>; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  10:</span>         }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  11:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  12:</span>         <span style="color: #0000ff">return</span> <span style="color: #0000ff">false</span>; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  13:</span>     }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  14:</span>&#160; </pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  15:</span>     <span style="color: #0000ff">public</span> <span style="color: #0000ff">override</span> <span style="color: #0000ff">void</span> Execute(ISubject subject)</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  16:</span>     {</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  17:</span>         System.Windows.Forms.MessageBox.Show(<span style="color: #006080">&quot;Hello World!&quot;</span>);</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"><span style="color: #606060">  18:</span>     }</pre>
<pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, &#39;Courier New&#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"><span style="color: #606060">  19:</span> }</pre>
</p></div>
</div>
<p>The HelloWorldAction is created by either implementing the <strong>IAction</strong> interface or extending the <strong>BaseAction</strong> class. I did the later for simplicity sake. Extending the BaseAction class is simpler and can be done with attributes as well. There are two attributes used <strong>DefaultAction</strong> and <strong>ActionName</strong>. </p>
<p>DefaultAction will tell Shuriken that this is the default action for the a subject, meaning that this will be the first action always. ActionName will be the name of the action.<br />
  <br />There are also two methods that we need to implement. The first method is called <strong>CanExecuteOn</strong> and it tells us, if the subject is supported by this action. The second method is called <strong>Execute</strong> and it is called when the user hits enter and the action is called. </p>
<p>After finishing the two class, you will need to compile the project and drop the <strong>HelloWorldSubject.dll</strong> to the plugin folder and restart Shuriken. Then invoke the UI and start typing Hello World…. after hitting enter you should end up with the Hello World! dialog box displaying.</p>
<p><a href="http://www.littlebigtomatoes.com/blog/wp-content/uploads/2009/02/clip-image00111.png"><img title="clip_image001[1]" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="225" alt="clip_image001[1]" src="http://www.littlebigtomatoes.com/blog/wp-content/uploads/2009/02/clip-image0011-thumb1.png" width="454" border="0" /></a></p>
<p>Shuriken is an application launcher utility, that is developed by me in my free time. It is open source and free. If you would like to download Shuriken or help to develop it, please visit Shuriken on codeplex.</p>
<p><a href="http://www.codeplex.com/shuriken">http://www.codeplex.com/shuriken</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.littlebigtomatoes.com/blog/shuriken/extending-shuriken/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Shuriken tips #1: Locating Notepad on your computer</title>
		<link>http://www.littlebigtomatoes.com/blog/shuriken/shuriken-tips-1-locating-notepad-on-your-computer</link>
		<comments>http://www.littlebigtomatoes.com/blog/shuriken/shuriken-tips-1-locating-notepad-on-your-computer#comments</comments>
		<pubDate>Thu, 05 Feb 2009 18:36:00 +0000</pubDate>
		<dc:creator>gyurisc</dc:creator>
				<category><![CDATA[Shuriken]]></category>
		<category><![CDATA[Tips'n Tricks]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://www.littlebigtomatoes.com/blog/shuriken/shuriken-tips-1-locating-notepad-on-your-computer</guid>
		<description><![CDATA[This is the first article of many showing the functionality of the application launcher I am working on. 
Sometimes you need to know the location of an application on the file system. Shuriken makes this easy for you to achieve really quickly. Let’s locate Notepad on your computer. All you need to do is to [...]]]></description>
			<content:encoded><![CDATA[<p>This is the first article of many showing the functionality of the application launcher I am working on. </p>
<p>Sometimes you need to know the location of an application on the file system. Shuriken makes this easy for you to achieve really quickly. Let’s locate <strong>Notepad</strong> on your computer. All you need to do is to bring up shuriken using <strong>Ctrl-Space</strong> or the hotkey to bring up <strong>Shuriken</strong> and type <strong>Notepad</strong>, then tab to the action pane and type <strong>Reveal</strong>. Hit <strong>Enter </strong>and the location of Notepad is revealed.&#160; </p>
<p><a href="http://www.littlebigtomatoes.com/blog/wp-content/uploads/2009/02/image.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="205" alt="image" src="http://www.littlebigtomatoes.com/blog/wp-content/uploads/2009/02/image-thumb.png" width="414" border="0" /></a> </p>
<p>and it is going to show the result the location of notepad on your computer </p>
<p><a href="http://www.littlebigtomatoes.com/blog/wp-content/uploads/2009/02/image1.png"><img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="313" alt="image" src="http://www.littlebigtomatoes.com/blog/wp-content/uploads/2009/02/image-thumb1.png" width="415" border="0" /></a> </p>
<p>Shuriken is an application launcher utility, that is developed in my free time. It is open source and free. If you would like to download Shuriken or help to develop it, please visit Shuriken on codeplex.    </p>
<p><a href="http://www.codeplex.com/shuriken">http://www.codeplex.com/shuriken</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.littlebigtomatoes.com/blog/shuriken/shuriken-tips-1-locating-notepad-on-your-computer/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some very nice icon tutorials</title>
		<link>http://www.littlebigtomatoes.com/blog/ideas/some-very-nice-icon-tutorials</link>
		<comments>http://www.littlebigtomatoes.com/blog/ideas/some-very-nice-icon-tutorials#comments</comments>
		<pubDate>Sun, 11 Jan 2009 18:24:00 +0000</pubDate>
		<dc:creator>gyurisc</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.littlebigtomatoes.com/blog/ideas/some-very-nice-icon-tutorials</guid>
		<description><![CDATA[
I am trying to learn how to make some vector art stuff and icons on my own. I am always on the look for nice tutorials. The icons I like the most are stylized illustrations of different things that we use everyday such as a compass or pencil. I though I would list my favorites: [...]]]></description>
			<content:encoded><![CDATA[</p>
<p>I am trying to learn how to make some vector art stuff and icons on my own. I am always on the look for nice tutorials. The icons I like the most are stylized illustrations of different things that we use everyday such as a compass or pencil. I though I would list my favorites: </p>
<p><img title="Design a Detailed Compass Icon in  Photoshop" style="display: inline; margin-left: 4px; margin-right: 8px" height="200" alt="  Design a Detailed Compass Icon in  Photoshop" src="http://psdtuts.s3.amazonaws.com/198_Compass_Tutorial/preview.jpg" width="200" align="left" /></p>
<p><strong><a href="http://psdtuts.com/tutorials/designing-tutorials/design-a-detailed-compass-icon-in-photoshop/#more-314">Design a Detailed Compass Icon in&#160; Photoshop</a></strong></p>
<p>Very nice compass icon done in Photoshop. I like it, because of the metal part and the reflections on the compass glass and body and the attention to details. </p>
<p><em>Another drawing tutorial for icon lovers in which we&#8217;ll be illustrating a metallic compass. We&#8217;ll be controlling shadow and reflection to add realism to the illustration. As with any icon design, it&#8217;s a combination of the overall design and subtle details that gives quality results.</em>     </p>
</p>
<p> <a href="http://psdtuts.com/tutorials/designing-tutorials/create-a-custom-mac-osx-style-ring-binder-address-book-icon/#more-313"><img title="Create a Custom Mac OSX Style Ring Binder Address Book Icon" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin: 0px; border-right-width: 0px" height="200" alt="Create a Custom Mac OSX Style Ring Binder Address Book Icon" src="http://psdtuts.s3.amazonaws.com/197_Address_Book/ring_binder_book_preview.jpg" width="200" align="left" border="0" /></a>
<p><strong><a href="http://psdtuts.com/tutorials/designing-tutorials/create-a-custom-mac-osx-style-ring-binder-address-book-icon/#more-313">Create a Custom Mac OSX Style Ring Binder Address Book Icon</a></strong></p>
<p>Mac OS like address book, again lot of attention to the details. </p>
<p><em>Today I&#8217;ll show you how to create an Address Book replacement icon for Mac OSX. When you are a beginner, it&#8217;s better to start with designing replacement icons to get some practice. Let&#8217;s get started with personalizing the icons in our workspaces.</em></p>
<p><img title="Design a Shiny Photorealistic Apple Remote" style="display: inline; margin: 0px 8px 0px 4px" alt="Design a Shiny Photorealistic Apple Remote" src="http://psdtuts.s3.amazonaws.com/120_Remote/200.png" align="left" /></p>
</p>
<p><strong><a href="http://psdtuts.com/tutorials/designing-tutorials/design-a-shiny-photorealistic-apple-remote/">Design a Shiny Photorealistic Apple Remote</a></strong></p>
<p><em>Apple has so many beautiful products. Their product designs consistently attain a sought-after status, which distinguishes them as an innovative company. In this tutorial, I&#8217;ll teach you how to make a shiny new apple remote.</em></p>
<p><em>Some extra string comes here and so the layout will be much better …..</em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><img title="Create a Shiny Lock Icon Design" style="display: inline; margin: 0px 8px 0px 4px" alt="Create a Shiny Lock Icon Design" src="http://psdtuts.s3.amazonaws.com/141_Lock_Icon/lock_icon_preview.jpg" align="left" /></p>
<p><strong><a href="http://psdtuts.com/tutorials/designing-tutorials/create-a-shiny-lock-icon-design/#more-188">Create a Shiny Lock Icon Design</a></strong></p>
<p>The gloss and reflection is very nicely done on this lock icon.</p>
<p><em>A popular icon that you can find on the internet is the lock icon. It is widely used to identify secure Web pages. </em></p>
<p><em>It often indicates password fields for secure files. Wherever you wish to place a lock icon, this tutorial will show you how to create an attractive one for you to use.</em></p>
<p> <img title="How to Create a Super Shiny Pencil Icon" style="display: inline; margin: 0px 8px 0px 4px" height="200" alt="How to Create a Super Shiny Pencil Icon" src="http://psdtuts.s3.amazonaws.com/187_Shiny_Pencil/preview.jpg" width="200" align="left" />
<p><strong><a href="http://psdtuts.com/tutorials/drawing/how-to-create-a-super-shiny-pencil-icon/#more-292">How to Create a Super Shiny Pencil Icon</a></strong></p>
<p>This is another cool looking icon, my only complaint with this is that the top part of the pencil does not look like an actual eraser, but I guess this can be fixed by changing the color and removing the reflection.</p>
<p><em>The Pencil is one of the visual metaphors most used to express creativity. In this tutorial, I&#8217;ll show you how to draw a pencil icon. We&#8217;ll have a look at gradients, selection tools, and basic transform operations. Let&#8217;s have some fun with this. </em></p>
<p><em></em></p>
<p><em></em></p>
<p><em></em></p>
<p><img title="How to Make a Bangin’ Woofer Embedded in Wood" style="display: inline; margin: 0px 8px 0px 4px" height="200" alt="How to Make a Bangin’ Woofer Embedded in Wood" src="http://psdtuts.s3.amazonaws.com/193_Speaker_Woofer/preview.jpg" width="200" align="left" /><em></em></p>
<p><strong><a href="http://psdtuts.com/tutorials/drawing/how-to-make-a-bangin-woofer-embedded-in-wood/#more-303">How to Make a Bangin’ Woofer Embedded in Wood</a></strong></p>
<p><em>In this tutorial, we&#8217;ll illustrate a woofer and make a simple wood texture for the background. We&#8217;ll place the speaker so that it appears to be inside the wood texture. Also, we&#8217;ll create screws that appear to hold it in place. Put some good music on and lets get working!</em></p>
<p>&#160;</p>
<p><em></em></p>
<p><em></em></p>
<p> <em></em>
<p><img title="Illustrating a Cool Glass of Beer" style="display: inline; margin: 0px 8px 0px 4px" height="200" alt="Illustrating a Cool Glass of Beer" src="http://psdtuts.s3.amazonaws.com/184_Beer_Glass/preview.jpg" width="200" align="left" /><strong><a href="http://psdtuts.com/tutorials/drawing/illustrating-a-cool-glass-of-beer/#more-285">Illustrating a Cool Glass of Beer</a></strong></p>
<p><em>In this tutorial, we&#8217;re going to draw a beer glass with some beer in it. We&#8217;ll create the shiny curly glass with reflection, put some beer in it, add some bubbles, and finally we&#8217;ll make the shadow and the reflections. Meanwhile, I hope you&#8217;ll have some fun and learn some cool techniques too.</em></p>
<p>&#160;</p>
<p>I try to collect more of these tutorials in the future and post them as I have them. If you know some, please share with me…. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.littlebigtomatoes.com/blog/ideas/some-very-nice-icon-tutorials/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.568 seconds -->
