So let’s create an object. To do that you will need to be in the DesktopX
development environment (i.e. have the DesktopX builder loaded). Then either
right click on its system tray icon and choose “new object” or from the builder
dialog go to the desktop page and press the “New” object button.
The object properties dialog has 4 pages:
General
Relation
States
Summary
Object Properties: General
The General tab on the object properties dialog
Object Label field
This field lets you specify a text label for your object. This
is much like the label you’d have for an icon.
Object Type
This specifies what type of object. Default is “Layer” which is
just a techie word for “a picture that’s really not doing anything but looking
pretty”. By pressing the “Change..” you load a dialog that displays other object
type options.
Object types include:
Shortcut. This links to a given program on your computer.
URL. This has the object link to a particular website.
Object Controller. This tells the object to perform some
action on another object.
Taskbar. This tells the object that it is to list the
running tasks.
SysTray. This tells the object that it is to use the system
tray (note, this requires the MCP service to be running to be accurate).
System. This means that the object is to represent a special
system command such as the Find dialog, Shut down, log off, etc.
DesktopX Builder. This tells the object that it is to
perform some DesktopX specific command.
Widget. This means that if this object is exported as a
widget that it will function as some widget specific feature (such as
closing the widget).
Default Appearance
This allows you to control how the object is going to look by
default.
New Script
The “New” button will allow you to start working on a new script
for the object. See the scripting guide to learn more on scripting.
Additional Abilities
More features can be added to DesktopX objects by loading a
plugin. Plugins are add-ons to DesktopX created by either Stardock or
third-parties. Popular plugins include DXPlayer which comes with DesktopX and
enables users to easily create media players, DXPerf which also comes with
DesktopX that makes it easy to create performance monitoring objects.
When a plugin is added, it will need to be selected and then
configured.
Object Properties: Relation Page
The Relation page
The relation page is designed to allow you to control how this
object will interact with the desktop and you.
Visible
This determines whether the object’s initial state is visible or
not.
Z-Order
This option controls the relative Z position of the object.
Options are Desktop (like icons), Normal (like programs) or always on top.
Movement
This controls how and when an object can be moved around. There
are many times when you may wish for an object not to be moved. However, even
when an object is locked, it can still be moved by holding down the CTRL key
when selecting it.
Activation
This controls when the object will receive messages from the
mouse. That is, whether the mouse cursor actually needs to be on the visible
part of the object or just near it or not have it react to mouse messages at all
which can be useful if you want to make the object semi-transparent and
therefore have the object UNDER that object be what reacts to the mouse
messages.
Start with
This controls what is necessary to make the object “execute”.
Single click, double click, mouse over or mouse down.
Popup
This determines whether this object is a pop-up object. Pop-up
objects are then controlled by other objects that are of the class “Object
Controller”. The types of pop-ups are:
Static
Toggle (turn on and off)
Menu (acts like a Windows menu – as soon as something else
is clicked, it hides)
Volatile (hides when another pop-up is opened, great for
working with multiple pop-ups).
Cursor
This controls whether the mouse cursor changes when it is over
this object. For instance, a text link object may want to have the mouse cursor
change to the hand mouse cursor.
Position Adjusting (for resolution independence)
Objects can be set to move themselves upon resolution changing.
For instance, the object’s position can stay relative to the center the screen
or to a given edge when the resolution changes.
Object Properties: States page
The States page
The states page of the object properties is the most complex
page in all of DesktopX. That’s because states, like messages, are what make
objects different from say icons. DesktopX objects can have an infinite number
of different states.
For instance, a printer object might have its “default” state
and it might have a “printing” state and it also might have a “paper out” state
and a “out of ink” state and so forth. Each state can have its own image, color,
animation, sound effect, etc. And upon a “State change”, a message can then be
sent. So perhaps that hypothetical printer object, upon changing to “out of ink”
state could then send a “Printer Attention” message to a “Administrative” object
that, using some scripting, sends an email to the system administrator.
Everything listed below in this section can work on a per state
basis.
Add (state)
This option allows you to add another state. There are some
built in ones that have to do with mouse actions (mouse over, mouse away, mouse
down, etc.).
Remove (state)
This removes the selected state.
Copy from.. (state)
This option will copy the state data from an existing data (a
time saver).
Reset (state)
Resets the selected state to the default settings.
Appearance
The contents of this tab allow you to control what the object
looks like in the selected state. You can choose “Image” to have a bitmap
represent the state or a text. Note that all states have to be either an image
or a text (you can’t have some states be text and others be an image).
Image based states States that are represented by images are just a matter of selecting a
ICO BMP, TGA, or PNG to represent that state.
Text based states
States represented by a text field have more options such as selecting the
font, selecting the color of the font, selecting whether it has a border,
whether it’s anti-aliased, etc. Text will word-wrap if it becomes larger
than its specified size.
Animation
This determines the animation settings for this state. If the
image is a “bit strip” (an image with frames of animation in it horizontally)
then you would set the number of frames involved.
The static animation option indicates that the image only has
one frame in it (a single static image) but that want it to have multiple
animation frames anyway. This is useful on the transparency page where you might
want to have the image pulsate from 20% opacity to 100% in 20 steps (frames).
The loop option will tell the animation to keep playing.
Interruptible determines whether the animation will fully play out its animation
on a state change or stop immediately (if there are multiple states involved,
you will probably want this option selected). Scripted means that which frame is
displayed is controlled via a script.
The style determines which direction the frames will be played.
Transparency
This tab determines whether you want the object to be fully
opaque or not. The default is no transparency. However, options include having
0% to 100% opacity or having it vary from X% to Y% in conjunction with the
static image animation option.
If it’s a bitmap that contains alpha blending information, you can use the
bitmap contains per-pixel alpha blending information. PNG files tend to include
an alpha channel in which case this option will be hidden.
Shadow/Glow
Objects can be given a shadow. Sharpness determines the size of
it. Darkness is on a scale from 0 to 255. Offset determines how many pixels the
shadow is offset.
Color
An object’s hue, brightness and contrast can be controlled here.
So you could easily have an object’s “mouse over” state have its contrast
increased 50% through this option.
Sound
When the object’s state changes to the selected state, a sound
can be played (or even looped for as long as it is in that state). Be the most
popular guy in the office by having a really obnoxious sound play and loop…
Messages
When an object changes to the selected state, you can have a
message be sent to another object. This will change that object to the state of
the same name.
Object Properties: Summary
The summary page provides some information for the object and
allows the user to configure the object in general. The X, Y position of the
object is displayed here.
Users can also control the size of the object by setting its
width and height. Note that changing the height and width of some objects can
have some nasty side effects (such as if it’s an animated object).
You can also assign a tooltip to the object here.
Object ID
The object ID is very important. By default, objects do not have
a name (an ID). In order to interact with a particular object, it needs a name.
You can click on the Object ID field “(unassigned)” by default to change its
name.
Parent/Owner
You can also set what its parent object is if applicable.
Child
The child option determines whether the object has been merged
as part of the window of a parent object.
Group
If the object is part of a group, it’ll be displayed here.
Widget
If the object was imported, it will be given a “widget” ID which
allows DesktopX to try to keep it distinct from other objects. It’s through this
that it knows what objects are “Related” to it.