History log of /haiku/src/preferences/keymap/KeymapWindow.h
Revision Date Author Comments
# e8fc10de 16-Aug-2016 John Scipione <jscipione@gmail.com>

Keymap: Refactor _LoadSettings()

Instead of filling out the path into a BString and using it in the calling method,
call _SetKeyboardLayout() directly using the path found.

Also use a plain const char* array instead of BString because we don't need
the added functionality.

The return value now reflects whether or not the window frame was loaded.

Check the return value on the caller side and only use the resulting window
frame if it is B_OK, otherwise CenterOnScreen().


# a073305c 19-Feb-2014 John Scipione <jscipione@gmail.com>

keymap: limit set of left/right swap options

For Shift, Control, Option, and Command assume that you want to shift
on the same side, left-for-left, right-for-right. The Menu key is
available on either the left or right side, and lock keys can be
swapped with any other modifier left or right.

If we have multiple unmapped modifiers we need to do a little extra
work to figure out which of the unmapped modifiers to swap with.

Convert private class member methods to static functions.

Also update copyright info


# f6c5dbf8 03-Jan-2014 Humdinger <humdingerb@gmail.com>

Some more code style corrections of Keymap.


# 7889cac6 12-May-2013 John Scipione <jscipione@gmail.com>

Keymap: Add Defaults button to revert keymap

Fixes #9980

Since hrev44455 we save your modifier keys settings when you switch
keymaps so you could get your modifiers keys messed up and unable to
get back to normal. This Defaults button allows you to override all
that and go back to the default US-International keymap with default
modifiers so you can start with a fresh slate and set things up the
way you want.

Also moved Revert button to the left side next to the Defaults button.
We do this on other preflets, the right side is reserved for an Apply
or OK button, and, if the preflet doesn't have one, is left empty.


# f5ac2da0 07-Nov-2011 John Scipione <jscipione@gmail.com>

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


# 08cd4bc2 01-Nov-2011 John Scipione <jscipione@gmail.com>

Add 3 new Apple Aluminum keyboard layout files and update and rename the
existing 'Apple Aluminium' keyboard layout to 'Apple Aluminium Extended
International.' The 3 new layout files are US mini and extended version
as well as an international mini version. This completes #7964

International corresponds to keyboard layouts for all locales except the US
and Japan. I have Japanese Apple Aluminum keyboard layout files almost
ready but I first need to determine what the special kana and eisu keys
are mapped to.

The Apple Aluminum keyboard layout files are tucked away in an Apple Aluminum
subdirectory. The Keymap preference app has been modified to turn
subdirectories into submenus of the Layout menu.

HaikuImage has been modified to include each keyboard layout file in the
image individually as recommended by Ingo.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43093 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b01bdb48 17-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* The Keymap preferences app will now memorize its window frame and chosen
layout.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32491 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aa0f32cf 12-May-2009 Oliver Tappe <zooey@hirschkaefer.de>

* removed KeymapMessageFilter, as it is no longer needed
* fixed a couple of issues with respect to internal/external naming of
keymaps and the respective files, hopefully such that there's always one
keymap active in the view: either one that has been selected or (Current)
if any changes have been applied
* replaced the dead-key-menubar with a menufield (thanks Axel, looking much
better)
cleanup:
* removed remnants of Use-button (message constant and switch-case)
* dropped 'Save' menu item, as it wasn't implemented anyway and would now
never be enabled
* removed fFirstTime, as it caused problems, but did not serve any purpose
anymore


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30734 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf38cb69 12-May-2009 Oliver Tappe <zooey@hirschkaefer.de>

* should have been part of r30723

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30724 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 83936c1c 12-May-2009 Oliver Tappe <zooey@hirschkaefer.de>

* Added support for selecting the dead key trigger characters from a menubar,
offering two choices for acute and diaeresis as well as allowing to switch
off each dead key completely.
* moved the textview on a line of its own such that the dead key menu and
the modifier-switching button live together on one line
* added enum dead_key_index and used it at a couple of places instead of
having to use the magic numbers 1-5
* refactored the actual updating of the fChars buffer from SetKey() into
_SetChars(), which is now being invoked by SetDeadKeyTrigger(), too

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30718 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6db2be32 05-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Changed the way the shortcuts are switched: we no longer do the same thing
as BeOS on the right side (that is, switching control and option key), but
switch control and command there as well.
* As a consequence, the Alt-Gr key will stay where it is when switching the
shortcuts.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29929 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ebe98045 30-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* Added ability to change modifier keys (per drag and drop).
* Added button to switch shortcut modifier keys.
* Added option to make the KeyboardLayoutView non-editable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29801 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a39e396 25-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* Add capability to load other keyboard layouts from disk. It even works :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29714 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 495c8b84 25-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29705 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b9767aa 25-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* The text control is now back - instead of overwriting BTextView::KeyDown(),
we now use a plain BTextControl, and a custom message filter. For some reason,
BHandler::AddFilter() does not work, though, this needs some investigation.
* Enabled the font menu again, the font in the text control is changed as well.
* Made the default window size a bit smaller on large screens.
* Scrolling to the selection does not seem to work before Show() - looks like
a bug in the layout implementation.
* Moved some methods around to match their declaration order.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29698 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e4aad26f 24-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* While the new stuff isn't really ready for prime time, I've switched over
to it now (also to get some comments). It already looks better than the old
one, at least.
* The KeymapWindow is now using our layout engine.
* Removed the old MapView.
* Do you think the text view is necessary? And the ability to switch the font?
(I've removed both for now, comments welcome)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29684 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7a249e96 24-Oct-2008 Alexandre Deckner <alex@zappotek.com>

Few fixes to the keymap preflet to make it good enough for the alpha 1. Lots of
things could be rewritten in a cleaner way but i'd rather finish my keymap
management patch as i rewrote the preflet for it anyway. For example the '(Current)'
item shouldn't be needed anymore but is still there in case the keymap:name attribute
read fails or if the original keymap file doesn't exist anymore (for example, applying
a user keymap, quiting the preflet, deleting the keymap file, and reloading the
preflet)

* Revert/apply data wasn't correctly loaded when the first load was on a system
keymap. This would allow revert/apply right after starting the preflet. That was the
cause of #2659.
* fCurrentMapName wasn't updated after a Revert or Apply
* Select the active keymap in the lists after reverting.

Quick cosmetical fix follows.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28313 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 487171f0 11-Apr-2008 Rene Gollent <anevilyak@gmail.com>

Keymap preferences now saves an attribute on the Key_map file to indicate
what keymap it came from. This allows us to indicate the current keymap in
the list views. I'm not sure how to get the build system to populate that
attribute by default though.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24924 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 793fb95c 29-Feb-2008 Alexandre Deckner <alex@zappotek.com>

* not a "chef d'oeuvre" but revert and apply buttons should behave as
expected now
* removed some dead code


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24180 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ad93c2f5 25-Feb-2008 Alexandre Deckner <alex@zappotek.com>

* style cleanup, new style casts, license header updates


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24113 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8f93d18 25-Feb-2008 Alexandre Deckner <alex@zappotek.com>

* rewrote drawing to use an offscreen view
* made keys move down when pressed
* reduced font size of locks light's text to fit in

This fixes #251, style cleanup will follow


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24110 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 127e973b 15-Dec-2005 Jérôme Duval <korli@users.berlios.de>

fixed build for non haiku targets


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15550 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a2618d1f 23-Aug-2005 Jérôme Duval <korli@users.berlios.de>

clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14052 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a10cf76e 24-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Renamed src/prefs to "preferences", as the directory is usually called in BeOS.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13263 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a073305c9669e9a76db294148e6eef1e5ceb2d5e 19-Feb-2014 John Scipione <jscipione@gmail.com>

keymap: limit set of left/right swap options

For Shift, Control, Option, and Command assume that you want to shift
on the same side, left-for-left, right-for-right. The Menu key is
available on either the left or right side, and lock keys can be
swapped with any other modifier left or right.

If we have multiple unmapped modifiers we need to do a little extra
work to figure out which of the unmapped modifiers to swap with.

Convert private class member methods to static functions.

Also update copyright info


# f6c5dbf81cf723abdbdae12fc4ec81c780ed2190 03-Jan-2014 Humdinger <humdingerb@gmail.com>

Some more code style corrections of Keymap.


# 7889cac6cf4c8b7b8378356eec3ab30a70650794 12-May-2013 John Scipione <jscipione@gmail.com>

Keymap: Add Defaults button to revert keymap

Fixes #9980

Since hrev44455 we save your modifier keys settings when you switch
keymaps so you could get your modifiers keys messed up and unable to
get back to normal. This Defaults button allows you to override all
that and go back to the default US-International keymap with default
modifiers so you can start with a fresh slate and set things up the
way you want.

Also moved Revert button to the left side next to the Defaults button.
We do this on other preflets, the right side is reserved for an Apply
or OK button, and, if the preflet doesn't have one, is left empty.


# f5ac2da0a80a5c1075cfb06747c58a5f95ea124a 07-Nov-2011 John Scipione <jscipione@gmail.com>

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


# 08cd4bc208c658ee17b0825529d5e8479d4fd560 01-Nov-2011 John Scipione <jscipione@gmail.com>

Add 3 new Apple Aluminum keyboard layout files and update and rename the
existing 'Apple Aluminium' keyboard layout to 'Apple Aluminium Extended
International.' The 3 new layout files are US mini and extended version
as well as an international mini version. This completes #7964

International corresponds to keyboard layouts for all locales except the US
and Japan. I have Japanese Apple Aluminum keyboard layout files almost
ready but I first need to determine what the special kana and eisu keys
are mapped to.

The Apple Aluminum keyboard layout files are tucked away in an Apple Aluminum
subdirectory. The Keymap preference app has been modified to turn
subdirectories into submenus of the Layout menu.

HaikuImage has been modified to include each keyboard layout file in the
image individually as recommended by Ingo.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43093 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b01bdb48ea5093f6c20b58540f9a326d452cbc17 17-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* The Keymap preferences app will now memorize its window frame and chosen
layout.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32491 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aa0f32cfbd81659c01209ada37d0148cdd34727d 12-May-2009 Oliver Tappe <zooey@hirschkaefer.de>

* removed KeymapMessageFilter, as it is no longer needed
* fixed a couple of issues with respect to internal/external naming of
keymaps and the respective files, hopefully such that there's always one
keymap active in the view: either one that has been selected or (Current)
if any changes have been applied
* replaced the dead-key-menubar with a menufield (thanks Axel, looking much
better)
cleanup:
* removed remnants of Use-button (message constant and switch-case)
* dropped 'Save' menu item, as it wasn't implemented anyway and would now
never be enabled
* removed fFirstTime, as it caused problems, but did not serve any purpose
anymore


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30734 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf38cb69740ea484f91cf509b20f337a339f2371 12-May-2009 Oliver Tappe <zooey@hirschkaefer.de>

* should have been part of r30723

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30724 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 83936c1c26990457a3de22f0df6d8fa005e24026 12-May-2009 Oliver Tappe <zooey@hirschkaefer.de>

* Added support for selecting the dead key trigger characters from a menubar,
offering two choices for acute and diaeresis as well as allowing to switch
off each dead key completely.
* moved the textview on a line of its own such that the dead key menu and
the modifier-switching button live together on one line
* added enum dead_key_index and used it at a couple of places instead of
having to use the magic numbers 1-5
* refactored the actual updating of the fChars buffer from SetKey() into
_SetChars(), which is now being invoked by SetDeadKeyTrigger(), too

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30718 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6db2be327d3e4a3bd16095ff8a6fc147af326794 05-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Changed the way the shortcuts are switched: we no longer do the same thing
as BeOS on the right side (that is, switching control and option key), but
switch control and command there as well.
* As a consequence, the Alt-Gr key will stay where it is when switching the
shortcuts.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29929 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ebe98045d7383cee5d80c918eb5667b7b9106181 30-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* Added ability to change modifier keys (per drag and drop).
* Added button to switch shortcut modifier keys.
* Added option to make the KeyboardLayoutView non-editable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29801 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0a39e396165111d63ef438482bf60125a3903663 25-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* Add capability to load other keyboard layouts from disk. It even works :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29714 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 495c8b848bfd606462331318b1f4c2b7b8d0409d 25-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29705 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6b9767aa8adacafb63700e4ec46478c812f46e9c 25-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* The text control is now back - instead of overwriting BTextView::KeyDown(),
we now use a plain BTextControl, and a custom message filter. For some reason,
BHandler::AddFilter() does not work, though, this needs some investigation.
* Enabled the font menu again, the font in the text control is changed as well.
* Made the default window size a bit smaller on large screens.
* Scrolling to the selection does not seem to work before Show() - looks like
a bug in the layout implementation.
* Moved some methods around to match their declaration order.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29698 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e4aad26fec2e5ff3e807e54c88892592198ce29e 24-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* While the new stuff isn't really ready for prime time, I've switched over
to it now (also to get some comments). It already looks better than the old
one, at least.
* The KeymapWindow is now using our layout engine.
* Removed the old MapView.
* Do you think the text view is necessary? And the ability to switch the font?
(I've removed both for now, comments welcome)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29684 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7a249e96f520c0570ea8e5b245cad027c33c9c91 24-Oct-2008 Alexandre Deckner <alex@zappotek.com>

Few fixes to the keymap preflet to make it good enough for the alpha 1. Lots of
things could be rewritten in a cleaner way but i'd rather finish my keymap
management patch as i rewrote the preflet for it anyway. For example the '(Current)'
item shouldn't be needed anymore but is still there in case the keymap:name attribute
read fails or if the original keymap file doesn't exist anymore (for example, applying
a user keymap, quiting the preflet, deleting the keymap file, and reloading the
preflet)

* Revert/apply data wasn't correctly loaded when the first load was on a system
keymap. This would allow revert/apply right after starting the preflet. That was the
cause of #2659.
* fCurrentMapName wasn't updated after a Revert or Apply
* Select the active keymap in the lists after reverting.

Quick cosmetical fix follows.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28313 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 487171f0b915ae973e4b8bb80cb8c989e48e543e 11-Apr-2008 Rene Gollent <anevilyak@gmail.com>

Keymap preferences now saves an attribute on the Key_map file to indicate
what keymap it came from. This allows us to indicate the current keymap in
the list views. I'm not sure how to get the build system to populate that
attribute by default though.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24924 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 793fb95c82d4325c5df176fc407d3234f96daf59 29-Feb-2008 Alexandre Deckner <alex@zappotek.com>

* not a "chef d'oeuvre" but revert and apply buttons should behave as
expected now
* removed some dead code


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24180 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ad93c2f5ebcde6ff4a231ebd422dee2773c8f502 25-Feb-2008 Alexandre Deckner <alex@zappotek.com>

* style cleanup, new style casts, license header updates


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24113 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8f93d1843dff7e15261d8fc08d0199c65225c21 25-Feb-2008 Alexandre Deckner <alex@zappotek.com>

* rewrote drawing to use an offscreen view
* made keys move down when pressed
* reduced font size of locks light's text to fit in

This fixes #251, style cleanup will follow


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24110 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 127e973b5dab022b0494cad9b8147993b33fd40e 15-Dec-2005 Jérôme Duval <korli@users.berlios.de>

fixed build for non haiku targets


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15550 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a2618d1f2218bf54e257ec947440a81a8b0bc113 23-Aug-2005 Jérôme Duval <korli@users.berlios.de>

clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14052 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a10cf76ef5b9e8c726ebc47183abd6943023cf8f 24-Jun-2005 Axel Dörfler <axeld@pinc-software.de>

Renamed src/prefs to "preferences", as the directory is usually called in BeOS.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13263 a95241bf-73f2-0310-859d-f6bbb57e9c96