URL:
<http://gna.org/patch/?1188>
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
_______________________________________________________
Details:
Please note that these patches are revised and updated from a previous ticket
on RT:
http://bugs.freeciv.org/Ticket/Display.html?id=40216
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.
BACKGROUND
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.
STRUCTURAL CHANGES
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.
ACCELERATORS
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.
PATCHES
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
<http://gna.org/patch/download.php?file_id=6194>
-------------------------------------------------------
Date: Saturday 07/11/2009 at 16:56 Name: helpdata.txt.diff Size: 6kB By:
jkeller
Patches 01 and 02 are sequential; all three patches should be applied to get
the full intent of this revamp effort
<http://gna.org/patch/download.php?file_id=6195>
-------------------------------------------------------
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
<http://gna.org/patch/download.php?file_id=6196>
_______________________________________________________
Reply to this item at:
<http://gna.org/patch/?1188>
_______________________________________________
Message sent via/by Gna!
http://gna.org/
_______________________________________________
Freeciv-dev mailing list
[email protected]
https://mail.gna.org/listinfo/freeciv-dev