DesktopX: Creating a Shortcut (Advanced)
From WinCustomize Wiki
| Create a shortcut with DesktopX (Advanced) | ||||||||
| ||||||||
This tutorial will show you how create an advanced shortcut in DesktopX. It will have more options than the basic DesktopX shortcut object. I'll show you how to create the object and script. You'll need a little knowledge of scripting and DesktopX. To make it, I have read RomanDA's tutorials which you can find here: RomanDA articles
You should, at each step of this tutorial, see the picture for more information.
Contents |
[edit] Create the Object
First right click on DesktopX Builder systray icon and select "create object"...
Summary Information
Then, in the object's properties in the "Summary" tab, enter the author name (guess it's you). Set the width to 50 and height to "follow aspect ratio". This is so that all the pictures of your shortcut will only be 50px). Finally, set the object ID.
Add a Custom file
No no, it's not finished yet. Now you need to add the main picture of your object. Go to "custom files" in the "Summary" tab and then click "add". Browse for your picture. Here it's the earth. (Note: Remember the full name of the image file, you'll need it in future.)
Here it's "Blue + Black Internet 1.png"
Add States
Now, you'll add some states. In the "States" tab, click on add.
Then, select "mouse away", "mouse over", " mouse down", and "Nothing". To make the "Nothing" state simply edit the name of the state.
In these states, change the appearance to the same picture that you embedded earlier. ("Blue + Black Internet 1.png") It can be found in the drop down menu.
Then, add some effects in the "color" tab. Here I set the brightness to 50 on "mouse over" and 30 on "mouse down", same for the contrast.
Apply and save. In case of an error you should keep a good copy of the object.
[edit] Create the Script
First go to Object Properties and in the "General" tab click on "new" script.
The first part of the script are the OnScriptEnter, OnScriptExit functions. These will be called on when the widget first runs and when the widget closes. This script will call other functions for saving and loading user settings explained later.
| SCRIPT CODE | |
|
|
|
[edit] Right Click Menu
This script for the right click menu will allow the user to choose an image for the shortcut's icon, and the ability to choose between a file, folder or url as the shortcut's target.
| SCRIPT CODE | |
|
|
|
You can see the entire right-click menu code above. I'll explain some of the parts.
Case 1 is the part of the code that changes the picture of the shortcut on all object states: "mouse away", "mouse over", and "mouse down". (Note: "nothing" state will be for another function)
"System.FileOpenDialog" will open a dialog window to choose the file. "Select a Picture...." will be the title of the dialog window. "Pictures: jpg,bmp,png|*.jpg;*.bmp;*.png" will allow the user to browse for those types of files only.
The first line in case 2,3, and 4, will reset the original target in case of an error.
Object.States("Nothing").picture="Blue + Black Internet 1.png"
As you can see in the excerpt above and in the following code excerpts, the file or folder the user selects as a target is set as the "Nothing" state's picture. To explain the trick of this method and the "Nothing" state, we basically use the "Nothing" state's picture to store the target address whether it's an actual image file or not. Anytime the target is called it will be called from the "Nothing" state's picture. The target is also set as the object.command.
Case 2 will open the file dialog:
x = (System.FileOpenDialog("Select a File...", "", Folder, "All files|*.*", 0))
If x <> "" Then
Object.States("Nothing").picture = x
End If
Case 3 will open the folder file dialog:
x = (System.FolderDialog("Select a Folder...", "",&H4000))
If x <> "" Then <br>
Object.States("Nothing").picture = x
End If
Case 4 will open the URL/EMAIL inputbox:
Dim Input
Input = InputBox("Enter URL: ex: 'http://www.wincustomize.com' or an email ex: 'mailto:quentin94.website@free.fr'", "Select URL...")
x= Input
If x <> "" Then
Object.States("Nothing").picture = x
End If
[edit] Save/Load User Settings
This is where you'll save and load the information of the object stored in the "dim" variables 'foldername', 'Icon', 'target'.
| SCRIPT CODE | |
|
|
|
[edit] Tooltip
In this code you'll script the object's tooltip:
| SCRIPT CODE | |
|
'will call on a fix time setinfo |
|
[edit] Launch the Shortcut
This script will launch the shortcut when you left click on the object. If it's an image it will open it on your default picture's editor. The address of the shortcut is on the "Nothing" state:
"target = Object.States("Nothing").picture"
| SCRIPT CODE | |
|
|
|
Well now you'll need to save your work and export it as object/widget or gadget or add it to a theme. Whatever you want!
I hope this tutorial has been helpful.
