Summary: proposed menu and command key revamp
                 Project: Freeciv
            Submitted by: jkeller
            Submitted on: Saturday 07/11/2009 at 16:56
                Category: None
                Priority: 5 - Normal
                  Status: None
                 Privacy: Public
             Assigned to: None
        Originator Email: 
             Open/Closed: Open
         Discussion Lock: Any



Please note that these patches are revised and updated from a previous ticket
on RT:

That old ticket can be closed as obsolete.

REVISION: The patches in this ticket apply to the latest revision of trunk
(15826) as of this filing.

TRANSLATION: These patches contain changes to translatable strings, so
"update-po" should be run if/when they are accepted.


I've made an attempt to restructure Freeciv's menus in a way that makes sense
for both new users and old hands. I consider myself a "casual old-timer",
having played Freeciv for several years, but not every day.

I've always found the single, long "Orders" menu daunting. Commands are found
in large groups (between dividers), new commands are hard to find when they're
added, and I expect that new users have a very hard time discovering even
common commands ("Go to" is sixth down in the fourth group).

Having a single, long menu for all unit commands makes it very hard to define
good mnemonics (the underlined letters) which also don't conflict with each
other. The length also leads to putting commands in sub-menus (presumably to
avoid making the "Orders" menu even longer). But these are hard to target
with the mouse, and hard to use as a way to discover to available commands.

Some accelerators require pressing Control and Shift together, a
hand-twisting exercise for commands that users are likely to use often. Even
more importantly, it's a hurdle for accessibility.

Tear-off menus seem like a great idea, but don't beat the simplicity of
better menu organization and modeless dialog boxes. The typical user (even in
Linux) aren't going to have encountered them elsewhere, and so aren't likely
to discover their use. Instead, I hoped to improve the situation for everyone
and avoid the need for a tear-off menu. The exception was the "View" menu,
which I would like to revisit in the future.


The "Game" menu, like the "File" menu in any other program, should really be
thought of as a meta menu. It should handle the principle object (the game)
as a black box, rather acting on the the things contained within the object.
I moved the tax rates and revolution commands to the Reports menu; they have
much more in common with the other items found there.

I renamed the "Reports" menu to "Civilization". While Freeciv isn't a
spreadsheet [1], this menu nonetheless roughly corresponds to the "Window"
menu in many applications: it's a list of tabs and toolkit windows that apply
to the game as a whole. Using "Window" would help for external consistency,
but that name is too generic. I think "Civilization" does a better job of
showing that it contains commands that act on a large scale than "Reports",
which to me implies a set of static reports (the presence of the main view
alone shows that the menu items aren't static).

I've only worked on the GTK+ client, since I'm not familiar with any of the
other clients. I realize that these patches would have an impact on the other
clients, too (since the help documentation is common to all). These patches
serve as a proof of concept and, if accepted, my hope is that it would be
easy for the other client maintainers to change their clients to match.


These deserve a special note: I'm very aware that changing these "hotkeys" is
potentially disruptive and maybe even political. However, I've tried to take
great care to keep the principal accelerators the same.

My main guiding principals:
* try to group together actions with their opposites
  (e.g. Sentry & Unsentry [formerly "Wake up others"]
   are assigned "S" and "Shift+S")
* try to group together related actions
  (e.g. commands in Select menu)
* try to make simple commands use no modifier
* try to reserve Shift modifier for less-used or
  more-destructive commands

The Select menu commands are new to trunk, so there shouldn't be a lot of
people used to them already. I've based their layout on similar guiding
principals behind Undo, Cut, Copy, Paste in terms of proximity on a QWERTY
keyboard. Also note that "all on tile" and "same type on tile" are simply a
Shift modifier apart.


I've split my changes into three patches:

Rearrange the menus ("menu.c.01_reorg.diff")
* split up long "Orders" menu
  - Select menu for selecting units
  - Unit menu for movement and other actions on the unit itself
  - Work menu for actions mostly pertaining to workers/settlers
  - Combat menu for battle/diplomatic actions
* try to keep commands in small, logical groups of related items
* move taxes and government dialog boxes to "Reports"
* avoid cascading submenus where possible

Change accelerators and mnemonics ("menu.c.02_accels.diff")
* use "Ctrl" for application control commands
* use "Shift" and keys w/o modifiers for unit commands
  - "revolution", a potentially much more destructive
    operation than "connect with road", is assigned
    the former's three-key shortcut
* try to make mnemonics consistent with accelerators
  (without being unnecessarily slavish)
* remove tear-off menus (except for "View" menu)

Change help text to match new commands ("helpdata.txt.diff")
* change keys where needed
* add new commands
* remove old command ("C: unit (c)onnect")
* group keys into more logical usage groups

I'd be very interested in people's reactions to these patches. Hopefully they
(or something like them) could eventually make their way into Freeciv. Maybe
even with luck, before the branch to S2_2... :-)

- John

[1] http://bugs.freeciv.org/Ticket/Display.html?id=39913#txn-238668


File Attachments:

Date: Saturday 07/11/2009 at 16:56  Name: menu.c.01_reorg.diff  Size: 23kB  
By: jkeller
Patches 01 and 02 are sequential; all three patches should be applied to get
the full intent of this revamp effort
Date: Saturday 07/11/2009 at 16:56  Name: helpdata.txt.diff  Size: 6kB   By:
Patches 01 and 02 are sequential; all three patches should be applied to get
the full intent of this revamp effort
Date: Saturday 07/11/2009 at 16:56  Name: menu.c.02_accels.diff  Size: 26kB  
By: jkeller
Patches 01 and 02 are sequential; all three patches should be applied to get
the full intent of this revamp effort


Reply to this item at:


  Message sent via/by Gna!

Freeciv-dev mailing list

Reply via email to