Folks -
I've just committed a bunch of changes that enable one to play with Apple touch-based devices. Just point your iPad at... http://www.lively-kernel.org/repository/lively-kernel/trunk/source/kernel/index.xhtml (the latest release), and it should automatically do the right thing for your device. There are three changes: 1. A toggle between "zoom/pan mode" and "mouse mode", indicated in code by whether UserAgent.touchIsMouse is false or true respectively. Form the user's standpoint, this is pretty simple: If the cursor looks like a normal cursor, then you are in "mouse mode"; if it looks like a little blue pentagon, then you are in zoom/pan mode. Lively will switch modes if you click (touch briefly) in an unoccupied part of the world. 2. Pie menus are enabled so that you can copy and drag objects and invoke their menus without needing modifier keys. Although it's a bit sluggish, pie menus will do their best to help you out -- in other words if you simply click down and up, they will give you the normal object menu with an extra "pie menu help" item at the top. The help menu will list all the pie menu choices in a regular menu where you can read them and even activate them. The current settings are: 12:00 undo (~) 1:30 duplicate (o-->o) 3:00 move (o-->) 4:30 scale (o<O) 6:00 show/hide handles 7:30 delete (X) 9:00 edit style (<>) 10:30 rotate (G) The test in parentheses appears on the pie menu, so this is a short form of documentation. Some helpful mnemonics: Make more objects (dup) is directly across from delete Scale and rotate are directly opposite each other too Can you see the capital G as a rotate arrow? ;-) In the world the pie menu just gives you area selection plus an item for invoking zoo/pan mode (O). 3. Rollovers don't work on a touch screen, so we have to activate the shape editing handles manually. This is accomplished by a downward stroke on an object. Do it again and the handles will go away. With these three changes, everything begins to be usable except for text input, and except that things are pretty slow and somewhat hard to use. [You can test all of this on a fast laptop by putting "UserAgent.isTouch = true" in your localconfig.js file]. Nonetheless, I have actually managed to have a bit of fun with it on both my iPhone and an iPad already. About the UI... The current approach is one solution, and we can be glad to have that. However, since putting in the persistent handles, I've been thinking of another solution that is closer to what we did for Squeak. I'm hoping to actually make this work so we can play with both approaches. Here's how the other one would work: A quick click on any object "selects" it. This means that a bunch of icons appear around it corresponding to the pie menu choices above. This corresponds to Squeak's "halos". A second quick click will cause selection to expand out to the morph's owner and so on out to the world. A long (unmoving) click will bring up the object's menu, and a drag will pick the object up and move it, as is normally the case. Please try this stuff out and make suggestions. And if you get text input working before me, that would be nice, too. Please tell me if you plan to do this, so I can do something else at the same time. Enjoy - Dan |
Hi Dan,
On my first model iPod Touch it does start LK perfectly, and quite fast for such a slow device (faster than Squeak for example). But The toggle between "zoom/pan mode" and "mouse mode" by touching briefly in an unoccupied part of the world does a toggle between the mouse or "the selection tool" ( a darker blue field with four balls OR a grey circkle) I've made a shorter url to get to http://www.lively-kernel.org/repository/lively-kernel/trunk/source/kernel/index.xhtml as typing in long url's is painfull and error prone. Thanks for another enjoyable day, Merik On May 9, 2010, at 10:45 AM, Dan Ingalls wrote: > Folks - > > I've just committed a bunch of changes that enable one to play with > Apple touch-based devices. Just point your iPad at... > > http://www.lively-kernel.org/repository/lively-kernel/trunk/source/kernel/index.xhtml > (the latest release), and it should automatically do the right thing > for your device. > > There are three changes: > > 1. A toggle between "zoom/pan mode" and "mouse mode", indicated in > code by whether UserAgent.touchIsMouse is false or true respectively. > Form the user's standpoint, this is pretty simple: If the cursor > looks like a normal cursor, then you are in "mouse mode"; if it > looks like a little blue pentagon, then you are in zoom/pan mode. > Lively will switch modes if you click (touch briefly) in an > unoccupied part of the world. > > 2. Pie menus are enabled so that you can copy and drag objects and > invoke their menus without needing modifier keys. Although it's a > bit sluggish, pie menus will do their best to help you out -- in > other words if you simply click down and up, they will give you the > normal object menu with an extra "pie menu help" item at the top. > The help menu will list all the pie menu choices in a regular menu > where you can read them and even activate them. The current settings > are: > > 12:00 undo (~) > 1:30 duplicate (o-->o) > 3:00 move (o-->) > 4:30 scale (o<O) > 6:00 show/hide handles > 7:30 delete (X) > 9:00 edit style (<>) > 10:30 rotate (G) > > The test in parentheses appears on the pie menu, so this is a short > form of documentation. Some helpful mnemonics: > Make more objects (dup) is directly across from delete > Scale and rotate are directly opposite each other too > Can you see the capital G as a rotate arrow? ;-) > > In the world the pie menu just gives you area selection plus an item > for invoking zoo/pan mode (O). > > 3. Rollovers don't work on a touch screen, so we have to activate > the shape editing handles manually. This is accomplished by a > downward stroke on an object. Do it again and the handles will go > away. > > With these three changes, everything begins to be usable except for > text input, and except that things are pretty slow and somewhat hard > to use. [You can test all of this on a fast laptop by putting > "UserAgent.isTouch = true" in your localconfig.js file]. > Nonetheless, I have actually managed to have a bit of fun with it on > both my iPhone and an iPad already. > > About the UI... > The current approach is one solution, and we can be glad to have > that. However, since putting in the persistent handles, I've been > thinking of another solution that is closer to what we did for > Squeak. I'm hoping to actually make this work so we can play with > both approaches. Here's how the other one would work: > > A quick click on any object "selects" it. This means that a bunch of > icons appear around it corresponding to the pie menu choices above. > This corresponds to Squeak's "halos". A second quick click will > cause selection to expand out to the morph's owner and so on out to > the world. A long (unmoving) click will bring up the object's menu, > and a drag will pick the object up and move it, as is normally the > case. > > > Please try this stuff out and make suggestions. And if you get text > input working before me, that would be nice, too. Please tell me if > you plan to do this, so I can do something else at the same time. > > Enjoy > - Dan > _______________________________________________ > lively-kernel mailing list > [hidden email] > http://lists.hpi.uni-potsdam.de/listinfo/lively-kernel |
Free forum by Nabble | Edit this page |