<?xml version="1.0" encoding="UTF-8"?>
<rss 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/" version="2.0">

<channel>
	<title>Julien Templier</title>
	
	<link>http://www.templier.info</link>
	<description>"It's not under construction, just perpetually unfinished"</description>
	<lastBuildDate>Fri, 21 Oct 2011 12:58:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/JulienTemplier" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="julientemplier" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Ring engine status update (October 2011)</title>
		<link>http://www.templier.info/2011/10/21/ring-engine-status-update-october-2011/</link>
		<comments>http://www.templier.info/2011/10/21/ring-engine-status-update-october-2011/#comments</comments>
		<pubDate>Fri, 21 Oct 2011 12:58:50 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[ScummVM]]></category>

		<guid isPermaLink="false">http://www.templier.info/2011/10/21/ring-engine-status-update-october-2011/</guid>
		<description><![CDATA[There hasn’t been a lot of visible changes since the last status update, but a couple of small graphic problems have been fixed: Alpha transparency drawing is implemented (resulting in correct drawing of ok/cancel buttons) Default menu cursors are now shown properly Dialog box messages with no message type are displayed properly Button highlights are [...]]]></description>
			<content:encoded><![CDATA[<p>There hasn’t been a lot of visible changes since the last status update, but a couple of small graphic problems have been fixed:</p>
<ul>
<li>Alpha transparency drawing is implemented (resulting in correct drawing of ok/cancel buttons)</li>
<li>Default menu cursors are now shown properly</li>
<li>Dialog box messages with no message type are displayed properly</li>
<li>Button highlights are drawn in the correct order (Common::sort is unstable, resulting in an incorrect drawing order when images have the same priority)</li>
</ul>
<p>Behind the scenes though, a lot has been done: most of the Pompeii game logic is now implemented, along with proper timer handling and there has been some work done on movies, sound and the 360° view.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.templier.info/2011/10/21/ring-engine-status-update-october-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Delivery Tracker 1.0 Build 978</title>
		<link>http://www.templier.info/2011/10/16/delivery-tracker-1-0-build-978/</link>
		<comments>http://www.templier.info/2011/10/16/delivery-tracker-1-0-build-978/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 17:59:46 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[DeliveryTracker]]></category>

		<guid isPermaLink="false">http://www.templier.info/2011/10/16/delivery-tracker-1-0-build-978/</guid>
		<description><![CDATA[A new version of Delivery Tracker has just been released. It now supports tracking packages via TNT and includes small fixes for UPS and USPS. You can also start tracking packages by clicking the reference number in the info panel. This is especially useful for Amazon packages if you want to track each package separately. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.templier.info/wp-content/uploads/2011/10/Icon.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 2px 0px 5px 10px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="Icon" border="0" alt="Icon" align="right" src="http://www.templier.info/wp-content/uploads/2011/10/Icon_thumb.png" width="150" height="150" /></a>A new version of Delivery Tracker has just been released. It now supports tracking packages via TNT and includes small fixes for UPS and USPS. You can also start tracking packages by clicking the reference number in the info panel. This is especially useful for Amazon packages if you want to track each package separately.</p>
<p><u>Note</u>: Auto-update is broken in the previous beta build, so you will have to download the new one manually.</p>
<p>You can <a href="http://assets.3oakscrossing.com/apps/DeliveryTracker/notes/notes-1.0.978.html">read the release notes</a> and <a href="http://assets.3oakscrossing.com/apps/DeliveryTracker/builds/latest/DeliveryTracker.exe">download the new version</a> now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.templier.info/2011/10/16/delivery-tracker-1-0-build-978/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Small Ring engine update</title>
		<link>http://www.templier.info/2011/09/22/small-ring-engine-update/</link>
		<comments>http://www.templier.info/2011/09/22/small-ring-engine-update/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 10:23:38 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[ScummVM]]></category>

		<guid isPermaLink="false">http://www.templier.info/2011/09/22/small-ring-engine-update/</guid>
		<description><![CDATA[Just a quick update to say that several graphic problems have been fixed since the last status update: Most images are no longer drawn at wrong coordinates (for example the dialog boxes or some screen elements in the preferences) The first line of images is now being drawn properly (fixing corruption that appeared in some [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.templier.info/wp-content/uploads/2011/09/Ring-Graphics-update.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; float: right; padding-top: 0px; border: 0px;" title="Ring - Graphics update" src="http://www.templier.info/wp-content/uploads/2011/09/Ring-Graphics-update_thumb.png" alt="Ring - Graphics update" width="289" height="231" align="right" border="0" /></a>Just a quick update to say that several graphic problems have been fixed since the last status update:</p>
<ul>
<li>Most images are no longer drawn at wrong coordinates (for example the dialog boxes or some screen elements in the preferences)</li>
<li>The first line of images is now being drawn properly (fixing corruption that appeared in some cases)</li>
<li>Some 32bpp images are now shown properly (it converts them from 32bpp to 16bpp on the fly until we get full support for 32bpp screen surfaces), but with graphics problems when the game is expecting alpha transparency</li>
<li>Image cursors are shown with the correct coordinates/colors (downsampling from 32bpp to 16bpp here too)</li>
<li>Highlights now work on menu entries and dialog options</li>
<li>AND the decompression problem has been fixed (by a single line change&#8230;) !</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.templier.info/2011/09/22/small-ring-engine-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ring engine status update (September 2011)</title>
		<link>http://www.templier.info/2011/09/15/ring-engine-status-update/</link>
		<comments>http://www.templier.info/2011/09/15/ring-engine-status-update/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 12:51:00 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[ScummVM]]></category>

		<guid isPermaLink="false">http://www.templier.info/2011/09/15/ring-engine-status-update/</guid>
		<description><![CDATA[Since the first commit at the end of January 2011, the ring engine has come a long way. Most of the shared engine code for Ring and Faust has been implemented, along with the whole logic for Ring and a sizable chunk of logic for Faust. The main game view (the 360° view) is not [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.templier.info/wp-content/uploads/2011/09/ScummVM-The-Ring.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; float: right; padding-top: 0px; border-width: 0px;" title="ScummVM - The Ring" src="http://www.templier.info/wp-content/uploads/2011/09/ScummVM-The-Ring_thumb.png" alt="ScummVM - The Ring" width="289" height="231" align="right" border="0" /></a>Since the first commit at the end of January 2011, the <a href="https://github.com/Littleboy/scummvm/tree/ring" target="_blank">ring engine</a> has come a long way. Most of the shared engine code for Ring and Faust has been implemented, along with the whole logic for Ring and a sizable chunk of logic for Faust.</p>
<p>The main game view (the 360° view) is not yet implemented, but there is enough display code present to show the game menu in Ring (as well as several submenus). As you can see in the screenshot, there is some image corruption present, due to problems with the image decompression.</p>
<p>And that brings us to the compression algorithms used by the engine: one thing is clear, the original developers loved coming up with new compression types (I’m thinking there was a bet on how many such algorithms they could fit in a single engine). BMP, TGA, WAV (compressed as a whole or streamed), CNM (movies), AQC (360° view data) each use a different variation of the algorithm (with a large amount of duplicated code of course of course, it wouldn’t be fun otherwise!).</p>
<p>And for the next games in the series, they decided to share a single compression format for all images in archives. So in addition to the old compression formats from Ring, Faust introduces a new format, also used for movies…</p>
<p><img src="http://imgs.xkcd.com/comics/standards.png" alt="" /></p>
<p>The new compression code also uses floating point, which makes it quite a bit harder to reverse-engineer. And since most images are inside archives, Faust and the following games are not displaying anything yet.</p>
<p>I’m currently working on implementing the new set of “widgets” used by Pompei and Jerusalem. It includes a dialog selection widget (mostly done) and a hyperlinked encyclopedia (only started reverse-engineering in IDA).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.templier.info/2011/09/15/ring-engine-status-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Delivery Tracker 1.0 Build 962</title>
		<link>http://www.templier.info/2011/09/15/delivery-tracker-1-0-build-962/</link>
		<comments>http://www.templier.info/2011/09/15/delivery-tracker-1-0-build-962/#comments</comments>
		<pubDate>Thu, 15 Sep 2011 11:13:31 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[DeliveryTracker]]></category>

		<guid isPermaLink="false">http://www.templier.info/2011/09/15/delivery-tracker/</guid>
		<description><![CDATA[A new version of Delivery Tracker has just been released with lots of fixes and improvements across the board. In addition to the provider updates, the new version adds support for the recent items list on Windows 7, allowing you to open a recently tracked package directly. You can read the release notes and download [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.templier.info/wp-content/uploads/2011/09/JumplistFade.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="JumplistFade" border="0" alt="JumplistFade" align="right" src="http://www.templier.info/wp-content/uploads/2011/09/JumplistFade_thumb.png" width="288" height="157" /></a>A new version of Delivery Tracker has just been released with lots of fixes and improvements across the board. In addition to the provider updates, the new version adds support for the recent items list on Windows 7, allowing you to open a recently tracked package directly.</p>
<p>You can <a href="http://assets.3oakscrossing.com/apps/DeliveryTracker/notes/notes-1.0.962.html" target="_blank">read the release notes</a> and <a href="http://assets.3oakscrossing.com/apps/DeliveryTracker/builds/latest/DeliveryTracker.exe" target="_blank">download the new version</a> now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.templier.info/2011/09/15/delivery-tracker-1-0-build-962/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asylum engine update (July 2011)</title>
		<link>http://www.templier.info/2011/07/31/asylum-engine-update-july-2011/</link>
		<comments>http://www.templier.info/2011/07/31/asylum-engine-update-july-2011/#comments</comments>
		<pubDate>Sun, 31 Jul 2011 19:25:00 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[ScummVM]]></category>

		<guid isPermaLink="false">http://www.templier.info/2011/07/31/asylum-engine-update-july-2011/</guid>
		<description><![CDATA[I’ve recently spent some time on the asylum engine, implementing the missing logic and display code and fixing problems in the already implemented code. The logic and actor code is now almost complete and most of the puzzle-specific code has been implemented. Quite a bit of time has been spent on the drawing code and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.templier.info/wp-content/uploads/2011/09/Sanitarium-Masked.png"><img style="background-image: none; margin: 2px 0px 5px 10px; padding-left: 0px; padding-right: 0px; display: inline; float: right; padding-top: 0px; border-width: 0px;" title="Sanitarium - Masked drawing with debug rects" src="http://www.templier.info/wp-content/uploads/2011/09/Sanitarium-Masked_thumb.png" alt="Sanitarium - Masked drawing with debug rects" width="289" height="231" align="right" border="0" /></a>I’ve recently spent some time on the <a href="https://github.com/Littleboy/scummvm/tree/asylum" target="_blank">asylum engine</a>, implementing the missing logic and display code and fixing problems in the already implemented code.</p>
<p>The logic and actor code is now almost complete and most of the puzzle-specific code has been implemented.</p>
<p>Quite a bit of time has been spent on the drawing code and Max is now drawn with the correct priority. Masked blit has also been implemented, although it is still very buggy (as can be seen on the screenshot). Palette fading is present now (with some small bugs left to fix), making transitions from the menu to a new scene or a movie a lot nicer.</p>
<p>We also tracked down several major bugs, making the text drawing orders of magnitude faster and finally allowing Max to leave his cell. Alexander (midstream) and Alex (alexbevi) contributed quite a bit (implementing almost all the functionality for the missing puzzles and debugging and fixing several problems).</p>
<p>I’m going to be back on Ring for a bit, but the amount of work needed to put the engine in a mergeable state is now a lot less.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.templier.info/2011/07/31/asylum-engine-update-july-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DockletX 1.2</title>
		<link>http://www.templier.info/2011/05/04/dockletx-1-2/</link>
		<comments>http://www.templier.info/2011/05/04/dockletx-1-2/#comments</comments>
		<pubDate>Wed, 04 May 2011 12:38:00 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[DesktopX]]></category>
		<category><![CDATA[ObjectDock]]></category>

		<guid isPermaLink="false">http://www.templier.info/2011/05/04/dockletx-1-2/</guid>
		<description><![CDATA[DockletX has been updated with support for ObjectDock 2. DockletX is a DesktopX plugin that allows you to use ObjectDock docklets on your desktop. Full changelog Add support for ObjectDock 2 Blacklist Weather docklet (it doesn&#8217;t work outside of ObjectDock as-is) You can download DockletX from Wincustomize.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.templier.info/wp-content/uploads/2011/09/DockletX-Preview.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="DockletX-Preview" border="0" alt="DockletX-Preview" align="right" src="http://www.templier.info/wp-content/uploads/2011/09/DockletX-Preview_thumb.jpg" width="280" height="235" /></a>DockletX has been updated with support for ObjectDock 2. DockletX is a DesktopX plugin that allows you to use ObjectDock docklets on your desktop.</p>
<p><em>Full changelog</em></p>
<ul>
<li><em>Add support for ObjectDock 2</em></li>
<li><em>Blacklist Weather docklet (it doesn&#8217;t work outside of ObjectDock as-is)</em></li>
</ul>
<p>You can <a href="http://www.wincustomize.com/explore/desktopx_objects/4480/" target="_blank">download</a> DockletX from Wincustomize.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.templier.info/2011/05/04/dockletx-1-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weather Script Component</title>
		<link>http://www.templier.info/2009/07/23/weather-script-component/</link>
		<comments>http://www.templier.info/2009/07/23/weather-script-component/#comments</comments>
		<pubDate>Thu, 23 Jul 2009 12:22:00 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[DesktopX]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.templier.info/2009/07/23/weather-script-component/</guid>
		<description><![CDATA[Hey all! For the past few days, I&#8217;ve been working on a weather script component. It takes the form of an independent .wsc script file that you reference in your widget script (setting up license info and registering callbacks), calling a few methods and getting weather/location/alert data in the form of a script object with [...]]]></description>
			<content:encoded><![CDATA[<p>Hey all!</p>
<p>For the past few days, I&#8217;ve been working on a weather script component. It takes the form of an independent .wsc script file that you reference in your widget script (setting up license info and registering callbacks), calling a few methods and getting weather/location/alert data in the form of a script object with several properties.</p>
<p>Using this new script means rewriting a lot of the existing weather objects script, only keeping the UI handling in the widget scripts and delegating all the weather stuff to the component. It&#8217;s not a short term solution for authors that need to update their widgets in the next few days, but I think it&#8217;s the easier and more maintainable solution in the long run, as it would finally do away with the duplicated and slightly tweaked weather code in all weather widgets.</p>
<p>The plan is to support several widget providers in the same script, in a mostly transparent way. Right now, I&#8217;m planning to have the following providers (in this order):</p>
<ul>
<li>wunderground</li>
<li>weatherbug</li>
<li>weather.com</li>
<li>METAR (their xml doesn&#8217;t seem too nice to parse and their text only data looks like it&#8217;s getting right out of an old mainframe)</li>
<li>accuweather</li>
</ul>
<p><strong>Using the script</strong></p>
<p>I&#8217;ve tried to make the API as simple as possible, hiding most of the complexity in the script component.</p>
<p>To start using the weather component, you need to create a new instance of the script and register callbacks. Those are functions that will be called when new weather data is available.</p>
<pre class="brush: vb; gutter: true">Set WeatherController = GetObject("script:" &amp; LIB_FOLDER &amp; "Weather.wsc")

WeatherController.RegisterCallbacks GetRef("OnLocations"), _
                                    GetRef("OnWeather"), _
                                    GetRef("OnAlerts"), _
                                    GetRef("OnForecast"), _
                                    GetRef("OnCameras"), _
                                    GetRef("OnError")

Set WeatherController = GetObject("script:" &amp; LIB_FOLDER &amp; "Weather.wsc") 

WeatherController.RegisterCallbacks GetRef("OnLocations"), _
                                    GetRef("OnWeather"), _
                                    GetRef("OnAlerts"), _
                                    GetRef("OnForecast"), _
                                    GetRef("OnCameras"), _
                                    GetRef("OnError")</pre>
<p>You can then get a list of supported providers to let the user choose the one he wants, of simply hardcode the provider you want. If the provider requires a license key, you can also set it at this time, as well as the unit system to use.</p>
<pre class="brush: actionscript3; gutter: true">WeatherController.SetProvider "WUnderground"

' Default is True
WeatherController.UseMetricSystem = True

' This will be ignored by the WUnderground provider as it does not use a license key
WeatherController.SetLicense "my_id", "my_key"</pre>
<p><strong>Contributing</strong></p>
<p>Once the API is stable, I&#8217;ll update this post and if you want to help me add support for the other weather site, let me know!</p>
<p>If you want to use the script and there is some functionality that seems to be missing, post here or PM me and we&#8217;ll see if it can be added.</p>
<p><strong>Download</strong></p>
<p>I&#8217;m still working on the script and the API is still in flux, but you can get a look at it <a href="http://code.google.com/p/threeoaks/source/browse/trunk/DesktopX/Scripts/Weather/Weather.wsc">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.templier.info/2009/07/23/weather-script-component/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extended System Control plugin for DesktopX</title>
		<link>http://www.templier.info/2009/06/22/extended-system-control-plugin-for-desktopx/</link>
		<comments>http://www.templier.info/2009/06/22/extended-system-control-plugin-for-desktopx/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 11:16:38 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[DesktopX]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.templier.info/2009/06/22/extended-system-control-plugin-for-desktopx/</guid>
		<description><![CDATA[The plan for this plugin is to include all system-related functionality that isn’t already available in the DesktopX System namespace. &#160; Download You can download a test version here (set to expire on 10/5/2009). If you have ideas for stuff to add to this plugin, feel free to post them on the DesktopX 4.x request [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.templier.info/wp-content/uploads/2009/06/image3.png"><img style="border-right-width: 0px; margin: 2px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="right" src="http://www.templier.info/wp-content/uploads/2009/06/image_thumb3.png" width="360" height="199" /></a> </p>
<p>The plan for this plugin is to include all system-related functionality that isn’t already available in the DesktopX System namespace.</p>
<p>&#160;</p>
<p><strong>Download</strong></p>
<p>You can download a test version <a href="http://www.templier.info/wp-content/uploads/2009/07/DXSystemEx.zip">here</a> (set to expire on 10/5/2009).</p>
<p>If you have ideas for stuff to add to this plugin, feel free to post them on the <a href="http://forums.wincustomize.com/345094">DesktopX 4.x request thread</a>.</p>
<p>&#160;</p>
<p><strong>Plugin Information</strong></p>
<p><u>Mouse wheel</u></p>
<ul>
<li>SystemEx_OnMouseWheel(rotation) </li>
<li>SystemEx_OnMButtonDown(x, y) </li>
<li>SystemEx_OnMButtonUp(x, y, dragged) </li>
</ul>
<p><u>Monitor information</u></p>
<ul>
<li>Monitors </li>
<li>NumberOfMonitors </li>
<li>GetMonitor(index) </li>
</ul>
<p>MonitorInfo object:</p>
<ul>
<li>IsPrimary </li>
<li>Left </li>
<li>Top </li>
<li>Bottom </li>
<li>Right </li>
</ul>
<p><u>Volume</u></p>
<ul>
<li>Volume </li>
<li>Mute </li>
<li>PeakValue (read-only) </li>
<li>SystemEx_OnVolumeEvent(volume) </li>
<li>SystemEx_OnMuteEvent(isMuted) </li>
</ul>
<p><u>Instance</u></p>
<ul>
<li>CommandLine</li>
<li>CommandLineArgs</li>
<li>IsFirstInstance </li>
<li>SystemEx_OnNewInstance(commandLineArgs)</li>
</ul>
<p><u>Misc</u></p>
<ul>
<li>VerifySignature(path, signature, type) </li>
</ul>
<p>&#160;</p>
<p><strong>Documentation</strong></p>
<p><em>Mouse wheel</em></p>
<p><u>SystemEx_OnMouseWheel(rotation)</u></p>
<p>When the mouse is over the object and the mousewheel is used, the <u>SystemEx</u>OnMouseWheel     <br />function will be called with the wheel rotation passed as a parameter. </p>
<p>The wheel rotation will be in number of lines. </p>
<p>Default value: 3    <br />Default value for page scrolling: 10 </p>
<p>A positive value indicates that the wheel was rotated forward, away from the user;    <br />a negative value indicates that the wheel was rotated backward, toward the user. </p>
<p><u>SystemEx_OnMButtonDown(x, y) &amp; SystemEx_OnMButtonUp(x, y, dragged)</u></p>
<p>When you middle click on your object, the <u>SystemEx</u>_OnMButtonDown function will be     <br />called. When you release the button, the<u>SystemEx</u>_OnMButtonUp function will be called. </p>
<p>Both functions will have the mouse coordinates relative to your object passed as    <br />parameters.</p>
<p>&#160;</p>
<p><em>Monitor Information</em></p>
<p>This one was asked by Zubaz to better handle multi-monitor systems. As it turns out, the virtual screen coordinates are not nearly enough to be able to position objects on multi-monitor systems. WMI is exposing monitor information, but it does not seems to work reliably (it only gives information for the first monitor on my system for example).</p>
<p><u><em>SystemEx.Monitors</em></u></p>
<p>Gets an array of MonitorInfo objects</p>
<p><em><u>SystemEx.GetMonitor(index)</u></em></p>
<p>Returns the MonitorInfo for the given screen</p>
<p><em><u>SystemEx.NumberOfMonitors</u></em></p>
<p>Gets the number of monitors on the machine</p>
<p>&#160;</p>
<p><em>Volume Information</em></p>
<p><u>SystemEx_OnVolumeEvent(volume)</u></p>
<p>When the user change the master volume through the volume mixer or another application    <br />your object callback is called. The volume parameter will contain the current master     <br />volume. </p>
<p>XP Compatibility: never called. </p>
<p><u>SystemEx_OnMuteEvent(isMuted)</u></p>
<p>If the volume is muted, your object callback is called.    <br />isMuted will be True if the volume has been muted, false otherwise. </p>
<p>XP Compatibility: never called. </p>
<p><u>SystemEx.Volume</u></p>
<p>Sets or gets the master volume. </p>
<p>Usage:&#160; <br />SystemEx.Volume = &lt;volume&gt;     <br />&lt;volume&gt; = SystemEx.Volume </p>
<p>&lt;volume&gt; should/will be between 0 and 100. Any value outside these bounds will be capped. </p>
<p><u>SystemEx.Mute</u></p>
<p>Mute or un-mute the audio stream </p>
<p>Usage:    <br />SystemEx.Mute = True     <br />isMuted = SystemEx.Mute </p>
<p>Mute can take two values: True and False.    <br />If Mute is True the audio stream is muted, otherwise it is not muted. </p>
<p><u>SystemEx.PeakValue</u></p>
<p>This is a read-only property. It allows you to get the peak level value for the    <br />currently playing sample. </p>
<p>Usage:&#160; <br />level = SystemEx.PeakValue     <br />level will be between 0 and 100. </p>
<p>XP Compatibility: might not work with some cards, in which case it will always&#160; returns 100.    <br />It reads from the waveout device, so it won&#8217;t work when reading from a CD for example.</p>
<p>&#160;</p>
<p><em>Instance Information</em></p>
<p><u>SystemEx.CommandLine</u></p>
<p>Get the full command line (including the path to the executable and DesktopX-specific arguments) </p>
<p><u>SystemEx.CommandLineArgs</u></p>
<p>Get an array of command line arguments.   <br />Command line arguments have been cleaned up to remove DesktopX-specific arguments (in the case of single-exe gadgets) </p>
<p><u>SystemEx.IsFirstInstance</u></p>
<p>Will be True if this is the first instance to run, False otherwise.   <br />It is preferable to check for it at startup and close the gadget accordingly,    <br />as only the first instance will receive a callback message when a new instance is started. </p>
<p><u>SystemEx_OnNewInstance(commandLineArgs)</u></p>
<p>Gets called when another instance is started. The command line arguments are passed in an array.</p>
<p>&#160;</p>
<p><em>Misc Information</em></p>
<p><u>SystemEx.VerifySignature(path, signature, type)</u>     <br />Check the signature of the file pointed to by path. </p>
<p>The only type of signature supported at this time is SIGNATURE_SHA1</p>
<p>&#160;</p>
<p><strong>Changelog</strong></p>
<p>1.0 Build 228:</p>
<ul>
<li>Renamed to DXSystemEx (plugin namespace is now SystemEx) </li>
<li>Added SHA1 signature check </li>
<li>Added MouseWheel and Middle button click callbacks (merged from DXMouseWheel) </li>
<li>Added Master volume control / Mute / Peak (merged from DXVolumeControl) </li>
<li>Added instance information (merged from DxInstance)</li>
</ul>
<p>1.0 Build 205:</p>
<ul>
<li>First test version </li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.templier.info/2009/06/22/extended-system-control-plugin-for-desktopx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DXInstance: command line &amp; single instance plugin for DesktopX</title>
		<link>http://www.templier.info/2009/06/17/dxinstance-command-line-single-instance-plugin-for-desktopx/</link>
		<comments>http://www.templier.info/2009/06/17/dxinstance-command-line-single-instance-plugin-for-desktopx/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 07:02:45 +0000</pubDate>
		<dc:creator>Julien</dc:creator>
				<category><![CDATA[DesktopX]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.templier.info/2009/06/17/dxinstance-command-line-single-instance-plugin-for-desktopx/</guid>
		<description><![CDATA[This is a very small plugin for DesktopX that exposes command line information in your scripts, allowing you to act on certain parameters. It also adds a new callback that is called when another instance is started and gives you its command line arguments. Use associate a gadget to a custom file type and be [...]]]></description>
			<content:encoded><![CDATA[<p>This is a very small plugin for DesktopX that exposes command line information in your scripts, allowing you to act on certain parameters. It also adds a new callback that is called when another instance is started and gives you its command line arguments.</p>
<p><strong>Use</strong></p>
<ul>
<li>associate a gadget to a custom file type and be able to do custom processing when called with the file path as an argument. </li>
<li>make the &quot;Tasks&quot; category of the jump list in Windows 7 usable (they are shortcuts and supposed to be available even if the application is not running, so they need to be shortcuts to the single exe, not the extracted one). </li>
<li>handle any other custom command line arguments like a normal application. </li>
</ul>
<p><strong></strong></p>
<p><strong>Documentation</strong></p>
<p>Remember to select “Allow multiple instances of the application to run” when exporting your gadget!</p>
<p>Here are the new functions/callbacks available to your scripts:</p>
<p><em>Instance.CommandLine</em></p>
<p>Get the full command line (including the path to the executable and DesktopX-specific arguments)</p>
<p><em>Instance.CommandLineArgs</em></p>
<p>Get an array of command line arguments. Command line arguments have been cleaned up to remove DesktopX-specific arguments (in the case of single-exe gadgets)</p>
<p><em>Instance.IsFirstInstance</em></p>
<p>Will be True if this is the first instance to run, False otherwise. It is preferable to check for it at startup and close the gadget accordingly, as only the first instance will receive a callback message when a new instance is started.</p>
<p><em>Instance_OnNewInstance(commandLineArgs)</em></p>
<p>Gets called when another instance is started. The command line arguments are passed in an array.</p>
<p><strong></strong></p>
<p><strong>Download </strong></p>
<p>This plugin functionality is now part of the DXSystemEx plugin. You can get more information in this <a href="http://www.templier.info/2009/06/22/extended-system-control-plugin-for-desktopx/">blog post</a>.</p>
<p>&#160;</p>
<p><em>Note:</em> This plugin will not work with single-exe gadgets (or widgets)! Due to the way simple deployment gadget’s command line is handled, adding arguments will result in the gadget not even starting (it’s treating almost any command line argument as a path&#8230;). I sent a bug report/request to Stardock, but in the meantime, you will have to use custom deployment. I have a binary patch available for DXAppCustom.bin that fixes the command line parsing and allows gadgets to get the original command line (but disables ObjectBar-related code as it’s kind of a hack), so it’s definitely fixable. Let’s hope the next version of DX will have a fix.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.templier.info/2009/06/17/dxinstance-command-line-single-instance-plugin-for-desktopx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

