
Tutorial
Version 0.2
Martin Conroy
9th August, 2000
Edits by Brad Wardell
1 What is DesktopX?...................................................................................................................................... 4
2 Installing DesktopX................................................................................................................................. 5
3 Running DesktopX....................................................................................................................................... 5
4 Configuring DesktopX............................................................................................................................. 5
4.1 Current Theme.......................................................................................................................................... 5
4.2 Theme Settings.......................................................................................................................................... 6
4.2.1 Wallpaper............................................................................................................................................... 6
4.2.2 Desktop................................................................................................................................................... 6
4.2.3 DX Taskbar............................................................................................................................................ 7
4.3 DesktopX Settings................................................................................................................................... 7
4.3.1 Movement............................................................................................................................................... 7
4.3.2 Activation............................................................................................................................................... 8
4.3.3 Snap........................................................................................................................................................ 8
4.3.4 Setup....................................................................................................................................................... 9
4.3.5 Advanced................................................................................................................................................ 9
5 Using Components.................................................................................................................................... 10
5.1 Themes.......................................................................................................................................................... 10
5.2 Packs............................................................................................................................................................. 11
5.3 Ethics............................................................................................................................................................ 11
6 Making Components................................................................................................................................ 12
6.1 Creating a Theme.................................................................................................................................. 12
6.2 Comments................................................................................................................................................... 12
6.3 Wallpaper Settings............................................................................................................................. 12
6.4 Desktop Settings.................................................................................................................................... 12
6.5 Taskbar Settings.................................................................................................................................. 13
6.6 Objects......................................................................................................................................................... 13
6.6.1 Creating Objects................................................................................................................................. 13
6.6.2 Selecting Objects................................................................................................................................ 13
6.6.3 Aligning Objects................................................................................................................................. 13
6.6.4 Cloning Objects.................................................................................................................................. 13
6.6.5 Properties............................................................................................................................................ 14
6.6.5.1 General.............................................................................................................................................. 14
6.6.5.1.1 Object Classes.............................................................................................................................. 14
6.6.5.1.1.1 Container......................................................................................................................... 14
6.6.5.1.1.2 Control Panel.................................................................................................................. 14
6.6.5.1.1.3 Desktop.......................................................................................................................... 14
6.6.5.1.1.4 Directory Shortcut.......................................................................................................... 14
6.6.5.1.1.5 Document Shortcut......................................................................................................... 14
6.6.5.1.1.6 Documents...................................................................................................................... 14
6.6.5.1.1.7 Drive Shortcut................................................................................................................. 15
6.6.5.1.1.8 Internet............................................................................................................................ 15
6.6.5.1.1.9 Layer............................................................................................................................... 15
6.6.5.1.1.10 Log off............................................................................................................................. 15
6.6.5.1.1.11 My computer.................................................................................................................. 15
6.6.5.1.1.12 Network.......................................................................................................................... 15
6.6.5.1.1.13 Popup closer................................................................................................................... 15
6.6.5.1.1.14 Popup starter.................................................................................................................. 15
6.6.5.1.1.15 Program shortcut............................................................................................................. 15
6.6.5.1.1.16 Programs......................................................................................................................... 15
6.6.5.1.1.17 Recycle bin...................................................................................................................... 15
6.6.5.1.1.18 Restart Windows............................................................................................................ 15
6.6.5.1.1.19 Shutdown options........................................................................................................... 15
6.6.5.1.1.20 Shutdown Windows........................................................................................................ 16
6.6.5.1.1.21 Start................................................................................................................................. 16
6.6.5.1.1.22 Unload DesktopX........................................................................................................... 16
6.6.5.1.1.23 URL................................................................................................................................ 16
6.6.5.1.2 Label............................................................................................................................................. 16
6.6.5.1.3 ToolTip........................................................................................................................................ 16
6.6.5.1.4 Popup.......................................................................................................................................... 16
6.6.5.1.4.1 Static popup................................................................................................................... 16
6.6.5.1.4.2 Toggle popup.................................................................................................................. 16
6.6.5.1.4.3 Menu Popup................................................................................................................... 16
6.6.5.1.4.4 Volatile popup................................................................................................................ 17
6.6.5.2 Relation............................................................................................................................................. 17
6.6.5.2.1 Z-order......................................................................................................................................... 17
6.6.5.2.2 Movement.................................................................................................................................... 17
6.6.5.2.3 Activation area............................................................................................................................. 17
6.6.5.2.4 Start command on........................................................................................................................ 17
6.6.5.2.5 Adjust position............................................................................................................................ 17
6.6.5.2.6 Groups......................................................................................................................................... 18
6.6.5.3 Messages........................................................................................................................................... 19
6.6.5.3.1 Types........................................................................................................................................... 19
6.6.5.3.1.1 Normal look / Mouse away (animation)......................................................................... 19
6.6.5.3.1.2 Mouse down................................................................................................................... 19
6.6.5.3.1.3 Mouse up........................................................................................................................ 19
6.6.5.3.1.4 Mouse over..................................................................................................................... 19
6.6.5.3.1.5 Show............................................................................................................................... 19
6.6.5.3.1.6 Hide................................................................................................................................. 19
6.6.5.3.1.7 Command executed......................................................................................................... 19
6.6.5.3.2 Appearance.................................................................................................................................. 20
6.6.5.3.2.1 None................................................................................................................................ 20
6.6.5.3.2.2 One frame........................................................................................................................ 20
6.6.5.3.2.3 Animation....................................................................................................................... 20
6.6.5.3.2.3.1 Frames...................................................................................................................... 20
6.6.5.3.2.3.2 Interval...................................................................................................................... 20
6.6.5.3.2.3.3 Loop......................................................................................................................... 20
6.6.5.3.2.3.4 Style.......................................................................................................................... 20
6.6.5.3.3 Graphics....................................................................................................................................... 21
6.6.5.3.3.1 Using Text....................................................................................................................... 21
6.6.5.3.3.2 Alpha Blending............................................................................................................... 21
6.6.5.3.3.2.1 Uniform.................................................................................................................... 21
6.6.5.3.3.2.2 Per frame................................................................................................................... 21
6.6.5.3.3.2.3 Per pixel.................................................................................................................... 21
6.6.5.3.3.2.4 Blend style................................................................................................................ 22
6.6.5.3.3.3 Sound Effects.................................................................................................................. 22
6.6.5.3.3.4 Messages......................................................................................................................... 22
6.6.5.3.4 Copying Parameters..................................................................................................................... 23
6.6.5.4 Summary........................................................................................................................................... 23
6.6.5.4.1 Object ID..................................................................................................................................... 23
6.6.5.4.2 Parent ID...................................................................................................................................... 23
6.6.5.4.3 Author.......................................................................................................................................... 23
6.6.5.4.4 Comments.................................................................................................................................... 23
7 Appendices..................................................................................................................................................... 24
A. How to create a Taskbar............................................................................................................... 24
B. How to create graphics................................................................................................................... 25
7.1.1.1.1.1 Creating ‘one frame’ images............................................................................................ 25
7.1.1.1.1.2 Creating ‘multi frame’ images (animations).................................................................... 25
C. How to create a graphic with alpha blending information.................................. 27
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.
For a comprehensive description of Desktop read the DesktopX White Paper.
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.
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.
The DesktopX configuration dialogue has 3 tabs. You can also quit DesktopX from here.
Here you can do most of the things you will typically want to do
with DirectX.
Load New Theme: Load an entire Theme to replace your current Theme. You will have the option to save your current Theme settings before loading the new Theme. Where the new Theme has different wallpaper and taskbar settings you will be prompted to replace your current settings with those of the new Theme.
Theme information: A summary of the theme, typically created by the author to describe their inspiration.
Make a new object: Click this to add a new object to your theme. See Section 6.2 for details.
Import: This brings up a dialogue box that allows you to import a pre-created object or series of objects. See Section 5.2 for details.
Reset theme: This allows a user to remove certain elements from a Theme using a dialogue box.
Export theme: Save your Theme to a file.
This section allows you to configure 3 areas, the wallpaper, desktop, and the taskbar.

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.
You can also check a box to hide desktop icons.
The taskbar is the area that displays the
currently running applications. DesktopX provides choice in the taskbar that is
used. You can choose to have no taskbar (though this is unlikely unless you’re
a fan of ALT-TAB), use the standard Explorer taskbar which is part of the
Windows interface, or use DesktopX’s own taskbar.
You can make your choice by selecting an option in the ‘Preferred Setting’.
If you choose the DesktopX taskbar you then have several options:
Icons: You can either display tasks as a small icon or a large icon. Your preference will depend on the quality of your eyesight and the size of your monitor. Distance is the number of pixels between each icon.
Style: This determines which direction the taskbar will ‘grow’. If you say ‘Left to Right’, new applications will be placed on the right causing the taskbar to’grow’ in this direction.
Skin, Start & End Tile: You can create your own graphics for the taskbar. See Appendix A for how to do this.
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.
This section determines how you move DesktopX objects and how fast they move.

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 ‘Normal’ mode a user can move an object simply by dragging the mouse.
Movement threshold: 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.
Confine objects: You can stop objects from moving outside your desktop work area by checking this box.
Here you can set the default method to activate an object. This is
the condition which invokes the MouseOver message and prepares the object to
accept a click (or two) to start the command associated with that object.
Activate on: You can choose to active an object in 3 ways. You can select a rectangular area, which is essentially the area of the bitmap including any areas that are transparent.
You can select ‘visible area’ which means the mouse must be over a non-transparent area. This yields the most realistic results for non rectangular objects as the recognition seems most ‘realistic’.
The third option is similar to the second but activates when the mouse is within ‘x’ pixels of the visible area. This is particularly useful with complex outlines like text because it avoids the erratic activation that occurs when the mouse switches from on to off.
Start
command on: This defines whether a user needs to
click once or twice on the object to execute it’s commands.

This
effectively sets a grid to aid in the accurate placement of objects. If Snap is
disabled then objects can be placed anywhere. The other two options snap
objects to a grid defined by the ‘x’ and ‘y’ spacing. The objects can either
snap at their top left corner or at the centre as defined by your choice.
This is another fairly obvious section of options. You can choose to
run DesktopX on startup and add DesktopX to the taskbar. Both are recommended.
The first because DesktopX is cool and the second because it’s the only
practical way of getting access to DesktopX configuration unless you have an
object to run the executable.
Here, you can also determine which taskbar is the default run when DesktopX is launched. You can choose from no taskbar (‘None’), the standard Explorer taskbar, or the DesktopX taskbar. For the DesktopX taskbar you can set additional parameters.
You can force the taskbar to remain ‘Always on top’.
You can state the direction the taskbar grows as specified in 4.2.3, and specify the location of the DesktopX taskbar
on the screen by changing the ‘x’ and ‘y’ parameters.
This section allows you to adjust those parameters which don’t
really fit into any other category.
Object update: When you change screen resolution DesktopX can try to reposition the objects as it thinks are appropriate to the new resolution. You can specify if you want this to happen automatically or not, or be prompted.
ToolTips: DesktopX objects can have ‘ToolTips’ assigned to them that appear when the mouse is over the object. ToolTips are useful to assist a user in determining the function of an object. Here you can specify how long the mouse must hover over the object before the ToolTips appear, or disable the ToolTips entirely.
Labels: Labels are like permanent ToolTips which appear permanently beneath objects similar to the way that Windows icons have text beneath them. The ‘Y offset’ setting lets you determine how many pixels below the object the labels appear.
Timers: There are 2 settings here. The high precision timer is useful if you have animations with may frames per second and your eye is sharp enough to notice slight irregularities in timing. This should not be needed in most cases.
The ‘Mouse Over Command delay’ provides flexibility for objects that activate on ‘Mouse Over’. It may be useful to wait for a short period before activating the command to ensure that the ‘Mouse Over’ event wasn’t accidental. This allows you to define the period that DesktopX will wait before running the command associated with the object.
One of the key features of DesktopX is that the objects and themes are designed to be transferable between users. You can choose to import entire Themes or Packs that can be individual objects or collections of objects.
The key sites where you can download components are:
www.desktopx.net and www.skinz.org
Themes are complete collections of objects and often wallpaper which
are designed to work together and compliment each other.
When you have downloaded a Theme it is very easy to install. Just click the ‘Load New Theme’ button. You will be prompted to save your current Theme settings before loading your new Theme.

You will then be prompted to select your Theme that will have a
‘dxtheme’ extension.
You then are prompted to see if you want to switch to the new wallpaper settings from the Theme you are loading or keep your current settings. You then have the same option for selecting the new or current taskbar and tray settings.

Following this decision your new Theme will be loaded. You can also load Themes by double clicking a Theme file.
You should be aware of two potential issues with downloads, both concerning ZIP files. Themes do not need compressing, as they are essentially zip files anyway. Some authors however will Zip the file. Some websites such as www.skinz.org automatically rename files to give them a .ZIP extension.
If you have a file with a .ZIP extension open it with ObjectZip or another package such as WinZip. If the file contains a single file with a .dxtheme then it is a Theme file that has been compressed by the author. Extract this file to wherever you store your Themes. If the file contains several Bitmaps and a Theme.ini file, then this is a renamed Theme file. Change the extension from .ZIP to .dxtheme.
Packs are similar to Themes except that they contain a DesktopX
object or series of objects.
When you have downloaded a Pack it is very easy to install. Just click the ‘Import’ button. You will then be asked to browse to find the .dxpack file that you want to load. Once this is selected, the objects you have selected will be loaded.
You should also be aware of potential issues with ZIP files that you download. See the above section on Themes for details.
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 ‘Reset Theme’ 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.
From this basic object you can amend it’s properties to create any object you want. There are four tabs and the options they contain offer great power and flexibility.
This section contains an overview of the type of object that you have created.

The object class is the function that the object performs when it is
clicked. Each of the functions has it’s own configuration which are described
below in detail.
A
container is a special type of object that is designed to have “child objects”
attached to them. If you drag and drop
an object onto a container class object, it will automatically be made into a
child of that object.
An object of this class will launch the Control Panel. In the configuration options you can determine whether this appears as a menu or launches in a window.
An object of this class will access your Desktop folder. In the configuration options you can determine whether this appears as a menu or launches in a window.
Takes the user to a specific directory. In the configuration options you must select the folder path. There is a checkbox that allows the folder contents to be displayed as a menu rather than launching in a window.
Launches a document whose location is specified in the configuration options.
This opens up
the “My Documents” folder (or whatever you have specified as your documents
folder). This can be opened as a menu or a folder as specified in the
configuration options.
Opens up the
contents of a specified drive either as a menu or a folder. These settings are
made in the configuration options.
Launches your default web browser. You can also access you’re Internet Properties by right clicking on the Object and selecting this option from the menu.
This is a special class. It does nothing but display a particular graphic or picture. It is particularly useful for creating background objects that have no functionality.
Logs the user off their system. Note that there is no prompting before doing this.
Opens up the contents of “My Computer” as
either a menu or a window as specified in the configuration options. System
Properties are also available from the right click menu on this object.
Opens up the contents of “Network Neighborhood” as either a menu or a window as specified in the configuration options. Network Properties are also available from the right click menu on this object.
This is a special class. In the configuration options you can specify
which group or Object ID you wish to close. Any Object in that group or with
that Object ID will be closed (hidden).
This does the opposite to the above in that
it opens any popup objects in the specified group or with the specified Object
ID.
This launches a program specified in the configuration options. You can also specify parameters to be passed to the program on launching.
This opens the Program folder from the ‘Start Menu’. You can specify whether this is displayed as a menu or folder in the configuration options.
This opens the ‘Recycle Bin’ folder.
This will restart Windows without prompting.
This will provide the full range of Windows
shutdown options via the standard dialogue.
This will shutdown Windows without prompting.
This will open the ‘Start Menu’ as either a
menu or folder as specified in the configuration options.
This unloads DesktopX without prompting.
This opens a website URL specified in the
configuration options in your default web browser. There is no need to add the
‘http:\\’ prefix to the address.

Objects can have a text label that is permanently displayed. The
text that you enter here will be displayed as the label. Entering text in the
box as shown below created the object on the left.
Objects can have a ToolTip. This is similar to a label but it is
only displayed when the user holds the mouse cursor over the object for a set
period of time.
You should be aware however that this ToolTip will not appear if the
user has disabled the display of ToolTips in their preferences. If they have
not done this then the ToolTip will appear after the period of time specified
by the user in their preferences.
This is the entry that created the object on the left.
If the Object is a member of a group (see 6.6.4.2.1.) then this is the setting that determines how the Object will appear when the Object’s parent (which has the ‘Popup Starter’ class) is clicked. If the Object is not the member of a group this setting will typically be ‘No’. The group to which the Object belongs is determined by the ‘Group name’ as the ‘Relation’ tab.
The choices are Static, Toggle, Menu, and Volatile.
The popup appears the first time it’s parent is clicked and remains on screen regardless of whether the parent is clicked again or not.
The popup will alternative between visible and hidden each time the parent is clicked.
Works like a ‘Toggle popup’ but will also hide if another object is clicked.
This type of pop up tells other volatile pops to close so that only one pop up can be available at once. The popup remains until another volatile popup object has been opened.
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), Normal window (just like any window), and Always on top. Within a set level, any Object that is moved or clicked automatically appears above other objects on that level.
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
Additionally, you can position an object to be placed relate to the middle of the screen, the top left hand corner of the screen. Centre object positions tells DX to put your objects relative to the centre of the screen. So that at 640x480 it is 20 pixels above the middle of the screen, at 1600x1200 it will still be 20 pixels from the centre of the screen. Rescaling the object centres is similar except it does it based on the percent. So if your object is about half way up the screen at 64x0480, at 1600x1200 it will also be half way up.
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.
Each object can respond to a variety of messages. By default, an object has a “normal
look”. However, it can respond to
messages ranging from ‘mouse over’ to ‘button down’ to ‘program executed’ all
the way to various user-defined messages.
The only mandatory state is ‘Normal Look’. Each of the other message states is optional. Be aware that if you use graphics in different stages then they must be of the same size. If they are not then DesktopX will advise you of any inconsistencies, and will not implement changes until this is rectified. All of these messages are configured in the same way as described in Section 6.6.5.3.2.
You should note that in Section 6.6.5.3.2. all the screenshot show that the ‘Type’ is ‘Normal look / mouse away’. This is irrelevant. The configuration of all of these types is identical.
This is the standard appearance of an Object. It is also the state that the Object returns to when the mouse moves away from the Object’s activation area following a ‘Mouse over’ event.
This occurs when the user clicks the left mouse button over the Object’s activation area. Examples of using this may be the display of a depressed button; that is one that has been pressed down, not that is unhappy !!
Typically used in conjunction with the above, this occurs when the user releases the left mouse button after clicking over the Object’s activation area.
This is the message the Object receives when a mouse is over the activation area of an object. This may typically used to ‘highlight’ the Object to make the user aware that it is ready for activation.
This is the state that occurs when the object appears. This will occur when DesktopX loads and, if the Object is a popup Object, when the popup is activated. A typical example of using this is a fade effect which gradually makes the object more visible until it reaches it’s ‘Normal’ state.
This is the opposite of the ‘Show’ state and occurs when an Object is unloaded or is a popup hidden. An example of this would be a gradual fade until the Object disappears.
This is the effect that occurs when the Object’s command is executed. Because the object returns to it’s ‘Normal’ state so rapidly, changes in static graphics are unlikely to be noticeable so the most appropriate effect if you use one if an animation of some duration and/or a sound effect.
There are 3 ways in which an Object can be visually be represented
in any state. More detail on the creation of these objects is found in the next
section.
No graphic is displayed for this event. This is a necessary option because the event may be represented in other ways such as the playing of a sound.
The Object is represented by a single bitmap in this state.
The Object is represented by a either a ‘one frame’ or a ‘multi frame’ animation.
The number of ‘frames’ or parts to the animation. Animated frames can be of 2 types. ‘Multi frame’ bitmaps have several images side by side. In this case the number of frames here should be the number of ‘frames’ in the bitmap. A ‘one frame’ bitmap animation is made of a single graphic that is repeated several times. The typical way a ‘one frame’ bitmap is animated is by variations in alpha transparency. If you are using a ‘one frame’ bitmap you should check the appropriate checkbox.
The number of milliseconds between frames of the animation. There are 1000 milliseconds per second therefore if you want 10 frames/second you should enter a value of 100 here.
By checking this box the animation will repeat indefinitely.
Extra flexibility in your animation is provided by a choice of styles. You can play your animation forward, backwards, or combinations. In conjunction with the loop facility this offers huge choice. For example a ‘pulsing’ effect can be made be choosing the ‘Forwards + backwards’ style and looping the animation.
Initially the method for creating the graphics for DesktopX can seem quite daunting. However, once you’ve grasped a few basic concepts it’s relatively easy.
See Appendix B for an overview of creating
graphics
You can use text instead of graphics. There are two huge benefits to this. The first is that it is fast. You do not need to create complex graphics for simple text. It also provides more flexibility in the Theme as it can be changed easily by yourself of other users of your Theme. Remember, not all users will possess the same software as you and therefore using a text Object means they can change the Object to something better matching their requirements.
As well as entering the text you can specify it’s style. Standard items such as typeface, style, size, effects and colour are done through a dialogue accessed by clicking the ‘Change font’ button. You can also specify the font’s alignment and add effects such as antialiasing and a shadow.
The text you enter is standard across events but style and effects can vary between events.

Alpha blending is essentially the process of combining the image and the background behind the object to give a ‘transparent’ effect. If you chose blending, i.e. not ‘None’ you have 2 or 3 options:
The blending is applied at a standard percentage across all of the object and all frames of any animation.
If the Object is animated then you can specify the blend level for the first and last frames. The blend levels for intermediate frames are calculated on a linear basis.
The alpha blending is determined by the bitmap itself. If you plan to use complex ‘per pixel’ blending then you can create a special bitmap with the blending information incorporated into the bitmap. Appendix C shows you how to do this.

The blend can be applied in 4 different ways. The difference is in the the new pixel colour is mathematically calculated by combining the pixel colour of the Object and the background.
You do not need to know the details of the mathematics, you can see the effects below and the best way the view alternatives is by experimenting.
|
Normal |
‘Mix’ Blend |
‘Add’ Blend |
‘Over’ Blend |
‘Sub’ Blend |

You can associate sound effects with events. To do this you can select from the WAV files already associated with the Theme from the dropdown list or use the ‘Browse’ button to find new sound files to add.

This will be one of the key strengths of DesktopX allowing messages to be ‘fed’ from one object to another.
It will be implemented in a future release.
To reduce duplication of effort you can copy parameters from events you have already created by clicking the ‘Copy message parameters from’ button.
The summary page is where an object author can protect his or her
work as well as assign a specific unique object ID.
Objects can be referred to be their Object ID. This is a number that uniquely identifies that object and can be referred to by other Objects when using Popups and Messages.
Here you can choose another Object that is the Object’s parent. This is the Object from which the child inherits it’s behaviours.
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 (bwardell@stardock.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.
To create a taskbar you should create a bitmap file (BMP). Areas that you wish to be transparent should be that standard magenta (255,0,255) that DesktopX uses.
The bitmap should contain an element to represent the left and right ends of the task bar and a centre area that will tile well as the taskbar grows.
Image1 show the bitmap I created. Image 2 shows how this has 3 sections.
|
|
|

In the DesktopX configuration for the taskbar (see 4.2.3), you can select this bitmap by browsing. We must now specify which parts of the image represent the left, and right ends of the taskbar. This is done by specifying the number on the pixels from the left of the image which represent the left end of the taskbar, and the same for the right. The image we have created is 50x20 pixels. The left end of the taskbar is represented by the first 12 pixels. The right is represented by the last 12 pixels, i.e from pixel 38. To advise DesktopX that this is the case we enter ‘12’ in the box for ‘Left Tile’ and ‘38’ in the box ‘Right Tile’.
This creates our new taskbar.
It work well as both a small and a large taskbar.
![]()
The key to making DesktopX objects look good is transparency. The graphics format that DesktopX uses for it’s objects is bitmap (BMP). Bitmap files do not have the ability to store transparency information in the actual file so DesktopX works by assuming that any magenta pixels in the image are to be transparent. Magenta pixels are represented by in the RGB colour model by 255,0,255.
Below is an example of a bitmap, and how the transparency information transforms this when placed on the screen:


One area to be conscious of is that many of today’s paint packages are very intelligent in performing anti-aliasing functions themselves. If you use ‘Flood fills’ the give a magenta background be sure that any anti-aliasing options are turned of. It is vital to get crisp magenta edges for the Object to look good. Anti-aliasing can cause ‘semi-magenta’ pixels that may not be noticeable when creating the object, but be vivid when you look at the object. See the below on the right.

The creation of animations is simple once you understand how
to create a ‘one frame’ image. Animation bitmaps are single images with the
different frames side by side. The best way to demonstrate this is by an
example:
This 450x75 bitmap is effectively six 75x75 bitmaps side by side. The progressive warping of the Object provides a vortex effect when the appropriate animation settings are used.
As you can see there are 6 frames in the animation set to run at an
interval of 40 seconds. I have chosen to ‘loop’ the animation and use the
‘Forwards + backwards’ style to obtain the warping effect I required.
See the demo theme file for an example of this Object in action.

Manipulating the alpha-blending levels of the object can also create animations. To create this we use the ‘one frame’ bitmap for the object. In addition to the above settings in the appearance tab you must check the box labelled ‘One frame bitmap repeated # frames times’. You can then specify the alpha-blending level for each frame in the alpha-blending tab as shown on the left.
See then demo Theme for an example of this Object in action.

To create complex blending effects you need to create a
double-height bitmap where the bottom half contains greyscale alpha blending
values. Dark areas are more transparent and pale area are more visible. You
must use this type of image in conjunction with per-pixel alpha blending.
To the left you see an example of a bitmap image containing both an image and the alpha blending data below.
The effect that this creates is shown in the image on the right.
There is nothing to stop you creating an animation using graphics incorporating alpha blending information. Simply place a series of these images side by side as you would with a regular animation and use parameters as normal.