You've already learnt about how the objects you create can interact with the
user, and will now learn how they interact with each other.
DesktopX allows you to tweak how they interact with users, but also how they
interact with the desktop and other applications on screen.
To access these settings, open up the Object Properties dialogue and then click
the 'Relation' tab.
Visibility
The first thing you can specify is whether the object is visible or not. You
may wonder why you would want to hide objects. There are two main reasons. The
first is that the object may be doing work in the background such as loading a
webpage which you don’t want visible. Alternatively, you may only want the
object to be visible at certain times which are controlled by script or popups
which we will come onto later.
Z-Order
If you consider a desktop, then all objects on there have an 'x' and 'y'
position which defines where they are on the screen. What you might not
consciously have thought about is their 'Z-Order'. This defines which object or
application appears 'on top' of the other when they overlap. Objects with a
higher Z-Order appear on top of those with a lower Z-Order.
You have three Z-Order options for your objects. The first is 'Desktop'. This
means that running applications will always appear above your objects. They will
open on the desktop. Those interacted with most recently (clicked/moved), will
be on top of other objects.
A 'Normal' Z-Order means like the object will behave like a mini-application.
Objects with a 'Normal' Z-Order appear above or below applications and other
'Normal' Z-Order objects depending on which were interacted with most recently.
An 'Always on Top' Z-Order means that this object will always be visible above
all applications and objects. It functions in the same way as the 'Always on
top' setting of the default Windows taskbar.
Movement
'Movement' can be defined as 'Normal' or 'Locked'. If it is 'Normal' then the
user can drag the object around the screen. If 'Locked', this is not possible.
The user can still move the object by holding down the CTRL key and dragging,
but accidental movement is not possible. You can also choose the 'Default' mode,
which means that its movement is defined by the User's DesktopX Settings as we
discussed in the last section.
Activation
'Activation' defines how the user can interact with the object. If the
setting is 'Default' then it simply follows the user's settings, but you have
three other options. 'Rectangular' activation is based on the size of the source
graphic and ignores any transparency in the object, whereas 'Visible Area' means
that only those areas of the object visible on screen can be interacted with.
The final option 'None' means that the user cannot interact with this object and
any attempts to do so are ignored. This is usually most important for cosmetic
objects on the desktop.
Start with
'Start with' defines the way in which a user interacts with an object. It is
not always the case that you want a user to have to click an object to activate
it. In addition to the standard 'Default' option, you have four more ways in
which a user can interact with the object. Sometimes for example you may simply
want the user to move over an object for something to occur.
Default Cursor
This option allows you to specify which cursor will be displayed when the
mouse moves over the object. This is a very useful way to indicate to the user
the effect of their interaction with the object, for example if you want a user
to drag and move the object rather than clicking it then it would make sense to
use the ‘Move’ cursor.
Popups
OK, now onto 'Popups'. These are a really cool feature in DesktopX that we
briefly mentioned in the Object Types section.
Earlier in this section we discussed visibility. You don't always want objects
to be visible on the screen, and in some cases you may want them to be 'Popups'
whose appearance on screen is controlled by other objects that have the 'Object
Controller' type.
If the object is referenced by an object controller then it will function as a
popup depending on the value set here. If the object is not used as a popup in
this way, then this value is simple ignored.
You should note that when an object is called as a popup then all children of
that object or objects in the same group will also inherit the popup
functionality of that object. This is because popups are just really a shortcut
for the visibility setting. By this, I mean that popups are essentially a
dynamic way of setting the visibility of the object. Visibility is a property
the is shared by group members and children inherit it from their parent. Don’t
worry if you don’t understand the parent/children definition. We discuss them in
more detail later.
Here are the popup types.
'Static' popups - Normally, an Object Controller will toggle the appearance of a
popup (open it or close it depending on whether it already is visible). Once
these 'Static' popups are opened they must have a different Object Controller to
the original one to close them. Think of them like a normal program. Clicking a
link to a program will open it, but clicking the link again will not close the
application. A separate 'Object Controller', the close button, is required to do
this.
'Toggle' popups - Are the simplest types. If the popup is hidden when you click
the Object Controller it will be shown. If the popup is visible when you click
the Object Controller it will be hidden.
'Menu' popups - These popups once displayed, will only remain until the user
interacts with the desktop in anyway. They have this name because they function
just like menus; unless you click them immediately to carry out the function
they are there to do they disappear.
'Volatile' popups - Once a 'Volatile' popup is shown, it will remain until
either the controller is toggled or another popup is opened.
'Volatile (No toggle)' popups - This is just like the previous version, except
that toggling the Object Controller is disabled like in a 'Static' popup, so the
only way to make it disappear is to activate another popup.
Position Adjustment
When you are developing for yourself you will design everything so it fits
your screen perfectly. So, what happens if you change your screen resolution or
you give your work to another user who runs at a different resolution?
Well, DesktopX can make a fairly good guess but it is certainly not perfect, so
if you are going to make good objects you should pay attention to the two
options you see above.
By specifying values in here, you can define how the object will reposition
itself when the screen resolution changes. DesktopX logs what resolution the
screen was designed on and therefore detects changes and reacts according.
The 'Dock to Left' and 'Dock to Right' options mean that the object will remain
the same distance from that edge as it was when originally designed.
'Dock to Nearest xxxx Border' means that the object will align itself to the
nearest edge of the screen (vertical or horizontal depending on option). For
example, if you have an object against the tight edge of the screen then
increase the resolution, you run the risk that it will end up floating away from
the new edge.
An object that repositions based on the 'Center' option will be relatively the
same distance from the center of the screen as it was in the resolution for
which it was developed.
The final option 'Rescale' means that the object will be relatively the same
distance across the screen at different resolutions. For example, and object
positioned at 200,200 on an 800x600 screen would be positioned at 320x341 on a
1280x1024 screen (25% across, 33% down).