© 2002 Stardock.net, Inc.
DesktopX is a powerful object framework for Windows. It allows users to create completely customised user environments. It allows that environment to be broken up into individual parts that are called DesktopX objects that can be exchanged with other DesktopX users. As a result, virtually anything that doesn't require user input can be created quickly and easily.
Creating a DesktopX theme or DesktopX object does not necessarily require any programming skill. DesktopX themes are resolution independent and are created via a simple GUI. DesktopX is part of Object Desktop, it is the component that gives users and corporations the power to decide their own interface to Windows in order to suit their needs and increase their productivity.
DesktopX objects can be simple static icons or complicated animations with equally complex alpha-transparency. Objects can be overlaid providing huge potential for creativity.
As DesktopX develops it is intended that the elements on your desktop will be able to receive as well as send messages to other objects, other programs, and other components of the operating system.
Its goal is to make it possible for users to create very customised desktop user interfaces. DesktopX is part of Object Desktop whose overall goal is make the OS flexible enough to be tailored to the user’s particular needs. Windows, by default, is a fairly one-size fits all proposition. In reality, to maximise productivity the desktop shell should be designed to meet the rather specific needs of a given company or individual.
The net result is that companies and individuals will be able to create desktop “themes” that transform the Windows desktop to their exact needs. These themes are made up of DesktopX objects which can range from being simple pictures to being light weight applications in their own right. These objects can easily be traded back and forth (the same with themes) with other users with minimal effort.
For instance, an individual’s DesktopX theme might be something similar to a Litestep theme in which their favourite programs and commonly used tasks are placed in a sci-fi or fantasy setting. Each object could animate itself when the mouse is over it, it could play sound depending on the event, etc. But because it’s broken into parts, a DesktopX theme, unlike Litestep, is resolution independent. Which means that there is no such thing as a “this theme is a 800x600 theme”.
A corporation might use DesktopX to monitor factory resources and keep a department team in easy communication as well as lower training costs by having their desktop display only the items necessary for their efforts. One DesktopX object might be displaying the temperature on a blast furnace and if the reading becomes abnormal, it my vocalize “Blast furnace temperature alert!” An object containing the list of team members and their status might be up in the top right. By clicking on a member name, it might interact with ICQ or some other instant messaging program to let the user send them a message. Meanwhile, the network drive object might have a small pie chart on it displaying how much drive space is currently available on it.
In both examples, all of the things are possible by writing programs. But the point of DesktopX is that these tasks are infinitely simpler to do as DesktopX objects. Instead a day or two writing up a nice looking drive space monitoring program, it could be done in a manner of minutes as a DesktopX object.
Creating a DesktopX object need not involve any programming at all. On the other hand, using XML or Windows Scripting Host, objects can be created, sent messages, to, and interacted with by seasoned developers.
Thus in both examples, the user has been able to create their own desktop. No longer do they have to work around having a “My computer object” on the top left and a Start bar on the bottom or elsewhere no the screen to get their work done.
DesktopX is currently available as a component of the Object Desktop Network (ODNT). This ever growing suite of programmes is designed to enhance your productivity by adding flexibility to the way Windows behaves, and provide cosmetic improvements to your working environment making sitting in front of a screen a more pleasurable experience.
If you have not already subscribed to ODNT you can do so by visiting the appropriate ODNT Ordering section of the Stardock website.
ODNT should download DesktopX like any other component using Component Manager. It can then be installed and will appear in your Object Desktop group. If you do not have Object Desktop, you can download DesktopX on its own at http://www.desktopx.net.
The DesktopX executable is found in the DesktopX subdirectory of your Object Desktop directory (typically c:\program files\object desktop\desktopx). A shortcut to DesktopX will be in your Object Desktop program group from your Start Menu.
Hold down the Ctrl key when selecting a COM object to move or to reach its DesktopX properties menu.
Hold down the Shift key to move an object that has been grouped with other objects.
Hold down the Ctrl key to move an object whose position has been locked
Hold down both keys to move a locked object that is also grouped.
Important keyboard commands
Configuring DesktopX is broken into 4 parts: Current Theme, Theme Settings, DesktopX settings, and About.
The Current Theme page allows you to decide what your current desktop should be. From here, you load up new themes, save your existing themes, or start with a new theme. It also allows you to create and import objects.
From theme settings, you can configure your desktop, the wallpaper, and how labels will be displayed.
You don’t have to set any parameter but you can specify either a bitmap or a solid colour for your desktop. If you choose a bitmap you can also specify whether it should be centred, tiled or resized to fit the screen resolution.
Be aware that if your Display Settings have a wallpaper set then this will be revealed if you deselect wallpaper in DesktopX. To reveal a solid colour set in DesktopX then you need to set your wallpaper to ‘None’ in your Display Settings.
Choosing a solid colour lets you select a background colour from a standard Colour Picker dialogue.
Here you can specify the desktop area used by applications. This can be useful for defining reserved areas for objects. Maximised objects will never encroach into these areas though you should be aware that non-maximised windows can be dragged over these areas.
For Top and left parameters the number is the distance in pixels from the edge. For Right and Bottom parameters positive values specify an absolute distance from the Top or Left side. Negative values specify distances from that edge.
For example: Top 50, Left 0, Bottom –50, Right 50 will set a working area with a 50 pixel margin from the top and 50 pixel margin from the bottom. This will be resolution independent because the Right and Bottom parameters are relative to that screen edge.
The settings that you amend here are the default settings for DesktopX rather than a Theme. A Theme can over-ride the defaults you enter here but where the theme author has left the property as ‘Default’ it is your settings here that will be used.
Movement Mode: You can
lock objects so that a user is required to hold down the CTRL key in order to
move the object. This helps reduce accidental movement. This mode is known as
‘Locked’ mode. In ‘
Movement threshold (snap): To avoid moving objects accidentally you can set the number of pixels an object must be dragged before it is considered to be moving. You will notice the object does not start to move unless you move your mouse the specified number of pixels. If you release the mouse before the object starts to move, the object will not be moved.
Keyboard step: To fine tune movement you can use the cursor keys to move the object. Holding down the CTRL key as well as the cursor key moves the object in larger steps. These two parameters (‘small’ and ‘large’) define the number of pixels an object moves in each case.
Start command on: This defines whether a user needs to click once or twice on the object to execute it’s commands.
Advanced is where you can fine tune how DesktopX runs. Do you want DesktopX to load on start-up? Do you want to have tooltips? Most of this is very straight forward but a couple items bear additional explanation:
Always use W2k/XP transparency. DesktopX has its own alpha blending engine. It’s faster than the one included with Windows 2000 and Windows XP but there are cases where the built in alpha blending engine can be better depending on what video card you have and how much hardware acceleration it provides for alpha blending.
Bitmap Compression. This feature will save RAM at the expense of some performance.
For IT managers who want to set up some basic security, this page can determine what a user can do without having the system password.
DesktopX deals with its components in two ways: Themes and Objects. A theme is really nothing more than a collection of objects. It is a desktop. An object is a piece of a desktop or “desktop part”. Most users will find it easier to simply download objects from a website such as WinCustomize.com and add it to their existing desktop.
Themes have an extension of .dxtheme. DesktopX objects are called .dxpack (packages of objects).
It is considered common courtesy to acknowledge the authors of source graphics or objects that you use if you do not create yourself. This is the minimum. Ideally you should their consent to use their work graphics. Consent will typically be granted, as this is one of the fundamental aims of the software. There may however, be copyright or other issues which forbid use that you need to be aware of. You can usually obtain the authors email address from the ‘Object Summary’ or ‘Theme information’. If this is not the case then you will almost certainly get this information from the site where you downloaded the component. E.g. www.desktopx.net.
Remember that the DesktopX community is a nice place. Nobody will think any less of you if you use work from someone else as long as you give them appropriate credit. In fact, sharing is actively encouraged. Two different people can create very different themes from a similar set of components. Variety is the spice of life. Play nice.
Making components is not particularly difficult. Simple objects are just that, fairly simple to create. As you become more familiar with DesktopX the objects that you create will get more complex.
You don’t have to start a Theme from scratch. In fact, the best way to learn is to look at existing Themes and their objects, ‘tweak’ their settings and see what you can do.
Eventually, of course you will want to create a theme from scratch, which fortunately is very easy to do. From the DesktopX configuration dialogue box, select ‘Current Theme’ and click the “New” button.
This will present you will present you with the dialogue box which you see on the left. You see all the key components of a Theme. When you click ‘OK’ all checked components will be cleared.
If you leave all items checked and click ‘OK’ you will have a blank Theme to work from. We will now work through these five key areas. We’ll leave ‘Objects’ until last. Although it’s the most important section, we’ll get the easy ones out of the way first.
There is a section called ‘Theme Information’ which allows you to summarise the Theme and provide information about yourself as the author. In relation to the ethics issue mentioned above it is useful if you can advise here if you are happy for anyone to develop and modify your Theme. At a minimum you should provide an email address for contact.
The background for your Theme is obviously the sensible starting point. Section 4.2.1. describes the parameters here but essentially you can specify a wallpaper and/or a background colour. You may wonder why both may be required but remember that different people have different resolution screens, and may not always want to scale the wallpaper. It makes sense to also specify a complimentary background colour so that if the wallpaper is centred then the surrounding border doesn’t clash too much.
In Section 4.2.2. it was described how you can specify the desktop work area and optionally hide the desktop icons. There are considerations as to why you may wish to do this. Specifying a work area can be particularly useful in ‘reserving’ areas for Objects that you may create which you wish to be constantly visible while a user has maximised windows.
Careful consideration must be made when using this section in conjunction with the taskbar. If you choose not to use the Explorer taskbar and hide the desktop icons, then you run the risk of limiting your access to the software on your machine if you have not created Objects that provide access to your programmes.
In Section 4.2.3. it was explained how to make your choice of taskbar, and if you choose the DesktopX taskbar, how to customise it’s appearance and location. Appendix A describes how to customise this taskbar. Things you may wish to consider is that if the bitmap you create for your taskbar is made entirely of transparent pixels you effectively have a transparent taskbar. i.e. icons which appear to float over the desktop. This feature can be used particularly effective in combination with an area designated for these items such as a nice background graphic and/or a reduced desktop size.
Objects are the individual elements of DesktopX. The have graphics associated with them which can be static or animated. You can optional specify different graphics for certain events such as when the object appears, the mouse goes over the item, or it is hidden.
To create an object you have two choices. From the DesktopX configuration dialogue, you can select the ‘Current Theme’ tab, and click the ‘Make New Object’ button. You can also right click the DesktopX icon in the toolbar and select ‘New Object’. The default object that is created is a blue circle as shown.
When the object is selected by right clicking on it, it has a small cyan square to indicate it is selected.
You can also select objects by dragging a square on the desktop. All objects wholly or partially within the dragged rectangle will be selected. Holding down the CTRL key and clicking on it can toggle the selection of objects. You can select additional objects in this way.
Additionally you can select all objects or no objects by right clicking an object an choosing ‘Select … all’ or ‘Select … none’ as appropriate.
If you select several objects you can align them. Simply right click and select ‘Align’. You can then choose to align any of their sides.
You can clone single or multiple objects depending on how many are currently selected. To clone an object or objects simply right click on one of the selected objects and choose ‘Clone object(s)’ from the menu. Replicas of the object(s) will be created along with replicas of all their properties.
An object has 4 basic properties to it:
General, Appearance, Relation, and Summary. When you create an object, the questions it asks are: What do I do? How do I look? How do I relate to other objects, and what comments would you like to provide about me?
This section contains an overview of the type of object that you have created.
Object class determines what basically the object is supposed to do when the user interacts with it.
By default, there are not many different classes to choose from. These classes include:
Shortcuts. If your object is going to point to a file, program, directory, or drive, choose this.
URL. If your object is going to point to a website, choose this.
Pop-up. If your object is going to target a DesktopX pop-up object choose this.
Taskbar. If your object is going to be a taskbar choose this.
System tray. If your object is going to be a system tray choose this.
System. If your object is going to perform a Windows system command (like shut down windows) choose this.
DesktopX. If your object is going to configure DesktopX in some way, choose this.
Layer. If your object is going to be a static image that doesn’t do anything when clicked on (usually used for containers) then choose this.
Once you have decided what the object does, the next question is, what should your object look like? And under what circumstances should the object look like that?
An object has different states. When an object receives a message, it can change its state. For example, when I move the mouse over an object, it receives a message “Mouse over”. If I add a state called “Mouse Over” the object can take on a different visual appearance.
Use what’s built in or add your own states to the object.
Example of a custom message
What really sets DesktopX apart from anything else available on any platform are the visual options available. For example, to have an irregularly shaped object, simply load up a drawing package and use “magic pink” to define where the object will be transparent. Magic pink is the RGB value 255,0,255:
Example of a blob in action on a desktop.
DesktopX can go beyond simple transparencies. It can also do alpha blending. This is where it blends an object to whatever is right behind it. The easiest way to do this is to use a .PNG file instead of a bitmap.
This time I am going to create a blue blob with a green glow:
To do this I just loaded up my favourite graphics package, selected an area, chose feather, and then feathered it out a few pixels. This creates a greyscale alpha channel. When I save it as a PNG file, DesktopX will have an alpha blended object.
Now imagine how long this sort of thing would have taken to develop. Now you have an irregularly shaped window. You can put all sorts of things inside of it. You can even have it pulsating using animation:
When I hit apply, my blue glowing blob will pulsate from nearly invisible to fully invisible and back.
This becomes useful when you match this with DesktopX’s ability to have states. Perhaps you have a list of stocks that you keep track of. You could create some icon sized DesktopX objects that point to a URL of your favorite on-line investing site. The object itself can do periodic scans of the stock price. When the stock price reaches a certain point, you can have the object blink or play a sound. And you can do these sorts of things with minimum effort as seen in these blob examples.
Relation represents that object with the rest of the world. From here, the object creator determines how that object will appear to a particular user. Note that if you have multiple objects selected then the check boxes on the left will be enabled. Checking this box means that changes you make in that section will be applied to all selected objects as opposed to just the one which was clicked to view the properties.
Z-order is what level the object will be
at. It is the system in which DesktopX
determines what is going to be on top of what.
There are 3 basic Z-orders: Desktop (the lowest),
Sometimes you want to be able to move an object just like you would a window or icon. But other times you might want to keep it from being moved. There are two basic options here: Locked and Normal. Locked Objects require that CTRL is held down while the object is moved.
Determining what your activation area is depends on the type of image you have representing your object. For instance, on text, you probably want it to be a rectangular area so that the user does not have to click on the actual intricate structure of the non-transparent pixels. Other times you’ll want it to be the visible area, for example objects with rounded edges, and other times you may want to make it so that they just need to be X pixels away (reasonably close) to the object (for instance, a corporation using DX for a touch screen system might use that).
This determines whether the object is to be started by single clicking, double clicking or simply moving the mouse over the object. If it is started by moving the mouse over the object. Then the command is executed after the period of time specified in that user’s ‘DesktopX … Advanced’ settings.
This is a complicated but necessary attribute. A good DesktopX object is resolution independent. This is where that resolution independence occurs. Your options on an object are to:
a) Make it position itself relative to how close to the left side of the screen
b) Make it position itself relative to how close to the right side of the screen
c) Make it position itself relative to how close to the top of the screen
d) Make it position itself relative to how close to the bottom of the screen
e) Automatic (default).
Automatic will usually work for simple themes but if you plan to share your themes with the rest of the world, make sure you have set your objects to have the proper adjustment. For example, often times, the best choice for an object is to be centered. This way, if you make your theme for 800x600 and someone else uses it at 1600x1200, the objects are all centered relative to one another and it still works fine. You can tell a theme that has not been properly adjusted by loading it up and having objects falling all over the place.
If you have several objects that are intended to function in unison, you can “group” them. This means that they move as one. Each object within a group can have separate graphics and separate actions. You may ask, “so what’s the point?”, so I’ll tell you. The main value of groups is in Popups. It is often useful to be able to make several Objects appear at once, typically in menu type scenarios. By Grouping Objects you can achieve this functionality because another Objects can be created as a ‘Popup Starter’ which will display all these objects at once.
To place objects in the same group, simply give them the same name in this box. The simplest way to add multiple objects to a group is to select them all, bring up these properties, tick the check box on the left of the ‘Group Name’ box and enter a name.
Previously created groups will be in the drop-down to make it easy to add objects to existing groups and minimise the risk of typing errors.
What if you want your object to be a pop up window? I.e. something that is normally hidden but when a user clicks on a pop-up starting object, it tells your new object to show up. There are all kinds of pop-ups:
Static. Once loaded, a static pop up will stay up unless something specifically closes it.
Toggle. Click on the pop-up launching object once and it opens, click again and it closes.
Menu. Behaves like a menu where it will close whenever another pop up is opened or when an item within it is clicked on.
Volatile. Similar to a menu except it will stay open even if you click on an item in the pop-up. It only closes when another pop-up has been opened or if the user clicks on the pop-up launching object.
Volatile 2. Same as above except it will not close if you click on the pop-up launching object again.
Here you can place your name so other users know who created the object. We suggest under author that you include your email address: e.g. Frogboy (email@example.com)
The comments area allows a user to enter personal comments about the theme. Such comments may include the inspiration for the Theme and acknowledgements to other individuals who may have helped or contributed.