Tim, Daniel,
================== > +1 > > UI widgets are a solved problem. It is part of the operating > system. Like writing a file system is done, writing UI widgets is > done too. Now that I have to disagree with. There is no OS/GUI /platform that I have so much as heard rumours of that qualify as having 'solved UI widgets'. They are all sufficiently steeped in effluvium as to smell bad. I don't think filing systems are 'done ' either; certainly microsoft hasn't managed to finish that damn big file system it's been promising RSN since I first moved to the US in 91. Unix is not exactly a shining example either. Just because lots (all?) of the current commercial platforms do something doesn't mean it is a good - or even acceptable - idea. ====================== I must side with Tim here, at least most of the way. I will grant that Squeak is hurting in the GUI department, but native widgets are not a cure-all. Further, I care much more about the user interface I present to users than I care about the interface that is presented to me. I wish Rob great success with wxSqueak, but remain convinced that emulated widgets will continue to have a place. I believe that because I created many of them in Dolphin, largely for performance reasons. Most of my users don't know what native widgets are, and couldn't care less about them as long as software is responsive and easy to use. Users _do_ understand keyboard focus, at least well enough to know when it is botched. They understand when they have to click to get something's attention and then again to interact with it, they understand when something "sticks to the mouse" when that was not their intent, etc. Between look and feel, the feel is vastly more important. IMHO, it is also the thing that Morphic or any other framework needs to control/respect/assist. Look can/should be pluggable. This is not about native vs. emulated; it is about good GUI design. I think we should have good design with a choice of native and emulated widgets. Bill Wilhelm K. Schwab, Ph.D. University of Florida Department of Anesthesiology PO Box 100254 Gainesville, FL 32610-0254 Email: [hidden email] Tel: (352) 846-1285 FAX: (352) 392-7029 |
In reply to this post by Nicolas Cellier-3
On Jul 7, 2006, at 4:56 PM, nicolas cellier wrote: > Once more, this thread is going to focus on the look... > As already said many times in many threads, maybe look is good to > appeal new > comers... > But whether windows should be green or orange, or the button have > thick > borders, oval corner or a shadow is not the more important. > > What is more important is feel. > > I do not know how good is Squeak UI on Mac, but windows and linux > squeak feel > are not at the level we would expect such a wonderfull tool. The Squeak UI on the Mac is identical to the Squeak UI on Windows & Linux (being totally non-native), so yes, you do know how good the Squeak UI on the Mac is. :-) > ... > How can i switch keyboard focus from one pane to another, or change > window > stack order without using the mouse? While I think complaints about the Squeak UI look are sometimes unwarranted, complaints about the feel and especially keyboard focus usually *are* warranted. :-) The keyboard focus behavior in Squeak (Morphic/MVC) is generally bad, terrible, and just plain lousy. Fortunately, I don't think I've ever seen anyone claim otherwise, so we all know it's a lacking area in Squeak. The biggest problem I think is that keyboard focus for SystemWindows and other common widgets/morphs was just never really implemented. For example, changing focus between window panes, or between windows, etc, cannot be done via the keyboard. But some stuff such as keyboard arrowing up and down in lists to change selection does work. Then there's Squeak's keyboard focus behavior when moving the mouse around, which is sort of a combination of Mac/Windows "click to focus" and X11 "mouse over focus" behavior. In Squeak, you have "click to focus" behavior between windows (you have to click on a window to type in it), but between panes within a window, you have to mouse over to that pane. After using all three UIs over the years, I'd say having a mix is probably the worst option... it might be worth converting Squeak to just one or the other. (I'd lean toward "click to focus".) I'm guessing this behavior originated with Smalltalk-80. And then then are some bugs & inconsistencies thrown in here and there too. :) > Did you really try to copy/paste text from squeak to another > application et > vice et versa? switching from ALT+C to CTRL+V, or the contrary is > really is > gymnastic for user hands and brain... That is obviously why a > little bit of > standardization does not harm. For a bit of good news, this is actually fixed in Squeak 3.9. You can use either ctrl or alt (cmd) for the common text-editing key commands. (The dup ctrl-alt keys preference is turned on by default. A more expert user can turn it off if desired.) > My personnal opinion is that among palo alto inventions, the mouse > was not the > greatest. Hands are wonderfull tools with a lot of articulations. > Compare how > many articulations are working when hitting the keyboard and how > many when > using the mouse... You will understand why many feel the mouse as a > handicap. > And why many are still using emacs vi and mc. I would not go that far... the mouse is a great thing. But it would be great to be able to just rely on the keyboard to do typical development/windowing UI tasks in Squeak. I think this is achievable if someone wants to take it on. - Doug > So, when you say "the look does not matter", or Squeak UI is great, > please > don't forget the feel. Lot of people won't find mouse-centric UI > that great. > > Nicolas > > |
> Then there's Squeak's keyboard focus behavior when moving the mouse
> around, which is sort of a combination of Mac/Windows "click to focus" > and X11 "mouse over focus" behavior. In Squeak, you have "click to > focus" behavior between windows (you have to click on a window to type > in it), but between panes within a window, you have to mouse over to > that pane. After using all three UIs over the years, I'd say having a > mix is probably the worst option... it might be worth converting Squeak > to just one or the other. (I'd lean toward "click to focus".) I'm > guessing this behavior originated with Smalltalk-80. This is something that really annoys me every day. If somebody has a fix, I would greatly appreciate it. I would like the mouse position not to decide about what is focused. I click somewhere in a window and then I can throw my mouse cursor away and forget about it. Currently, I often loose the focus when I throw my mouse. Moreover, the option in the preference browser 'mouseOverForKeyboardFocus' only works for windows, and not for pane. If I move the mouse between panes, the focus change even the option is set to false. Bye |
In reply to this post by Markus Gälli-3
(cross-post from beginners list)
On 7/11/06, Markus Gaelli <[hidden email]> wrote: > > Anyone tried the Etoys-Version? Someone told me that it was not > working for him, but I did not investigate... > http://www.squeakland.org/project.jsp?http://www.emergent.de/pub/smalltalk/squeak/projects/reverse.pr Yes - it is fun and has a lovely interface. (I am using Linux and Firefox - and I have a squeakland-3.8-1.noarch.rpm from www.squeakland.org) It is a great demo of the power of tiles and Etoys. I am brand new to smalltalk and Etoys, and to 'everything is an object'. So, I tried to teach myself something from Markus work. My learning anecdote is included as a p.s. My tentative conclusion - it feels like I have a long learning curve ahead of me - a curve of building, breaking and repairing many Etoys, and learning the underlying development tools, before I could confidently assist a 12 year old who wants to make his imagination come to life on his computer screen. I intend to embark on that learning curve. I hope to be surprised later when my nephew takes the odd 'message not understood' dialog in his stride, deletes (or loses) some of his work, and starts again in the excitement of authoring his own multimedia product. Do my thoughts resonate with those of you more experienced, or is it easier than it looks to introduce tile scripting to kids? BTW - thanks Markus and best regards, David p.s. my anecdote : to teach myself a little from Markus's Reverse Game, I click around a bit to try to work out 1. why/how do all the buttons run the same scripts? 2. where is the HelperStack? In overenthusiastic clicking, I delete a ScriptStatusControl and break the toy :( ('Message not understood' dialog whenever I click on a number cell.) I decide this is another learning opportunity. A couple of minutes clicking around and I haven't found out how to give the broken script a new status control. I googled aound a bit for docs, but I know too little about Squeak to know what to ask Google. Next I try to make a new tile script from scratch (monkey see - monkey do) Oops! I accidentally click on a 'send message' (! bang) button, and Squeak goes into a busy loop. The screen is not updating at all, and my processsor is at 100% for 3 or 4 minutes. Finally, my processor load goes back to normal, but still nothing is happening in the Squeak window. I still don't know the answers to my first two questions. I have more sympathy with Chris Cunnington. |
In reply to this post by Damien Cassou-3
On 7/13/06, Damien Cassou <[hidden email]> wrote:
> > Then there's Squeak's keyboard focus behavior when moving the mouse > > around, which is sort of a combination of Mac/Windows "click to focus" > > and X11 "mouse over focus" behavior. In Squeak, you have "click to > > focus" behavior between windows (you have to click on a window to type > > in it), but between panes within a window, you have to mouse over to > > that pane. After using all three UIs over the years, I'd say having a > > mix is probably the worst option... it might be worth converting Squeak > > to just one or the other. (I'd lean toward "click to focus".) I'm > > guessing this behavior originated with Smalltalk-80. > > > This is something that really annoys me every day. If somebody has a > fix, I would greatly appreciate it. I would like the mouse position not > to decide about what is focused. I click somewhere in a window and then > I can throw my mouse cursor away and forget about it. Currently, I often > loose the focus when I throw my mouse. > > Moreover, the option in the preference browser > 'mouseOverForKeyboardFocus' only works for windows, and not for pane. If > I move the mouse between panes, the focus change even the option is set > to false. > I agree with Damien and Doug. However Doug implies a common misconception (perhaps accidentally.) Though in Windows 'click to focus' is the default, it can be quickly switched to 'focus follows mouse'. It is really a matter of personal preference. In either platform, it is configured globally, and individual objects/apps don't really get a say in the matter. I suspect that a mainstream Squeak would succeed by following the 'click to focus' fashion, but an ideal would be to provide some sort of global switch to the other behaviour. There should remain plenty of leeway for UI research, allowing alternative models to be installed and easily shared. (An example of an alternative models would be the portal model in Croquet. Different Squeak images having different mouse button bindings is, in my opinion, not research but merely accidental randomness, with unforeseen effects on those kind volunteers who write beginner documentation. ) By the way - I found the 'focus follows mouse' behaviour in the Croquet HedgeHacks spreadsheet somewhat disorientating. I noticed that on my X desktop, keyboard focus follows mouse between applications (which I like) but I have to click (or use tab etc.) to move focus between text entry widgets inside a window. This works fine, and it is the mirror image of the mixed behaviour that Doug describes in Squeak. That Squeak behaviour is very hard for me as I normally use a ThinkPad Trackpoint that suffers from pointer drift. >From what little I know of Smalltalk, either mix is contrary to the ST philosophy of 'everything is an object', which is, in any case, utterly disorienting to those of us used to platforms where the application GUI and the desktop/window manger have an arms length relationship with each other. Anyway, now the 'cool' UI research funding is going into 3D and virtual reality, I don't expect anyone to tell us scientifically how to improve 2D apps. I suspect 2D state-of-the-art will remain the state-of-the-art as found in PARC in 1979. Vista/Aqua/GNOME/KDE will continue to look and, more importantly, feel, basically the same (and basically the same as Squeak.) David |
In reply to this post by dcorking
Hi David,
On Jul 13, 2006, at 11:28 AM, David Corking wrote:
IÂ cc it to squeakland, as this is the preferred list to discuss Etoy-related questions.
Thank you for trying. Glad that it works and that you like it.  :-)Â
Etoys is a nice implementation of prototype systems as it stems back from "self". That means, that you can create shallow copies of any morph using "siblings...". So I created one cell, and then via red menu halo "Siblings..." -> "Create multiple Siblings..." I created another 8 siblings of this one. A script done for one morph then also applies to all its siblings. If you change that script, all siblings change their behavior also, as they share the very same script.
This is the one behind the ReverseStack. (The one where you can only see the orange outline, I should have denoted it...) In Etoys you can only program visual objects. Thus I used that HelperStack to put in the cell at the cursor of the ReverseStack (which always denotes the first cell) until the clicked cell is at the first position. As the cells are always included at the last position of the HelperStack (using the default include: method) and afterwards included at the first position of the ReverseStack (using the includeAtCursor: method) the cells get reversed. But I agree, as long as Etoys do not provide a visual debugger, where one could watch each step animated, it is hard to understand what is going on. For a start you could drag (thus disable) the "HelperStack tellAllContents: includeInReverseField"-tile out of its script to actually see the cells in the ReverseStack after pressing some cell.
This project is intended to show (off ;-) what could be done with Etoys and really pushing its limits. I guess it is less suited as a general intro, but - who knows? Cheers, Markus |
On 7/13/06, Markus Gaelli <[hidden email]> wrote:
> 1. why/how do all the buttons run the same > scripts? > > Etoys is a nice implementation of prototype systems as it stems back from > "self". > That means, that you can create shallow copies of any morph using > "siblings...". > So I created one cell, and then via red menu halo "Siblings..." -> "Create > multiple Siblings..." I created another 8 siblings of this one. > > A script done for one morph then also applies to all its siblings. If you > change that script, all siblings change their behavior also, as they share > the very same script. A very useful lesson - thank you Markus. This is looks quite different from the class methods of some other object systems. > 2. where is the HelperStack? > > This is the one behind the ReverseStack. (The one where you can only see the > orange outline, I should have denoted it...) > > In Etoys you can only program visual objects. > Thus I used that HelperStack to put in the cell at the cursor of the > ReverseStack (which always denotes the first cell) until the clicked cell is > at the first position. > As the cells are always included at the last position of the HelperStack > (using the default include: method) and afterwards included at the first > position of the ReverseStack > (using the includeAtCursor: method) the cells get reversed. > > But I agree, as long as Etoys do not provide a visual debugger, where one > could watch each step animated, it is hard to understand what is going on. > For a start you could drag (thus disable) the > "HelperStack tellAllContents: includeInReverseField"-tile out of its script > to actually see the cells in the ReverseStack after pressing some cell. I should have put a break point in there as well - I put Squeak in an infinite loop all over again. Anyway - I see your trick now! > In overenthusiastic clicking, I delete a ScriptStatusControl and break > the toy :( ('Message not understood' dialog whenever I click on a > number cell.) I decide this is another learning opportunity. A > couple of minutes clicking around and I haven't found out how to give > the broken script a new status control. I googled aound a bit for > docs, but I know too little about Squeak to know what to ask Google. > Next I try to make a new tile script from scratch (monkey see - monkey > do) > > Oops! I accidentally click on a 'send message' (! bang) button, and > Squeak goes into a busy loop. The screen is not updating at all, and > my processsor is at 100% for 3 or 4 minutes. Finally, my processor > load goes back to normal, but still nothing is happening in the Squeak > window. > > If you are not in the browser Ctrl-. could work to interrupt a process - > otherwise it might be the best to just restart and reload... :-/ Without labouring a point that has been discussed many times, this kind of defeats the concepts of persistence of objects in the Squeak image and independence from the host operating system. - if a child had lots of artwork in their project, they would have to save an image or a project file regularly, so they could backtrack in case I come along and break the project. Which is best - project file or changeset or image file? > I still don't know the answers to my first two questions. I > have more sympathy with Chris Cunnington. > > > This project is intended to show (off ;-) what could be done with Etoys and > really pushing its limits. > I guess it is less suited as a general intro, but - who knows? You are right - there is a lot more in here than in the 'Drive a Car' toy. And, you hid the Navigator and Supplies flaps to further confuse a beginner :) But, it would be a good way to learn about ideas like sorting, arrays, and, if I understand it correctly, an event driven approach to applying the same action to multiple objects (this is very fashionable in the current world of Service Oriented Architecture and 'middleware' ... but it probably has general application to computation, problem-solving and domain modelling for children.) |
In reply to this post by Damien Cassou-3
mouseOverForKeyboardFocus took some getting used to, but I love it now. A real nice thing about it is you can close windows easily with Command+w, no tedious aiming for the small "x" in the corner. Instead of having to precise gestures with the mouse I am able to do relatively imprecise gestures. This is very useful for coding. For example, when you are typing a method, you aren't sure abbout a method name, you simply highlight the method argument (aSet) and Set pops up. Find the method, copy it, then sloppily toss the pointer back to the text pane where you were typing just press and Command+w to close the Set browser currently on top. Everyone raves about e-Completion. I still have it isntalled but rarely use it anymore because this method of spawning browsers and quickly closing them just works much better. You can also quickly "clean up" your desktop by just move the mouse to the bottom and Command+w, Command+w, Command+w. Overall, now that I'm used to it I find it very productive, and have other "standard" environments actually feeling quite cumbersome. Call me weird.. --- Damien Cassou <[hidden email]> wrote: > > Then there's Squeak's keyboard focus behavior when moving the mouse > > around, which is sort of a combination of Mac/Windows "click to > focus" > > and X11 "mouse over focus" behavior. In Squeak, you have "click to > > focus" behavior between windows (you have to click on a window to > type > > in it), but between panes within a window, you have to mouse over > to > > that pane. After using all three UIs over the years, I'd say > having a > > mix is probably the worst option... it might be worth converting > Squeak > > to just one or the other. (I'd lean toward "click to focus".) I'm > > guessing this behavior originated with Smalltalk-80. > > > This is something that really annoys me every day. If somebody has a > fix, I would greatly appreciate it. I would like the mouse position > not > to decide about what is focused. I click somewhere in a window and > then > I can throw my mouse cursor away and forget about it. Currently, I > often > loose the focus when I throw my mouse. > > Moreover, the option in the preference browser > 'mouseOverForKeyboardFocus' only works for windows, and not for pane. > If > I move the mouse between panes, the focus change even the option is > set > to false. > > > Bye > > > |
This doesn't work for me :(
I have mouseOverForKeyboardFocus enabled but I still need to click to focus. Any ideas? Philippe P.S.: I remember someone in the gentoo forums having a sloppy focus owns you! sig ;) 2006/7/14, Chris Muller <[hidden email]>: > > mouseOverForKeyboardFocus took some getting used to, but I love it now. > > > A real nice thing about it is you can close windows easily with > Command+w, no tedious aiming for the small "x" in the corner. Instead > of having to precise gestures with the mouse I am able to do relatively > imprecise gestures. > > This is very useful for coding. For example, when you are typing a > method, you aren't sure abbout a method name, you simply highlight the > method argument (aSet) and Set pops up. Find the method, copy it, then > sloppily toss the pointer back to the text pane where you were typing > just press and Command+w to close the Set browser currently on top. > > Everyone raves about e-Completion. I still have it isntalled but > rarely use it anymore because this method of spawning browsers and > quickly closing them just works much better. > > You can also quickly "clean up" your desktop by just move the mouse to > the bottom and Command+w, Command+w, Command+w. > > Overall, now that I'm used to it I find it very productive, and have > other "standard" environments actually feeling quite cumbersome. Call > me weird.. > > > --- Damien Cassou <[hidden email]> wrote: > > > > Then there's Squeak's keyboard focus behavior when moving the mouse > > > around, which is sort of a combination of Mac/Windows "click to > > focus" > > > and X11 "mouse over focus" behavior. In Squeak, you have "click to > > > focus" behavior between windows (you have to click on a window to > > type > > > in it), but between panes within a window, you have to mouse over > > to > > > that pane. After using all three UIs over the years, I'd say > > having a > > > mix is probably the worst option... it might be worth converting > > Squeak > > > to just one or the other. (I'd lean toward "click to focus".) I'm > > > guessing this behavior originated with Smalltalk-80. > > > > > > This is something that really annoys me every day. If somebody has a > > fix, I would greatly appreciate it. I would like the mouse position > > not > > to decide about what is focused. I click somewhere in a window and > > then > > I can throw my mouse cursor away and forget about it. Currently, I > > often > > loose the focus when I throw my mouse. > > > > Moreover, the option in the preference browser > > 'mouseOverForKeyboardFocus' only works for windows, and not for pane. > > If > > I move the mouse between panes, the focus change even the option is > > set > > to false. > > > > > > Bye > > > > > > > > > |
On 7/14/06, Philippe Marschall <[hidden email]> wrote:
> This doesn't work for me :( > I have mouseOverForKeyboardFocus enabled but I still need to click to focus. > > Any ideas? Me too! I just tried this. I noticed that in my image*, some windows (like System Browser) honour this preference, but others (notably Workspace and Transcript) do not honour it. In more detail: Workspace loses keyboard focus when I mouse off it, but does not claim it back again when I mouse back on to it, until I 'red click'. In my image 'each project has its own setting' is unchecked. Has this been changed in 3.9 ? David (*)squeakland 3.8-05 |
You still need to click to get focus to another window but, for the top
window, simply mousing over the various panes should transfer focus to those panes. To get Command+w to close windows be sure to set honorDesktopCmdKeys. --- David Corking <[hidden email]> wrote: > On 7/14/06, Philippe Marschall <[hidden email]> wrote: > > This doesn't work for me :( > > I have mouseOverForKeyboardFocus enabled but I still need to click > to focus. > > > > Any ideas? > > Me too! I just tried this. I noticed that in my image*, some > windows > (like System Browser) honour this preference, but others (notably > Workspace and Transcript) do not honour it. > > In more detail: Workspace loses keyboard focus when I mouse off it, > but does not claim it back again when I mouse back on to it, until I > 'red click'. In my image 'each project has its own setting' is > unchecked. > > Has this been changed in 3.9 ? > > David > (*)squeakland 3.8-05 > > > |
In reply to this post by Chris Muller
David,
================== Me too! I just tried this. I noticed that in my image*, some windows (like System Browser) honour this preference, but others (notably Workspace and Transcript) do not honour it. In more detail: Workspace loses keyboard focus when I mouse off it, but does not claim it back again when I mouse back on to it, until I 'red click'. In my image 'each project has its own setting' is unchecked. Has this been changed in 3.9 ? ================== It sounds like we are coming from different sides of the argument (I do not want the input focus changing based on mouse movement), but I agree that this is pretty badly broken. You might _carefully_ try my mouseOverMadness change set on Mantis. AFAIK, it won't trash your image, but please do not risk learning the hard way. Anyway, I tried to respect the setting, not simply enforce my preference, and you might be able to suggest a few more changes to get the behavior you want when the preferences favor it. Bill Wilhelm K. Schwab, Ph.D. University of Florida Department of Anesthesiology PO Box 100254 Gainesville, FL 32610-0254 Email: [hidden email] Tel: (352) 846-1285 FAX: (352) 392-7029 |
In reply to this post by Chris Muller
On 7/14/06, Chris Muller <[hidden email]> wrote:
> You still need to click to get focus to another window but, for the top > window, simply mousing over the various panes should transfer focus to > those panes. > This is not at all how it is working for me. With mouseOverForKeyboardFocus preference OFF I get the behaviour you describe, Chris. With it turned ON, I only need to mouse over a new window to give it focus. This is like 'strict focus follows mouse' in Windows and X. However some windows don't take kindly to losing the focus and getting it back again like this - Transcript and Workspace need a click before they will accept text entry to their edit panes. Anyway, it doesn't do to labour the point, as it is too late to propose these ideas for the 3.9 branch (maybe 3.10 ?) I need to look at Bill's changeset, and at non-squeakland distributions, before I discuss it any further. David |
In reply to this post by timrowledge
tim Rowledge wrote:
> > On 8-Jul-06, at 1:37 AM, Daniel Poon wrote: > > >> >> I am defining "done" as "Part of mainstream computing and a problem >> that I don't have to think about anymore. I can use what is there". > > I claim that is a completely pointless mis-definition. Defining what we mean by "done" is a very useful way of managing projects. No more than that. >> >> I am sure there is still work to be done on UI widgets, but that does >> not affect me as a consumer of those widgets. Same goes for file systems. > > Good grief, it's not merely 'ui widgets' that need work but the entire > concept of ui. And filing system. Your statement is similar to the claim > that there is no more science to be done. Like I said before, that does not affect me as a consumer. After following what is happening with Squeak at the moment, happily it seems that there will be enough room in Squeak for our different points of view. Its great that Squeak has people that are examining all the assumptions in UI design. Cheers Daniel |
In reply to this post by Hans N Beck
We can also read this report from Mr. Guido Van Rossum's Chinese Blog
at: http://blog.csdn.net/gvanrossum/archive/2006/07/10/898557.aspx So I post some of our comments on it. Yes, the most important thing is "Children first", no matter what kind of means. Regards Liu On 7/8/06,
Hans N Beck <[hidden email]> wrote: Hi, |
Free forum by Nabble | Edit this page |