topbanner_forum
  *

avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Tuesday March 19, 2024, 5:52 am
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Author Topic: CDCompanion (ALPHA release) shape:spiral,lemniscate,drag&drop shape  (Read 21673 times)

Rigel

  • Member
  • Joined in 2008
  • **
  • Posts: 100
    • View Profile
    • Donate to Member
Hi,
   when  I was doing some move experiments I played with some instructions to obtain this: Spiral Shape. :D
Total customizable:
  - Distance between icons
  - Distance between spires
  - Type of spiral
  - Drag and Drop allowed  maintaining shape
  - Three rotation mode
  - Fusion with my other app for multiple instance: https://www.donation...ex.php?topic=21864.0

THIS IS AN ALPHA VERSION (only for expert, use at own risk):
-there are other thing to do and to test
-only spiral is allowed in the
-The new CD drag element ability is not enable in this alpha
-Multiple CD is not test. I change many thing so instruction in my "multi CD" pages are not correct, I change it when I have more time.



Ok, in rar file you can find an exe and a config file. The following line are an example of configuration if single CD
-name Main
-path C:\Users\MYUser\games\CircleDock.exe
-circle 1
-shape spiral
-key F9
-modifiers ctrlalt
In this version there are NOT error check so You must to be sure to use -option with right word like the one in config file.
-name is the name of CD. This parameter must be unique for all CD because its used as parameter to call other CD from parent CD. If You add an CDCompanion.exe to one CD with argument NameYouChoose when you click on icon it opens the relative NameYouChoose CD
-path is the path name where you put CD
-shape is the shape, for now only spiral (if you don't specify this option the shape is circle)
-key is one key of keyboard, joystick or mouse button (LButton,  Rbutton, Mbutton ...) but is better you use a combo hotkey and set it to one special mouse button with its original program.
-modifiers ctrlalt Is a string with ctrl,alt,shift to use with key. (I use ctrlalt F22 set to one of my special mouse button). It's not import  the order but that is a string with the modifiers you choose. (If not used there aren't modifier)
-circle is a little complex and it is used to hide or show brothers CD (example: in one CD you add icon to call more CD with the same center. You open CD in second circle from main CD, then you open an other CD from main CD in the same circle and this with parameter CDCompanion hide the CD from second.
es1:
   CD > item1 on second circle
   CD > item2 on second circle => hide item1
es2:
    CD > item1 on second circle > item11 from second circle on third circle
    CD > item2 on second circle => hide item1 and its son  item11 and all other offspring

There are other important option that I explain in next Alpha version, It's already implemented but I don't test all so I write about it when They are more stable or tested.
Excuse me for this incremental release but I have many problem detecting original CD behaviour because it don't set the Windows style of its elements and don't use label to find it. For this reason you can NOT use nothing of the show/hide CD system, not when you click an item, nor with edge detection, nor other one. You must set CD to start hidden and then use key setted in CDCompaion or the CDCompanion item/icon to hide/show all the CD. I'm sorry for show/hide problem but CD don't signal its state so it's the same for hidden or shown.

Rotation modes:
Mode 1: all the spiral rotate on center
Mode 2 (new): the spiral don't change but the element turn exchanging thier place so:
  •    1-2-3-4-5-6-7-8-9 -> ctrl-mouseScrollDown ->
  • -> 2-3-4-5-6-7-8-9-1 -> ctrl-mouseScrollDown ->
  • -> 3-4-5-6-7-8-9-1-2 ....
or
  •    1-2-3-4-5-6-7-8-9 -> ctrl-mouseScrollUp ->
  • -> 9-1-2-3-4-5-6-7-8 -> ctrl-mouseScrollDown ->
  • -> 8-9-1-2-3-4-5-6-7 ....

Mode 3 (???): maybe the 2 above joined
Mode 4 (experimental): screw mode, when you turn towards center the spiral constrains progressively and when you turn away from center the spiral opens like a twister

Lemiscate (last 2 image) suggested by sgtevmckay: see below


Future Todo
  - Special spiral shape
  - Other shape

p.s. I Release this with my ohter external app  :P

26-02-2010 15-39-50.png
26-02-2010 15-38-50.png
26-02-2010 15-45-09.png
26-02-2010 15-42-50.png
26-02-2010 15-41-10.png

Lemiscate is suggested by sgtevmckay
You can change:
  • the shape of petal lengthening it or the general shape in many mode with two number 0 < b <= a
  • distance between icons in degree
Lemniscata.png

There are three type of rotation:
  • Orange rotation 1: the item takes place of next/previous one
  • Orange rotation 2: the items move smoothly along the Lemiscate  
  • Purple rotation: The lemiscate rotate around his intersection
Lemniscata roto.png


Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest.
« Last Edit: May 08, 2010, 11:09 AM by Rigel »

sgtevmckay

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 838
  • Magis Esse
    • View Profile
    • Rainmeter
    • Read more about this member.
    • Donate to Member
Re: External App: CD spiral shape(Preview)
« Reply #1 on: February 26, 2010, 11:13 AM »
Woot....this is great  ;D

Hopefully we can get the rotation in at some point  :Thmbsup:

Rigel

  • Member
  • Joined in 2008
  • **
  • Posts: 100
    • View Profile
    • Donate to Member
Hi,
   I try also traingular shape in two version but effect is not good  :(
Hexagonal shape is similar to circle, obviously  :P
If you want some shape ask here specially of you write the geometrical formulas
Bye

p.s. I now find a way to create personal shape via drag and drop but is hard and so it will come in future
Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest.
« Last Edit: February 27, 2010, 02:55 PM by Rigel »

Rigel

  • Member
  • Joined in 2008
  • **
  • Posts: 100
    • View Profile
    • Donate to Member
Rotation fixed and 100% works  :D
Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest.

sgtevmckay

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 838
  • Magis Esse
    • View Profile
    • Rainmeter
    • Read more about this member.
    • Donate to Member
This great

Thanks for all your work Rigel  :-*

Rigel

  • Member
  • Joined in 2008
  • **
  • Posts: 100
    • View Profile
    • Donate to Member
Thanks  :D
I found an other rotation mode:
Mode 1: all the spiral rotate on center
Mode 2 (new): the spiral don't change but the element turn exchanging thier place so:
  •     1-2-3-4-5-6-7-8-9 -> ctrl-mouseScrollDown ->
  • -> 2-3-4-5-6-7-8-9-1 -> ctrl-mouseScrollDown ->
  • -> 3-4-5-6-7-8-9-1-2 ....
or
  •     1-2-3-4-5-6-7-8-9 -> ctrl-mouseScrollUp ->
  • -> 9-1-2-3-4-5-6-7-8 -> ctrl-mouseScrollDown ->
  • -> 8-9-1-2-3-4-5-6-7 ....

Mode 3 (???): maybe the 2 above joined
Mode 4 (experimental): screw mode, when you turn towards center the spiral constrains progressively and when you turn away from center the spiral opens like a twister
Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest.
« Last Edit: March 07, 2010, 07:50 PM by Rigel »

sgtevmckay

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 838
  • Magis Esse
    • View Profile
    • Rainmeter
    • Read more about this member.
    • Donate to Member
 :o Damn...this going to be great.......I am thinking of stuff  :P

You asked for suggestions at one point, and I do not even know of the problems that would be faced in doing it, but would it be possible to create an Infinity loop???

infinity_loop.jpg

As the arrows imply, this is not two circles merged, but one complete loop

I can not even give you a mathematical solution for such a concept  :-[

BUT!, I am also thinking that when you have this completed to a point where you are satisfied, and are willing to do a full release, I would appreciate your permission to release this companion tool to the main wikidot site as a download.....What say you?
With your efforts and time, this Circle Dock companion controller deserves no less recognition.

Rigel

  • Member
  • Joined in 2008
  • **
  • Posts: 100
    • View Profile
    • Donate to Member
Thank you very much
I'm proud of your proposition to add my app to wikidot. My app is a gift to community hence you have my authorization to do what you want but only if you have the authorization by Mark. Although seems difficult to do my app is not complex, I spent the major part of the time to hook the CD items and to filter the mouse functions.
So Mark can realize all my feature in a tenth of my time and so You must have his authorization. When I finish I release my app and then the math algo in pseudo-code for common use ;)

However your shape is a lemniscate often known as an oval of Booth. I found other math formulas like flower shapes where you can chose the number of petal
The difficulty to use a shape generally is not the formulas but you must find a way to outdistance the items along the path and then find a linear function for the rotation.
In case of lemniscate there is an other problem when the lines intersect each other.
The simplest solution is to ignore the problem and the icons collide.
The best solution is to use a z-axis to make smaller the items passing under the intersection progressively where they go closer to it.
I'm working on second solution also for other shape like twister but for now I find nothing to do that.  :(

When my work on drag&drop is finish maybe I upload an alpha version only for shape.
Bye
Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest.

Rigel

  • Member
  • Joined in 2008
  • **
  • Posts: 100
    • View Profile
    • Donate to Member
Lemniscate added as sgtevmckay's desires  :D
See the last 2 image of first post for info.
Bye
Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest.

sgtevmckay

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 838
  • Magis Esse
    • View Profile
    • Rainmeter
    • Read more about this member.
    • Donate to Member

Archon of Fate

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 174
    • View Profile
    • Read more about this member.
    • Donate to Member

Rigel

  • Member
  • Joined in 2008
  • **
  • Posts: 100
    • View Profile
    • Donate to Member
Update:
I'm trying a new algo, Cassini Oval, it's little difficult but when I finish I can have many circles like image below and also the counter-rotation
CassiniOvalCurves_700.gif
Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest.

Markham

  • Honorary Member
  • Joined in 2009
  • **
  • Posts: 404
    • View Profile
    • Circle Dock
    • Donate to Member
I have kept silent until now, however, I have some concerns.

Is there a practical application for all of this, or is it simply designed as "eye-candy"?

My real concerns though are more about the technical aspects and, especially Circle Dock's response to commands, its true purpose and overall stability. Have you considered, for example, what happens if a user decides to hide the dock, add or remove items, display or show labels, change levels or even terminate the program?

I think what you have produced is interesting but that you are tackling the issue in the wrong way. As a proof of concept, it is fine, but I suggest you view this as a possible Docklet, co-operating with Circle Dock, and not as something that is stand-alone.



Mark

Rigel

  • Member
  • Joined in 2008
  • **
  • Posts: 100
    • View Profile
    • Donate to Member
Hi, Mark
I like customize my desktop experience so I made some experiment initially for multiple instance where there are infact some restriction becouse the CD "show and hide" system is not standard and not recognized by windows so the users must use my show/hide system.
Other little problem is drag&drop but I think I will solve.
Thera are other problem based on event but they don't cause data lost or instability, only temporary graphic issue for now resolving with show/hide. I'm studing a way to intercept the varius event to solve all problem but I prefer finish the beta release first.
My program is in advanced of state and there many line code so I don't think to translate/pass in other language like docklet. If you want I pass you the geometrical code or better if you pass me the method for eclipse I send you the methods for others shape.
For multiinstance app the problem is show/hide system and multi drag&drop but you don't like the multiinstance system so I think remains like now.
If you want my code I'am to your orders  :D

Bye
Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest.

Rigel

  • Member
  • Joined in 2008
  • **
  • Posts: 100
    • View Profile
    • Donate to Member
Hi,
   I add the rar with my app for multi CD and shape. Thanks to Sarge :) for the name: CDCompanion
Excuse me for the partial release but there are many test to do and I have less time day by day.
Tomorrow I test others shape and if nobody post problem in the next few day I post the others option for multi CD.
Then, when the base is stable, I will search a way to enable new drag and drop system.
I hope to find the time to do a better guide, for now keep patience :)
Please post comment, bug or suggestion.
Bye
Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest.
« Last Edit: May 08, 2010, 11:16 AM by Rigel »

sgtevmckay

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 838
  • Magis Esse
    • View Profile
    • Rainmeter
    • Read more about this member.
    • Donate to Member
hello Rigel, it is good to hear from you  ;D
Markham and I were afraid that we may have lost you there for a while.  :-*


Rigel

  • Member
  • Joined in 2008
  • **
  • Posts: 100
    • View Profile
    • Donate to Member
Hello  ;D
I'm glad to find you. I had to do many many thing but in Italy we can say ironically "L'erba cattiva non muore mai" ("The evil grass never die")  ;D
I had some trouble that slow me down and then I must rewrite all CDC two times because first implementation was to hard to upgrade and in the second version arrays structure wasn't stable and too slow. Then I thought to suspend the project waiting for .Net ver 4 where I hope it automatically set labels and show style to great speed up my CDC and to have more compatibility with CD but yesterday I had a big idea so I solve many problem e VoilĂ , les jeux sont faits!  ;D
Indeed in some moments the complexity of the code and some trouble made me think to reproduce my vision of CD in Java but my Girlfriend impugned a shoe with a very and impressive long heel and she has menaced me to use on a very precious part of my body  :P so I desist  :P
Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest.
« Last Edit: May 09, 2010, 01:37 AM by Rigel »

mouser

  • First Author
  • Administrator
  • Joined in 2005
  • *****
  • Posts: 40,896
    • View Profile
    • Mouser's Software Zone on DonationCoder.com
    • Read more about this member.
    • Donate to Member
Rigel, you have a wonderful way with words  ;D ;D ;D

sgtevmckay

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 838
  • Magis Esse
    • View Profile
    • Rainmeter
    • Read more about this member.
    • Donate to Member
Rigel, you have a wonderful way with words  ;D ;D ;D

Indeed  8)

Rigel

  • Member
  • Joined in 2008
  • **
  • Posts: 100
    • View Profile
    • Donate to Member
Rigel, you have a wonderful way with words  ;D ;D ;D

Really???? Thanks.  :D
But you find my English funny, strange or correct? I hope it's good because my future father-in-law came from New York and He speaks a very good Italian hundred times better than my english.
Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest.

sgtevmckay

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 838
  • Magis Esse
    • View Profile
    • Rainmeter
    • Read more about this member.
    • Donate to Member
Have no worries friend...Your English is fine  ;)

Rigel

  • Member
  • Joined in 2008
  • **
  • Posts: 100
    • View Profile
    • Donate to Member
Many many thanks  ;D
Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest.

Rigel

  • Member
  • Joined in 2008
  • **
  • Posts: 100
    • View Profile
    • Donate to Member
Hi,
 one month is passed and I made many bug fixes and improvements but it's very difficult to test and correct all the code and from now I don't have other time  :( 
I'm very sad to stop the project and now I have only two way:
 - Seek help from the community: programmers and testers
 - Make the code public
The code is made in AutohotKey so if there are programmer that now it, please, contact me through this thread.
If nobody want the code I post it at the end of the next week.

I hoped to finish the shape module and then post the mathematical code and at the end the entire project code but now is all for you also if uncompleted.

TODO List:
- Finish the Cassini oval system.  Curve formula is OK but it must find a way to divide icon in more oval to maximize the curve
- Multi CD system is finish but to test a solve possible problem
- Add shape parameters to expand, modify the curves
- Add error detection system to config file, now only a correct config go on and other are ignored
- Add a gui

The code is little complex because is a little war against CircleDock finding a way to hide/show the cd, find a way to add elem and redraw the shape, find a way to do all the thing that CircleDock do a thing.
It would be simpler if Mark integrate the shape module inner his Circledock and this thing would decimate
my code
Also the multi-CD is more simplest in the original CD code similar to ObjectDock.
So if Mark want to use my code I gift it to him with many please.
Bye
Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest.

sgtevmckay

  • Supporting Member
  • Joined in 2009
  • **
  • Posts: 838
  • Magis Esse
    • View Profile
    • Rainmeter
    • Read more about this member.
    • Donate to Member
Greetings Rigel.
It is good to hear from you, and I hope I find you well  8)

I am a bit saddened, but I fully understand the lack of time that is placed on many of us.
Our Lives!
Ourselves!
Must come first in all things  ;)

Regardless of response, I would be honored if you stop in every so often and let us know how you are doing, and that Circle Dock is doing what you need it too.

No matter what;
Have fun   :Thmbsup: