Brad Wardell's Blog


DesktopX Journal: Day 7

Published on Sunday, March 13, 2005 By Brad Wardell In DesktopX

DesktopX is about being able to take your Windows desktop and add stuff beyond icons. And it does this by letting you add objects to the Windows desktop.  What is done with those objects, depends on the user.  You can take those objects and put them together and build an entirely new desktop. Or you could put them together into a mini-application and export them as a widget.

Widgets have become pretty popular because they take up less memory than a normal program but can do the same kinds of things as a program.  And enough time has passed that a few common widgets have emerged -- clocks, calendars, weather monitors, stock tickers, MP3 players, etc. 

In most "widget" enabling programs, all widgets are created in a scripting language (JavaScript or VB Script typically).  This is good but it does require that the person making the widget be reasonably technically knowledgeable.

But if we know what kinds of widgets people are making, can we not make it a bit easier? That's where the "Additional Abilities" feature of DesktopX come in. Additional abilities come in the form of plugins. Plugins take care of most of the work for the widget developer and typically provide a GUI configuration to allow developers to determine the specific functionality of their objects without coding.

One plugin that has been heavily revamped for DesktopX 3 is DXPlayer.  DXPlayer was designed to make it much easier to create media players with DesktopX.  In fact, it is easier to create really slick looking MP3 players with DesktopX than it is to create them using Winamp 5 (modern) or Windows Media Player.

Let's take a look at just how easy that is.


The first step is to create a DesktopX object.


Now we need to give our object an image. This is just a matter of getting a PNG file. So here's a play PNG image.


For my "play" button I want to have a mouse down state. No problem, very easy.


Next, I want to create my other objects. To save time, I'll right click on my play button object and clone it a few times and assign them images.


So here's where we're at. I've got a background image and 3 buttons.  Next I'll create the track name text.


So I create the object, go to the states tab, on appearance I make it a "text" object. Then I change its color to be white.
 

 


Now it's time to start making these buttons and things to something. So I go back to the general tab on each object, press the "add button" and pick the "DXPlayer" plugin.


Now I select it and press "Configure". The first button I choose play, the next one I choose "pause/resume" and the last button I choose "Next".


For the text, I don't want it to be a button but rather a text display so I choose that from the combo box and then choose "track name".


Now I group them together.


And finally export it as a widget.


The DXPlayer plugin already supports Winamp, iTunes, CoolPlayer, ObjectMedia, or an Internal player which requires no external media player at all but rather works with the OS directly. It typically makes sense to let DXPlayer choose what to use so that other people will be able to easily use it with whatever their media player of choice is.  But obviously if you want it to be stand-alone you'll want it to be internal.

Now obviously this is a very simple player. There are MP3 players with play lists, equalizers, album pictures, animations, etc.  But you get the idea.

Here's my final widget, total time taken (including taking screenshots): ~ 3 minutes.

The ability for developers to pick between plugins (or even make their own plugins) or do it in script is one of the major advantages of using DesktopX.  Over time, hopefully third party developers will create plugins (the plugin development guide can be found here). But Stardock plans to create more as well over time. There's plugins for creating resource meters of various kinds, clocks (one reason we have so many clocks, and several other kinds). 

Have fun!

 

Sometimes what you think you hear is better

Published on Friday, March 11, 2005 By Brad Wardell In Music

I stumbled across a song called "Sugar" from Imperial Teen.  I really like the song but I had a hard time telling what the lyrics were.  But the mind, at least mine, fills in the blanks with its own lyrics. And so my mind filled in lyrics that turned it into a pretty romantic song.

But it was bugging me, what are the lyrics to that song? Well it turns out these are:

You can be white
I can be brown again
We have to go hide
'Cause your mother's in town again

And I wanna take you home
And I wanna take you back

I'm on the ground
You're in the air again
Releasing the hounds
You wanted a harlequin

And I wanna take you home
And I wanna take you back

And I wanna take you home
And I wanna take you back (Sugar sugar)
(Sugar sugar)

I'm cutting the wire (Sugar sugar)
There's nobody listening (Sugar sugar)
Slashing the tires (Sugar sugar)
Made you late for the christening (Sugar sugar)

And I wanna take you home
And I wanna throw you back
And I wanna take you home
And the screen just turns to black

It's hot, it's warm, it's cool, all right
I kiss, you take another bite
You said, "Just stay away from light"
Down here I'm not afraid of height

And I wanna take you home
'Cause I wanna take it back
And I wanna take you home
And the screen just turns to black (Sugar sugar)
(Sugar sugar)
(Sugar sugar)
(Sugar sugar)
(Sugar sugar)
(Sugar sugar)
(Sugar sugar)
(Sugar sugar)
(Sugar sugar)
(Sugar sugar)
(Sugar sugar)

Huh? What the hell does that mean? That sounds like nonsense! So then I started looking at other songs I liked but couldn't quite hear the lyrics. It turns out that many many songs have utterly ridiculous, nonsensical lyrics. Maybe there's a deeper meaning that is personal to the artist. But it's amazing that people can put together great music but can't write coherent lyrics that seem to go anywhere beyond just rhyming.

Even popular songs you hear end up doing that. Avril Lavigne's "My happy ending" uses the word "dead" to rhyme with the word..."dead". Huh? You couldn't think of more words that rhyme with dead that you end up using the word dead twice?

Luckily they're judged on the music and not the lyrics, because they may be good song writers but poets..they are not.

DesktopX Journal: Day 6

Published on Thursday, March 10, 2005 By Brad Wardell In DesktopX

In the good old days, the only things that lived on your desktop were icons.  Ah, icons. So safe and predictable. Icons, after all, are all static pictures that are typically 32 pixels wide and 32 pixels tall.

When DesktopX 1 was released 5 years ago, a new type of content was added to the Windows desktop - objects.  Objects could be any shape or size.  And that was great for people who wanted to create their own stuff.  But most users want some conformity.  In recent years, mini-applications called "widgets" now populate the desktops of many users.  And the best widgets tend to follow a consistent style.

For DesktopX 3, Stardock wanted to go with its own, unique look for how the included "widget" content would be done.  So we sat down and looked at what was available.  Most widgets tend to have a "glassy" look to them. The style we were most influenced by was the "Aero" look from Microsoft's upcoming "Longhorn".  But we didn't just want to take the Aero-style. We wanted our DesktopX widgets to have their own distinctive look and feel.

So Scott Tykoski (BoogieBac) and Paul Boyer (Mormegil) came up with "Silica".  A crystallized design that is used throughout many of the included DesktopX 3 widgets.

While many of the DesktopX 3 widgets include a user interface for changing the color, they can also have their color changes from their preference dialog. Below you can see an example of the generic properties dialog that every widget gets. The second page even lets users assign a hot key for bringing up their widgets or hiding them all (if you're worried about getting your desktop "cluttered" have no fear.

One of the new features of DesktopX 3 is the ease developers can add their own custom preference page to the widget properties page. This is useful on things like Disk space meters where the user might want to display the space free on a particular hard disk.

Obviously, coming up with any particular style for the widgets is tricky. Even picking the right size is important.  We had felt that too many DesktopX widgets were far far too big.  The Silica widgets tend to be quite small in size. Usability over flash.

Hopefully users will find the design of the Silica widgets to be both aesthetically pleasing and very useful.

Stardock also hopes (And gives permission) for widget authors to freely use the Silica artwork for the creation of DesktopX widgets so that users can look forward to a consistent look and feel for their desktops.

DesktopX 3 Beta on Object Desktop

Published on Thursday, March 10, 2005 By Brad Wardell In WinCustomize News

Stardock has put the BETA version of DesktopX 3 Standard onto Object Desktop (via Stardock Central). This version is a warm-up towards Monday's release and is nearly feature complete with just a few more tweaks left before next Tuesday's official launch.

DesktopX is a program that enables users to enhance their Windows desktops by adding new content to it in the form of desktop objects and widgets (the Windows desktop traditionally only supports static images called "icons").  In addition, users can use DesktopX to build entirely new desktops.  Stardock will also be releasing DesktopX 3 Pro next week which adds the ability to export content as "gadgets" (stand-alone programs that can be used by any Windows 2000 or Windows XP user).  A new website called DesktopGadgets.com is being developed to enable gadget developers to create premium gadgets in which they can submit them, name their price, and if they pass moderation be available for sale.

Users who have pre-ordered DesktopX are expected to be able to start receiving their orders the night before the official release.

DesktopX 3 has a vast number of major improvements that have been in development for a long while.  Some of the highlights include:

  • Vastly easier to use interface.  Now users who just want to use widgets, objects, and desktops created by others can do that without interacting with the sophisticated DesktopX developer environment.
  • A new program called "Widget Manager" is included that provides quick access to widgets that are installed.
  • A whole batch of brand new widgets modeled after Microsoft's Aero but with Stardock's own spin called "Silica".
  • Widgets can have their own custom preference dialogs.
  • User Interface threading -- scripts and the objects they are part of run synchronously. This allows DesktopX developers to create much.
  • Lots of enhancements to ActiveX controls which can now be used seamlessly with other DesktopX objects (so every COM object on your Windows PC can be treated like a DesktopX object potentially).
  • Centralized script development. Before each object that needed any scripting logic had to have its script associated with it. In DesktopX 3, scripts can easily access and manage messages for object objects (and can create and destroy objects as well).
  • Scripts can access particular frames of animation (this is a big deal because now someone can make a bitmap strip of animation frames and access a particular frame and show it).
  • Text objects will word wrap.
  • Lots and lots of fixes, usability enhancements, etc. (Users who create desktops should be particularly pleased with enhanced system tray support, better taskbar support, etc.)
  • Much faster performance and uses less memory.

If you already have Object Desktop, just go to Stardock Central to get it (v2.99b.003). If you don't have Object Desktop you can purchase it here (Object Desktop includes WindowBlinds, IconPackager, SkinStudio, ObjectBar, as well as DesktopX and many other programs).

Galactic Civilizations II beta date

Published on Thursday, March 10, 2005 By Brad Wardell In GalCiv II News

We are currently aiming for a March 24th release date for the BETA (that means test version) of Galactic Civilizations.  For those of you who haven't been through a Stardock beta program before, our betas tend to be much earlier on than what is the norm.

Most betas, by definition, are "feature complete" with only bugs to fix.  Stardock's beta programs have traditionally encompassed both the alpha phase (early development) phase and beta (late development) phase.  This is so that our beta testers have the maximum amount of time to provide input into the game and give us the maximum amount of time to react (for example, the star bases from Galactic Civilizations I came from beta tester suggestions).

The first beta will primarily be about trying out the new 3D engine.  It uses the latest DirectX 9 features (and ironically one of the really new features of DirectX 9 is seamless True Type support which will let us support any language easily).

On March 15th, Stardock will be releasing DesktopX 3. We are using DesktopX to create the entire UI environment in the game (there is literally a directory full of .dxpacks that can be opened and modified via DesktopX - total customization of how the game will look beyond anything that has been seen before).  So players will be able to play around with this as well.

This first beta release won't have most of the key features in the game. For instance, star bases aren't in yet.  We mainly want to see how well the game runs on your computers and find out what configurations are having problems with the game.  The star ships, while 3D, won't have textures on them yet. The final game will look quite a bit better than what you will see in the beta. To get an idea of where Galactic Civilizations 1 looked like at this point see THIS for what it looked like for beta 1 and THIS for what the game looked like when it was done.

HERE is a screenshot of what the game looked like last week.

So two weeks from today we expect to have the first bete available to those who have PRE-ORDERED the game or have active TotalGaming.net subscriptions.  It is through pre-orders that we are able to maintain our independence of the larger publishers and be able to deliver games in the way we do.

Photo Album feature up (no really!)

Published on Thursday, March 10, 2005 By Brad Wardell In WinCustomize News

We had a logic error that prevented non-admins from creating photo albums that we resolved today.  Anyway, now if you're a WinCustomize premium subscriber, you can now create your own photo albums.

We're currently in the process of migrating servers across the country to Chicago so there may be some slowness on the personal pages while we transit (then it should become quite fast). You can check out my personal photo album at the link below.

General apology

Published on Thursday, March 10, 2005 By Brad Wardell In WinCustomize News
I don't think most people realize this but I receive approximately 1,200 to 1,600 email each day.  Of it, about 300 of it I have to look at and I usually have time to respond to about 60 or so each day (sometimes more depending on the day).  So anyway, for all of you who email me that don't get a response, I apologize!!

Building desktops with DesktopX 3

Published on Thursday, March 10, 2005 By Brad Wardell In WinCustomize News

The 5th DesktopX 3 journal entry is now up. This one talks briefly about how to build your own desktop using DesktopX 3.

DesktopX 3 is a next generation desktop enhancement utility designed to allow people to add a whole new type of content to their Windows desktops.

DesktopX Journal: Day 5

Published on Thursday, March 10, 2005 By Brad Wardell In DesktopX

Widgets have gotten a lot of attention in the past year. I admit, we've really fixated on the widget aspects of DesktopX since that's where a lot of the interest seems to have been. But with DesktopX 3, we have not forgotten about one of the most popular uses of DesktopX -- building a desktop.

To recap - DesktopX (Standard and Pro) enable users to create desktop objects on their Windows desktop. These objects can be as simple as a static picture or as complex as any stand alone program could imagine being. It's up to the user.  These objects can be grouped together and exported.  They can be exported as objects to be put on people's DesktopX enhanced desktop, they can be exported as widgets to be run as mini-programs...OR...they can be put together to build an entirely new desktop.

What I want to show is how easy it is to create a desktop.  My example, to keep it simple, is pretty lame I confess but hopefully it'll cover enough of the basics that you can go from there.

First off, for my desktop I'm going to have a bottom bar and a right bar. So I'll need an image.  I'm going to borrow an Aero-style PNG file I got on WinCustomize. Then I'm going to create a DesktopX object and assign its image to be that Aero PNG file.  Then on the states tab I'm going to go to appearance and then "Advanced" and set up how it can be tiled and stretched.  Basically I want to be able to resize this PNG image without it looking stretched out.


Now that I've done that, I'll resize it to make sure I did it right.  I do that on the summary page.


Good. Looks good resized.  Now, in DesktopX I can make things a % of the desktop.  DesktopX is natively resolution independent (unfortunately, most people choose to hard code the size of their exported desktops which is almost always unnecessary).  So I'm going to make my image be 100% of the horizontal size but 64 pixels tall.


Now to do the same with a vertical one which I created using "clone".


Next I will prepare to hide my Windows desktop icons and Start bar.

Now for fun I'm going to put the date and time.  DesktopX includes a plugin that does this. So I just select that under "additional abilities" and then make that object of type text.


Okay, so here's my little text object. I changed the colors and gave it a border so that it stands out.


Now, one of the things that's important to remember when building a desktop is that you'll want all your "desktop" items to be of the desktop z-order (by default, objects are created at the Normal z-order).  You want your desktop stuff to always show up below your windows.


Now I need a Start button.  Okay, here I cheated, I went onto the DesktopX area and did a search for a start button. This just brings up the Windows Start menu.


Now to add a system tray.


Make it match my existing look.


And then toss it on there.  Now, I also need to reserve the space for my various docks. There's tons of ways to do this. The easy/lame way is to just go and set the workspace area.


I'm just maximizing my window so you can see the effect of workspaces.


Now I start importing objects to put on my docks. Then I go to the ObjectDock section on www.wincustomize.com to start finding more specific PNG and icon files I want.


One thing nice about DesktopX objects when dealing with icons and such is that you can control their size and you can control how they behave in different instances (such as mouse over). I also gave this object a shadow.


So now let's create another object that I'll use as a pop up.


Using my trusty Aero image once again I have made a nice box.


So now I'm going to need a thin that when clicked on will toggle my pop up.  So I grabbed this. I will resize it to 32x32 (looks really cool big eh?).


So now I make this object an "object controller".


And I turn my pop up window into a toggle popup.


And voila. Drag and drop some stuff on there, put some MP3 player controls I made on there and I have an interactive pop up window.


Now to export my desktop.


..and I'm done.

So there you have it, a quicky way to build a simple desktop. Hopefully your imagination can come up with much more spectacular things than I did here.  I whipped this up in less than 15 minutes so you can imagine what's possible with real work.