Creating Scenarios for DesktopX
Custom Folders
Friday, November 9, 2007 by DArnaez | Discussion: ObjectDock
I'm very close to finish a new version with Cryo64 Exodo YQ2 icons... but this time all icons have a mouser over animation. It look great!
THis is the new idea.
I would like to make a folder icon and when the user mouse over showing an animation like a (for example 640x480) window opened and with some icons inside (these icons linked to programs.
For example... the folder could be a Mozilla folder and inside the window you will find Firefox, Thunderbird, icons... or imagine a Stardock Folder! it would be great, I think.
Anybody know if this is possible?
Thanks in advance!
This is another sample
Reply #2 Friday, November 9, 2007 2:23 AM
(These 640x480 windows...are you talking about drag and drop containers?)
Reply #3 Friday, November 9, 2007 2:38 AM
Yeah!!! if that would be possible it would be great! or I could do an icons set or even using the icons that I made and convert it to objects. The only issue is the program location, because for example: typical user user have firefox at c:/Program Files/Mozilla/ but users like me using Windows XP 64 bit the target will be c:/Program Files (x86)/Mozilla
Reply #4 Friday, November 9, 2007 4:01 AM
Create object, set an image.
Go to Properties > General.
Click on 'change' object type.
Check 'Accepts Drag and Drop'.
However, if you want the dropped icons to be custom icons that would require creating(cloning actually) another object inside the container and then applying an image.
A few ideas on how to do this would be to use OnDropFiles and FileSystemObject to get the filepath/filename etc. Have a hidden object in the container that will be cloned and made visible OnDropFiles, and then maybe modify and use Quentin's shortcut method to set the shortcut and image.
I have no idea if this will work but hopefully it's a step in the right direction.

Reply #6 Friday, November 9, 2007 11:55 AM
Reply #7 Friday, November 9, 2007 6:12 PM
Download LINK
Might try to make an example of the other method I mentioned if I have some time. I'm pretty sure what you want can be done; just haven't figured out how yet. LOL!
Reply #8 Friday, November 9, 2007 6:31 PM
Clicking the folder starts the animation then when the last frame is done or almost done have the container object fade in or whatever you want.
You could leave the animation on the last frame for the background.
Reply #9 Friday, November 9, 2007 7:21 PM
I think we are on the way!!!
Thanks sViz abd SirSmiley!
Reply #10 Friday, November 9, 2007 7:33 PM
In the "window" object, in the Properties > General tab, I set it to accept drag and drop like described earlier. Set visibility to 'no'. Then, in the Relation tab set 'Popup' to 'Menu(Close on any action)'.
The script is in the "icon" object. You'll see that I used the OnMouseEnter and OnMouseLeave functions to start and stop a timer that will make the "window" object visible after two seconds.
Like SirSmiley said, if you add a state with an animation to the "window" object, you can set it to that when it is made visible, so it can expand like in your flash.
Reply #11 Friday, November 9, 2007 8:03 PM
Reply #12 Friday, November 9, 2007 9:36 PM
Use OnStateChanged. This procedure is called when a state has changed, in other words, after the animation finishes. It should go in the "window" object.
Sub OnStateChanged(state)
If state = "animatedstate" Then
DesktopX.Object("closebutton").visible = True
End If
End Sub
Then there's using scripted animations; it's a little more complicated.
Following the directions in the tutorial link, with a few modifications, you would simply check when the last frame is shown and then show the close button.
The one I made used drag and drop so it would all appear once the window appears. However, if you are putting your own icons(seperate objects) in the window, you'd want to make sure they are either child objects or grouped. That way you could set the visibilty of them all using a loop.
Sub OnStateChanged(state)
If state = "animatedstate" Then
For each elem in DesktopX.Object("window").Children
elem.visible = True
Next
End If
End Sub
Reply #13 Friday, November 9, 2007 9:43 PM
Reply #14 Saturday, November 10, 2007 12:53 AM
Please if you can help me would be great. Here I uploaded the .dxpack and the png files in a zip so please download it here
Thank you so much... I promise send you the DX theme when it will be ready... (if you want.. of course.. lol)
Reply #15 Saturday, November 10, 2007 9:14 AM
I was re-reading your posts to get a better understanding of how you want this to function. I made several modifications and eliminated the complication of using a script. I just used state messages instead.
For the icon object:
-I added a mouse up state.
-The mouse up state has a message to set the window to the animation state
For the window object:
-I created an 'animation' state instead of using the default state.
-The animation state has a message to show the close button
-Also created a 'hide' state (which reverses the animation but you don't have to do that if that's not what you want)
For the close_window object:
-Added a mouse up state
-The mouse up state has messages to hide itself and the window.
So, a single click on the icon will open the window and close_window button. (A double click will open the folder shortcut.) A click on the close button will hide the button itself as well as the window.
DOWNLOAD LINK
Let me know if I'm misinterpreting your goal here.
I'd be honored!
Reply #16 Saturday, November 10, 2007 11:28 AM
The big difference is that we will see the contained icons with its perspective and shadow.
Here I upload what I did folowing your instructions.
WWW Link
Reply #17 Saturday, November 10, 2007 12:26 PM
Group the window and the close button, and then set the icon to toggle the group.
The window needs to have a default state and image otherwise it'll be stuck on animation. Had to use a script in the window object to start the animation as soon as it is visible.
UPDATED VERSION
Reply #18 Saturday, November 10, 2007 1:27 PM
The issues is... the animation have 7 frames... but the close button appear from the first one. And the same will be with the icons inside the folder... right? I need to make a new animation because this one show the folder coming from so far in the back. Ok.. now... the objects should to be new objects that could have a mouse away and over... right?
Thank you so much to help me with this. I think the concept of the Cryo64 Operative system is taking shape! Now we only need thousands of programmers for to do it reallity! lol.
Reply #19 Saturday, November 10, 2007 2:39 PM
Alright, some more adjustments are needed to make the button appear after the animation.
Set the icon to toggle only the window.
Make sure the close button visibilty is set to 'no'.
Then in the window script we add this code to show the close button after the animation finishes:
'Called while object's state is changing
Sub Object_OnStateChanged(state)
If state = "animation" Then
Desktopx.Object("close_window").visible = True
'List other objects here
End If
End Sub
UPDATED
I think that would be best. Even more adjustments are needed to accomodate the container objects. Make the objects in the container seperate objects, set their visibilty to 'no', set parent to the window object, and group with 3DWindow Container1.
Next, we remove the mouse up state from the close button. Instead we'll use a little more scripting to handle closing the window and its contents. Check it out:
UPDATED WITH CONTAINER OBJECTS
Please login to comment and/or vote for this skin.
Welcome Guest! Please take the time to register with us.
There are many great features available to you once you register, including:
- Richer content, access to many features that are disabled for guests like commenting on the forums and downloading skins.
- Access to a great community, with a massive database of many, many areas of interest.
- Access to contests & subscription offers like exclusive emails.
- It's simple, and FREE!







Reply #1 Friday, November 9, 2007 12:38 AM
I do believe the folder with icons is possible.