mouse buttons and menus

My mouse is a Logitech Wireless Nano Mouse M305.  The default function of the mousewheel (button 3) is Zoom.  To be most useful for Smalltalk, the mousewheel function needed to be configured as Middle Button.  For Windows 7 this was done via
[Start > Control Panel > Mouse > SetPoint Settings] as pictured below.

Logitech Wireless Mouse M305 Middle Button Setting

Logitech Wireless Mouse M305 Middle Button Setting

system menu mouse mapping
That done, there are still a few configuration options in Squeak that affect operation.  In particular [ <F2> System Menu > Mouse Mapping ] affects how  particular direct manipulation actions are invoked.

By way of a specific example, Table 1 shows images of the possible actions and menus for a RectangleMorph, which are:

  1. Select – This picks up the morph from the World and gives it to HandMorph, which then moves it around the screen
  2. Meta – This brings up the halos around the object
  3. Menu 1 – I’d really like to be able to be more distinct in distinguishing between these  menus besides “Next to its name is a small thumbnail of its morph .” Does it have a better designation?
  4. Menu 2 – Similar to Menu 1, is there a proper designation of this menu?  I can only concisely describe it as “Next to its name there is no thumbnail of its morph.”
  5. Halos > Menu – Just included for comparison (in Table 3) to try and work out the definition of Menus 1 & 2.  This is inconclusive since its menu items are somewhat split between Menus 1 & 2.Table 1 – Direct Manipulation Mouse Actions
Table 1 – RectangleMorph actions & menus
1. Select 
2. Meta
3. Menu 1
4. Menu 2
5. Halos > Menu
6. Halos > Debug

The effect of the different Mouse Mappings is shown in Table 2, which tabulates the effect of the Ctrl & Alt keypress modifiers on mouse button clicks.  The three Mouse Mappings (Default3 Button / 1 Button) are shown together.  This shows a few things:

  1. The left mouse button remains the same regardless of the mapping
  2. For both mappings of three buttons, the button assigned to Halos is always Halos.  Halos are unaffected by any Ctrl or Alt keypress modifier.
  3. For both mappings of three buttons, the button assigned to Menu is always Menu. Menus are affected by the Ctrl keypress, which changes from
    Menu 1 to Menu 2.
  4. The 1-button mapping continues to work with both mappings of three buttons, and so is a lowest common denominator that might be considered for tutorials.
  5. With a two-button mouse and Default mapping it is likely that Menu 2 is missed, requiring both Ctrl & Alt keys to be held together.
  6. With a two-button mouse and 3-button mapping, the Alt key can be ignored. The Ctrl key changes Select and Menu 1 respectively to Halo and Menu 2.
Table 2 Mouse Mapping Matrix
3 Button
1 Button
No Key Select
Menu 1
Menu 1
Alt Key Menu 1
Menu 1
Menu 1
Menu 1
Menu 1
Menu 1
Menu 1
Ctrl Key Halos
Menu 2
Menu 2
Ctrl & Alt Keys Menu 2
Menu 2
Menu 2
Menu 2
Menu 2
Menu 2
Menu 2

Based on this, I’ll configure the Mouse Mapping as “3-Button.”  I’m not sure how the balance between the usage of halos and menus will pan out, but as a default I’ll prefer to have my menus on the same button as the rest of the operating system.  This may come up for review as my usage of the system evolve.

Finally, just for clarity, I compare how items from the various menus overlap.  As a Squeak newbie, there are some small inconsistencies that impede that comfortable feeling we associate with familiarity. This comparison helps build that feeling of familiarity.

  1. For the same functionality, one menu says “Select”
    and another says “Add Halo”
  2. For the same functionality, one menu says “Send to Back”
    and another says “Go Behind”
  3. [ Halos > debug menu > control menu ] brings up exactly Menu 2.  Perhaps “control menu” might be a reasonable name for Menu 2, though I’m not sure.
Table 3 – Comparison of Menus
Item Menu 1 Menu 2 Halos > Menu
inspect 1 1 2
provide clipping 1 1 1
layout 1 1 1
send to back /
go behind
1 1 1
bring to front 1 1
resist being deleted 1 1
resist being picked up 1 1
be locked 1 1
direction handles 1 1
accept drops 1 1
round corners 1 1
export 1 1
select /
add halo
1 1
copy to paste buffer 1 1
grab 1 2
copy to paste buffer 1 2
collapse 1 2
delete 1 2
duplicate 1 2
resize 1 2
fill style 1 1
drop shadow 1 1
copy text 1 2
copy postscript 1 2
print postscript to file 1 2
fill style 1 1
debug 1 1
adhere to edge 1
connect to 1
grab 1
collapse 1
delete 1
save morph in file 1
attach to resource 1
show actions 1
explore 1
browse hierarchy 1
make own subclass 1
border style 1
make a sibling 2
property sheet 2
set color 2
viewer 2
hand me a tile 2
siblings 1
stacks and cards 1
extras 1

Now to be controversial.  Coming newly into this, the whole red button, blue button, yellow button thing is a PITA.  My wild speculation is… that back at the birth of Smalltalk the guys at Xerox were essentially exploring the creation the modern GUI.  They either did not have sufficient terminology, or did not want lock down the terminology too early. Neuro Linguistic Programming tells us that words constrain thinking, so that was probably a good decision at the time.  However thirty years on, the GUI paradigm and the concepts of Select, Context Menu and Meta are well established.  So why not now use these? …and be a little bit more palatable to the rest of society.

The designations of Select, Menu and Meta are in fact referenced at the Squeak Wiki FAQ: Mouse Buttons and would maintain the “arbitrary” nature of “coloured” buttons discussed at Andrew P. Black on mouse button colors and the command key.

However everything historical is based around the coloured buttons, so I will probably just have to “get used to it.”  Here it is for quick reference until it soaks in…

        "red"                   -> select
        "yellow"                -> menu
        "blue"                  -> meta operation
This entry was posted in System. Bookmark the permalink.

Leave a Reply