Commit Graph
22 Commits
Author SHA1 Message Date
John Scipione fd3fa9178b KeyMap: Redo modifier keys layout
... by using a group layout inside of a grid layout we can get this
to layout how we want it without having to calculate the label
widths manually.
2014-03-21 17:26:28 -04:00
John Scipione 449d68282f KeyMap: Fix alignment of role labels
... by setting all labels to take up the width of the longest label.

Fixes #10693
2014-03-20 12:44:39 -04:00
John Scipione 4e152efced Keymap modifiers: make it a floating window 2014-02-21 17:11:47 -05:00
John Scipione 73ee1578a9 Keymap: Hide/show warning/stop icon views 2014-02-21 17:11:47 -05:00
John Scipione a7b27d4916 Keymap: 80 char limit style fix 2014-02-21 17:11:47 -05:00
John Scipione 528688c0c8 Keymap: Sentence case these pragmas 2014-02-21 17:11:46 -05:00
John Scipione 313b1c624f Keymap: Center Modifier Keys window in main window 2014-02-21 17:11:46 -05:00
John Scipione 2943ba1354 Keymap mod keys: Add warning icon.
That shows when the left and right side key roles don't match.
e.g. The left control key has a different key role than the right
control key.

The warning doesn't actually stop you from setting the modifier
keys though.

Add tooltips on the warning and stop icons explaining the
problem.

Also a couple minor style fixes.
2014-02-21 17:11:45 -05:00
Humdinger f6c5dbf81c Some more code style corrections of Keymap. 2014-01-03 19:44:12 +01:00
John Scipione b87ee2bfeb Keymap mod keys: Conflict if either left or right
... key doesn't match rather than requiring both left and right keys
to not match for a conflict.

Also update copyright year
2013-08-19 15:59:55 -04:00
John Scipione 460168d586 Keymap mod keys: Use menu field label and refactor
Use CreateLabelLayoutItem() instead of faking the label with a BStringView.
This is important because it means the label is part of the menu field control
rather than being it's own separate view.

Also convert from using deprecated BGroupLayoutBuilder and
BGridLayoutBuilder classes and use the BLayoutBuilder template instead.

Use font-relative spacing values instead of constants.

Make key label take up 2 columns

Make protected methods private, don't want to subclass
ModifierKeysWindow
2013-08-19 15:59:55 -04:00
John Scipione c197198238 Keymap mod keys: style fixes 2013-08-19 15:59:54 -04:00
John Scipione 2388b04ab8 Keymap mod keys: Move ConflictView to top.
Also, move includes from .h to .cpp file.

Make _FillSavedIcon() private, make Draw() public.
2013-08-19 15:59:54 -04:00
Oliver Tappe 546208a539 More catalog-related cleanup.
* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
  B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.
2012-04-16 21:31:22 +02:00
John Scipione 1cd97d5e86 Update modifier keys window to take out cruft.
I don't need to set the ExplicitMaxSize of the StringView's in
Modifier Keys anymore or calculate the widest label now that the
StringView's have an explicit alignment set. I used the old method
of SetAlignment(B_ALIGN_RIGHT) just because I can,
SetExplicitAlignment() should work too.
2012-04-15 16:41:38 -04:00
John Scipione 3cee15aac2 Keymap changes from recent activity. No AltGr yet.
Below is a mostly complete summary of the changes in this commit.

* Set the DeadKeys for the US-International Keymap to use the Option map.
* Rename American keymap to US
* Update the US, US-International, and United-Kingdom keymaps to take
  out unneeded spaces in the option layer. Also updated the dead keys
  and some other keys on the US-International keyboard to use UTF-8
  characters rather than there ASCII equivalents when different.
* Make the Option key fall-through when there is no mapping in the Option
  table. Option is for special characters, if none, print the regular one.
  This is mostly meant for the US keymap which has an empty option map. But
  also so that you don't have to repeat the normal, shift, and caps maps in
  the option map needlessly. Although the keymaps are still not empty in
  some cases that it could be like numpad keys and space.
* Update the /bin/keymap app to use fputs() instead of printf() when there
  is no actual formatting taking place. I've gotten into trouble for doing
  this before and it is faster to not process the string unnecessarily.
* Also several 80-char limit style fixes and updated comments.
* In Keymap class Reorder the modifier keys to match the keymap files.
  Put B_CONTROL_KEY check above B_OPTION_KEY. Neither change has any effect,
  they are purely aesthetic.
* Update DumpKeymap() method to use the abbreviated modifier letters so it
  will fit in your 80-char wide terminal.
* Tiny style fix in InputServer
* 80-char limit style fix in BWindow and add a comment that the shortcut
  gets eaten in the case of Cmd+Q
* Implement IndexForModifier() in KeyboardLayout, although I am not using it.
* Take Caps Lock out of the Modifier keys window because I couldn't get
  it to work the way I wanted it to.
* Move key roles to the left column, and the key label on the left. Add column
  header labels. Thanks Rimas!
* Add validation and improve marking menu options. Add a 'Disabled' option
  to control, option, and command menus to disable the key. Make the key
  role text grey if the key roles is disabled. Validation ensures that you
  cannot repeat the same key twice in the Modifier keys window since that
  won't work. You can't define 2 sets of option keys even if you really want
  to. You can disable your control, option, and command keys if you
  want, but that is not recommended.
* Rename kUpdateModifiers to kUpdateModifierKeys message to differetiate
  it from kUpdateModifier.
* Add shift key to Modifier keys window, use the stop icon instead of the
  warning icon to indicate conflicts.
* Allow the Layout system to control the size of the Modifier keys window
  again, set the width's of the key role lables to the widest, set the width
  of the menu fields to take up the rest of the space minus room for the
  conflict views. I didn't like it that the Modifier keys window would change
  size based on what options you had selected in the menu fields. Now it
  doesn't, but, the layout system still makes it all fit.
2012-04-06 02:42:54 -04:00
John Scipione 1a6b60e613 Addresses some of the issues brought up in ticket #8148
The key labels have been changed to Win/Option and Alt/Command
to better associate them with the key names on a PC keyboard. This is
not perfect, but, better.

Added a checkbox entitled "Switch right Alt/Command and Win/Option keys"
This checkbox does what it says, switches the keys on the right side
of your keyboard leaving the left side according to how you set them.
This is needed for some international keymaps.

Whether or not you have switched already is not remembered, you have to
check the box each time you open the dialog. I don't know how to figure
out whether or not the keys have been switched already reliably. Hopefully
this isn't a big deal.

Set the menu option and window title to sentence case, thanks Humdinger.
2012-03-25 16:45:00 -04:00
John Scipione 4d3d4878a5 Patch by taos to add localized catalog for the Keymaps Modifier keys window.
Due to a missing entry in Keymap's Jamfile, the localized strings of
ModifierKeysWindow.cpp are not yet included in the corresponding catalog
on HTA.

The attached patch adds ModifierKeysWindow.cpp to DoCatalogs and changes 'Ok' to 'OK'.

Fixes #8127
2011-11-14 11:50:51 -05:00
Siarzhuk Zharski 6a99b22472 - fix GCC4 build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43223 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-08 09:11:41 +00:00
John Scipione ed1b7b12d4 Another small change to the Keymap Modifier Keys window. Only mark the control, option, and command menu items if both the left and right keys are set.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43222 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-08 07:03:54 +00:00
John Scipione bce949f531 Implemented the style changes and other improvements suggested by Axel to the Keymap preference app Modifier Keys window. The number of lines of code in the class was significantly reduced by these changes. I also made one small change to change the window title from 'Modifers Keys' to 'Modifier Keys'.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43221 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-08 06:47:31 +00:00
John Scipione f5ac2da0a8 Adds a dialog to the Keymap preference app to more easily and
reliably change your modifier keys.

The dialog box is shown by selecting the new 'Set Modifier Keys...'
option under the File menu. This brings up a window which contains 4
dialog boxes labeled: Caps Lock, Control, Option, and Command.

Each of the labels in followed by a drop down box which allows you to select
from one of the other keys listed. So for instance you could switch the Caps
Lock and Control keys but selecting the 'Control' option next to Caps Lock and
the 'Caps Lock' option next to Control.

The Caps Lock menu has an additional option which I find appealing...
'Disable' which, as it sounds, disables your Caps Lock key.

At the bottom of the dialog there are 3 buttons, 'Cancel', 'Revert', and 'Ok'.
'Cancel' and 'Ok' are self explanatory. The 'Revert' button, which is
initially disabled, puts you back into the state that you were when you first
opened the dialog.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43210 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-11-07 13:49:56 +00:00