Previous Page

Theme Editor

8 Next Page

The CursorFX Theme Editor allows you to edit existing cursor themes or create entirely new theme packages.  To edit the existing theme, first select the theme, then click on the CursorFX Theme Editor Theme Editor icon.  To create a new theme package, click on the New Package button at the bottom of the CursorFX window.

Control Panel - ways into the editor

CursorFX File Formats

The CursorFX unique file format is ".CursorFX" (without quotes) and is used for existing themes or ones you create with the Editor.

CursorFX File Format:

  • Is a binary file.
  • Bundles different types of content: cursors, effects, trails, scripts, and graphics.
  • It can only be opened by CursorFX.
  • It doesn’t let you extract original graphics (PNGs).
  • Bundles meta-data: author, version, etc..
  • Compressed, in order to achieve minimum size.

CursorFX also supports (read-only) old .CurXPTheme files. They can be imported and be visible in the common cursors list. They can also be opened in the editor but you will only be able to save as .CursorFX.

 If a .CursorFX file only contains:

 It will be considered...

Effects ...an Effects package and be visible in the Effects list of the CursorFX Control Panel.
Trails ...a Trails package and be visible in the Trails list of the CursorFX Control Panel.

.CursorFX can also contain cursors AND effects and trails that are theme specifics. You will be asked if the currently loaded Effects or Trails are to be overridden by the theme’s Effects/Trails.  The other way around, you can apply Effects or Trails to your current Cursors/Effects/Trails combination.

Creating Themes

  • You can open multiple themes at the same time and you can copy and paste elements across different themes.
  • A single theme can include: Cursors, Special Effects, and Trails (tabbed pages).
  • Cursors are grouped into Normal and Pressed states. That is, when you are pressing the mouse button, CursorFX will display the “Pressed” cursor if available, or keep displaying the “Normal” cursor if the “Pressed” one is unavailable.

Effects

Effects are animations displayed once on a specific event (such as a double-click), available effects are:

  • Left-button down
  • Left-button up
  • Left-button double click
  • Middle-button down
  • Middle-button up
  • Middle-button double click
  • Right-button down
  • Right-button up
  • Right-button double click

Trails

Trails are simple animations that are displayed following the cursor movement. They are not displayed when the mouse is not moving.  Available trail modes are:

  • All states: a single trail that will run all the time.
  • All mouse down: a single trail that will be displayed when the mouse buttons are down only.
  • All mouse up: a single trail that will be displayed when the mouse buttons are up only.

Graphics

CursorFX graphics must be done in 32-bit PNG graphics (RGB + alpha channel) file format.  There is no maximum size (in pixels) an image can be when importing into CursorFX.  However, the larger the image (i.e. 600 x 600, 1,000 x 1,000 pixels), the more memory and processing power you will need to handle it.  If you notice CursorFX is using a lot of your CPU, consider downsizing the pixel size of your images.

Animations must be implemented into a single horizontal strip of frames and saved as PNG. You can use AniUtil.exe, included with CursorFX to select a batch of separated frames and automatically build an optimized PNG strip. Here the word "optimized" is very important in order to save runtime memory when using themes.

AniUtil can automatically detect what the unused (blank, or zero alpha) margins are on ALL selected frames and cut them when building the PNG strip.  That way the common frame size will be the smallest necessary, to include all visible (or whose alpha is > (greater than) than tolerance) pixels of all frames.

AmUtil utility 

The AniUtil.exe utility is located in your \Program Files\Stardock\CursorFX folder, unless you installed to a different folder.

CursorFX Theme Editor: Overview

Open the CursorFX Theme Editor by clicking on the New Package button on the MyCursors screen of the Control Panel.  The following window will be displayed, and consists of: a menu along the top File menu, and three tabs Three tabs.

Theme Editor - new package

First, let's look at the top menu options and get familiar with what each does.  The following is the File menu:

File menu

The following list explains what each menu item does.  A hot key, is a shortcut way to perform a task using the keyboard instead of the mouse.  It's typically a combination of keys that you must press at the same time, such as pressing the <Ctrl> (Control key) and the <N> (N) key.  It doesn't matter if your keyboard is in upper or lower case (Shift / Caps Lock).

File Menu Quick Reference

 Clicking on this...

 Will do this

New This will open a new window with a blank cursor theme (no skins, effects, trails).  The hot key is <Ctrl> & <N>.
Open This will prompt you for a CursorXP or CursorFX theme file to open.  The hot key is <Ctrl> & <O>.
Properties If this is a new blank cursor package, this will open an empty Theme Properties, where you can enter all of the information about the theme your creating.
If your editing an existing theme, the Theme Properties will display information about that theme.
The hot key is <Ctrl> & <P>.
Close This will close the cursor theme your editing. If you have multiple themes open, it will close the one that is active (the one you last clicked on).  No hot key available.
Save This will Save changes made to the theme your working on.  If it was a new theme and you never saved it, CursorFX will prompt you for a filename.  The hot key is <Ctrl> & <S>.
Save as This will prompt you for a filename to save your theme as.  No hot key available.
Apply This will apply any changes made to the theme your working on, to your cursor so you can see the results.  Hot key is <Ctrl> & <A>.
Save and Apply This will save changes made and apply those changes to your cursor.  If you haven't already saved it under a filename, it will prompt you for one.  Hot key is <Ctrl> & <E>.
History This is a history of the last files opened.  You can click on any one of them to open the file, if it isn't already open.  No hot key available.
Exit This will close the Editor and all theme(s) you had open.  If you hadn't saved any changes, it will prompt you to save them before closing.  No hot key available.

The Edit menu allows you to Undo last changes, Cut graphics, Copy graphics, and Paste graphics.

Edit menu

An alternate method to copy and paste graphics from one cursor state to another, is too right-click on a cursor and select Copy.  Then click on the cursor state where you want to place the graphics, right-click and select Paste. With multiple themes open, you can copy & paste between them.

Copy menu

The View menu allows you to turn on (checked) and off (unchecked) the Status Bar.

View menu

The Status Bar is located at the bottom of the Editor window.

Status Bar

The Window menu allows the standard arrangement of windows and lists which ones are open.

Window menu

The Help menu displays information about using CursorFX.

Help menu

A theme can include: Cursors, Special effects, and Trails (seen as three tabs).  The Cursors tab you've already seen, below are the Special effects and Trails tabs.

Special effects tab

Below is the Trails tab, with the selected state highlighted in blue and the black cross marking the hot spot.

Trails tab

Each tab has the same options in the editor and the following table explains each one. 

Theme Quick Reference

 Option

 What it does

Normal cursor states This means the cursor states in the frame below it are the Normal (no buttons pressed) states of your mouse's cursor.  Each state has it's own space and can be altered by you, by importing graphics, copying graphics from another cursor in this theme or another theme.  You can also change the frames, etc. as described below.
View pressed state Clicking this allows you to change the view of the graphics (skins) for each state of the pressed mouse buttons.  This is a toggle, between view pressed state and view normal states.
Cursor This is a sample of the space allowed for a given cursor state.  As you click on a cursor state, it changes to a light blue to show it has been selected.  The small black cross indicates the actual hot spot and can be moved by simply double-clicking inside the cursor area.  Or you can type the new X, Y coordinates into the Hot Spot X and Hot Spot Y fields.  The no symbol No symbol indicates there are no graphics for this cursor.  The text beneath it describes the state.
Hot spot X The X coordinate relative to the top left corner of the first frame that will be centered on the actual cursor position. The editor visually shows you the actual hot spot represented by a black cross. You can adjust it simply by clicking on the preview.
Be careful on editing the correct hotspot coordinates, since this is what mostly affects the cursor’s correct usability and feeling.
Hot spot Y Same as Hot spot X, but for the Y coordinate.
Center Centers the hot spot.
Frames The total number of frames in the animation strip, or 1 if you are using a single frame.  A strip is imported using the Import graphics button.
Loop If checked, the animation will automatically repeat (or loop).  Old themes have loop on (box checked) by default.
Unchecked, the animation won't loop.  However, you can include a loop(s) in a script that is more complex.
Interval This is the interval measured in milliseconds (ms) between each frame. 
1,000 ms = 1 second.
50 ms = 20 frames per second (FPS).
Alternate animation If checked, under simple animation mode, it will execute the animation strip once forward, then once reversed, then loop (repeat).
Scripted animation Lets you manually specify: special execution steps, different timing, timeline, loops, etc..
Import graphics Lets you browse for the PNG file to import and associate to the current item’s graphics.
Remove this cursor button  Removes the associated graphics and makes the cursor/effect/trail undefined (not present).
Trails per second  (Trails tab only) Enter a number for how many trails per second to be displayed.

Animation Scripts

Creating scripts provides you with the real power to create unique cursor themes.  This lets you manually specify: special execution steps, different timing, timeline, loops (repeat steps), etc..  Here is a set of rules to follow in the creation of animation scripts:

  • A script is made up of one or more tokens.  Example: 1,3000 (2 tokens) or 6-10 (one token).
  • A token defines an execution of one or more frames and its timing (interval).
  • CursorFX will execute from the first to the last token, then loop automatically.
  • Tokens can be separated by a carriage return (Enter key) or by a semi-colon ";" character (without quotes).
  • Frame intervals are separated by a hyphen (dash) "-" character (without quotes).
  • Timing is specified adding ‘,ms’ (without quotes).
  • To include a loop (repeat step(s)), use the reserved word "repeat", followed by the number of times to loop.
  • To stop a loop, use the reserved words "end repeat".
  • You can have nested loops, that is, loops inside of loops.

Example of a script:
1,3000
2-5,30
6-10
9-6
7-10
9-2,60

Following is a breakdown of what each line in the script does:

 Step

 Tokens

 Description

1 1,3000 Displays the first frame (1) for 3000ms (3 seconds).
2 2-5,30 Then runs forward from the 2nd to 5th frames, with 30ms interval between frames (about 32 FPS).
3 6-10 Then goes forward from the 6th frame to 10th frame.  No timing specified, so it assumes 30 ms (from step 2).
4 9-6 Then goes backward from the 9th frame to the 6th frame.  No timing specified, so it assumes 30 ms.
5 7-10 Then goes forward from the 7th frame to the 10th frame.  No timing specified, so it assumes 30 ms.
6 9-2,60 Finally it executes backwards from the 9th frame to 2nd frame, with a slower frequency (60 ms, about 16 FPS).
7   The animation will loop (return to step 1) and show the first frame for 3000ms (3 seconds).

In short, the script will display the following frames in this order:

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 6, 7, 8, 9, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.

Looping

Looping (or iteration) is a powerful technique to repeat one or more steps. A loop has a beginning (repeat X, where "X" is the number of times to loop) and an end (end repeat).

Example of a simple loop:
1-4,30
repeat 2
5-10
9-4
end repeat

Following is a breakdown of what each line in the script does: 

 Step

 Tokens

 Description

1 1-4,30  Displays frames 1st to 4th, with 30ms interval between frames.
2 repeat 2  This starts the loop, telling CursorFX to repeat the loop 2 times.
3 5-10  Then goes forward from the 5th frame to 10th frame.  No timing specified, so it assumes 30 ms (from step 1).
4 9-4  Then goes backward from the 9th frame to the 4th frame.  No timing specified, so it assumes 30 ms.
5 end repeat  This ends the loop, so it returns to step 2 to repeat a second time.
repeat 2  It knows it has looped 1 time, it checks the command (repeat 2) and continues to the next line.
5-10  Then goes forward from the 5th frame to 10th frame.  No timing specified, so it assumes 30 ms (from step 1).
9-4  Then goes backward from the 9th frame to the 4th frame.  No timing specified, so it assumes 30 ms.
end repeat  This ends the loop, so it returns to step 6.  It knows it has looped 2 times, checks the command (repeat 2), stops the loop and ends the script.

In short, the script will display the following frames in this order:

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 6, 5, 4, 5, 6, 7, 8, 9, 10, 9, 8, 7, 6, 5, 4.

Example of a Nested Loop:
repeat 2
1-3,30
repeat 3
4-6
end repeat
end repeat

Following is a breakdown of what each line in the script does:

 Line

 Tokens

 Description

1 repeat 2  This starts the (outer) loop, telling CursorFX to repeat the loop 2 times.
2 1-3,30 This displays frames 1st to 3rd, with 30ms interval between frames.
3 repeat 3  This starts the nested (inner loop), which tells it to repeat the following line 3 times. 
4 4-6  Then it displays frames 4th to 6th.  No timing specified, so it assumes 30 ms.
5 end repeat  This ends the nested (inner) loop, so it returns to line 3 to repeat line 4 a second time and third time, before ending (exiting) the loop and continuing with line 6.
end repeat  Now it returns to line 1, knows it's looped 1 time.  It starts to loop a second time by going to line 2, and then line 3 which tells it to loop 3 times (line 4).  Once that loop is done, it goes to line 6.  Then back to line 1, compares the number of times it has looped (2 times) to the command "repeat 2" and stops the loop and ends the script.

In short, the script will display the following frames in this order:

1, 2, 3, 4, 5, 6, 4, 5, 6, 4, 5, 6, 1, 2, 3, 4, 5, 6, 4, 5, 6, 4, 5, 6.

As you can see, there is a lot of power in scripting your animations.  By controlling what frame is displayed for how long, when the mouse button is being pressed down, then released (coming back up), repeating select frames, and more can create a very unique theme.  Let your imagination go and experiment!  If you create something enjoyable and want to share it, post it online at www.stardock.com.