From don@brillig.umd.edu Mon Jan 12 23:08:21 1987 Date: Fri, 26 Sep 86 17:19:42 EDT From: Don Hopkins To: mark@markssun.cs.umd.edu Cc: don@brillig.umd.edu Subject: winding business Winding is a method to move between menus. Effectivly, when you move the mouse in a complete circle during menu selections, the menu changes. (In polar coordinates, the circle is perpindicular to all the rest of the slices.) Note that by the definition I gave, the circle you move the mouse in does not have to have the menu center inside of it. Possibly it could be defined such that it changed the menu when you were at the part of the circle in some specific direction (i.e. up, or in the direction of the 0th menu item). Upon putting some more thought into it, it seems somewhat complex, though. I am not sure how useful it would be. It might be simpler of it were defined as circles around the center of the menu. Perhaps that's something I should wait until all I have to do it write a couple of lines of PostScript to try out. It could be used to give you "stacks" of pie menus, like the stacks of pulldown menus provided by XMenu. I.E., a menu would have panes, which you choose by winding through the menu, and the panes have slices, which are choosen with a mouse up even. I am starting a cleaner rewrite that emulates the XMenu interface and incorperates some new ideas. I don't want to use too much of that code, though. It's gross and disgusting and very pulldown oriented. One thing that's easy and useful to implement: when you add a slice to a menu, you give it a size parameter. When the menu is computed, all the slice sizes are added up, and each slice is made 360*size/total degrees of arc in size. So if they're all the same number, they will all be the same size. If you give each in 100*percentage of pie, and the total is 100, it will do the right thing. If you give them all in degrees of arc, and the total is 360, it will do the right thing. I'm also implementing inactive slices, which can't be choosen. (i.e. return NO_SELECTION when choosen.) You may look in brillig:~don/piemenu to see what I did on this last night. There are still several functions I'd like to add and change. Next step is to drink lots of tea and pour all the code in. -Don