History log of /haiku/src/preferences/keymap/KeyboardLayoutView.cpp
Revision Date Author Comments
# 0e673505 06-Dec-2023 John Scipione <jscipione@gmail.com>

Keymap: Capitalize L in Caps Lock as a proper noun

... exception to sentence case rule, also Scroll Lock and Num Lock.

Capitalize Right/Left Shift, Control, Option and Command as well.

Change-Id: I65b85eb580fe8cd06664b1bc230ac6aef15d6487
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7182
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 1bb04f4a 11-Mar-2023 X512 <danger_mail@list.ru>

preferences/Keymap: use transparent background, reduce stamping artifacts

Change-Id: I4109808f81659f86c8dd75f16e38b5eca6fdbc9c
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6188
Tested-by: Automation <automation@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 2aa85f5f 27-Sep-2021 Augustin Cavalier <waddlesplash@gmail.com>

VirtualKeyboard: Fold KeyboardLayoutView back into the Keymap preferences one.

Only one #ifdef, the rest is all in basic if-tests. Relatively minimal changes,
and now the virtual keyboard device gets all the improvements made to the keyboard
layout view over the last 6 years.


# 69cd1bde 03-Mar-2021 Murai Takashi <tmurai01@gmail.com>

keymap: fix value stored to 'flags' is never read

Fix 'flags' was not used in In KeyboardLayoutView::_DrawKeyButton().
Pointed by Clang Static Analyzer.

Change-Id: Ic3b2da856ee410e908eaaf0c5c4b5b3753928c00
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4079
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# c37693dd 09-Jan-2021 Adrien Destugues <adrien.destugues@opensource.viveris.fr>

KeyboardLayoutView: remove B_FLAT button flag for drawing keys

We do not want flat buttons here. This was introduced to get the Be
control look to draw inverted color labels on the buttons, but there
must be another way to do this.

Fixes #16660.


# 5d104205 09-Dec-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Add Noto Sans Symbols2 to font fallbacks

Also use the correct symbol for the return key (we were using another
similar arrow because this one was not available in DejaVu Sans).

Fixes #14034.

Note that build/jam/repositories/HaikuPorts ships an old version of the
Noto package that does not include the Symbols2 font. It should be
updated. Adding this to the pile of lagging behind packages, alongside
icu, mawk/gawk, and tnftp. Can anyone take care of it?


# 7c095f47 01-Jun-2020 John Scipione <jscipione@gmail.com>

BeControlLook: Fix app integration drawing issues

Update BTab::DrawTab() to pass the current index, the index of the
selected tab, and the index of the first and last tabs into
BControlLook::DrawActiveTab() and BControlLook::DrawInactiveTab().
This allows you to draw tabs differently in your BTab or BControlLook
subclass in many different circumstances.

Modify BControlLook API to add indexes to DrawActiveTab() and
DrawInactiveTab() like so:

void DrawActiveTab(..., int32 index = 0, int32 selected = -1,
int32 first = 0, int32 last = 0);
void DrawInactiveTab(..., int32 index = 0, int32 selected = -1,
int32 first = 0, int32 last = 0);

These extra indexes are not used by HaikuControlLook which relies only
on if the tab is active or inactive to draw.

Add IndexOf(BTab* tab) method to BTabView and document it to get the
index of the current tab in BTab::DrawTab(). Also add a warning in the
BTabView::DrawTab() method not to use the position and full parameters
anymore, use BTabView::IndexOf(), BTabView::Selection(), and
BTabView::TabCount() to get the info you need.

Using a dynamic_cast to a BTabView in BeControlLook to determine if the
view is derived from a BTabView didn't work in the case of WebPositive.
Furthermore, WebPositive does custom tab drawing which needed to be
updated for alternative control look. These index parameters passed from
BTab to BeControlLook allow us to draw the tab like BeOS without relying
on a dynamic_cast to BTabView to get the info.

Reproduce the functionality described above for BTab in WebPositive's
custom tabs. Eliminate no longer needed code in favor of using indexes.
Update WebPositive custom tabs to use BControlLook::DrawTabFrame()
instead of BControlLook::DrawInactiveTab() matching the update made in
BTabView.

In BeControlLook::DrawTabFrame() fill rect with base color, WebPositive
doesn't draw any tab background, so it expects this work to be done for
it.

Eliminate hasFrames variable from WebPositive.

Rename TabSelected(index) to UpdateSelection(index) in WebPositive to
better reflect its purpose.

Adjusted HaikuControlLook::DrawInactiveTab() to draw the tab borders more
selectively. Only draw border if left border is set for top and bottom tabs
or top border is set for left and right tabs. Undo no longer needed frame
manipulation border drawing workaround in HaikuControlLook::DrawTabFrame().

Draw scroll bar triangle without using DrawArrowShape().

Unlike in HaikuControlLook, DrawArrowShape() is used to draw arrows in
BOutlineListView and menus distinctly from how it draws arrows in scroll
bars. Draw our distinct arrows in DrawSrollBarButtons() instead.

This fixes overflow of time edit up-down arrows in Clock prefs and the
collapse-expand arrow in Deskbar not being vertically centered.

In DrawBorders() only inset if we actually draw the border.

Fix alignment issues with DrawSliderThumb dots for example in
MediaPlayer volume knobs.

Draw using line arrays calling AddLine instead of StrokeLine in
several places.

DrawMenuBar() extends to draw final pixel which eliminates an extra
lines at the end of menu bars.

Truncate button labels better fixing a few issues for example keymap
keyboard layout button labels. Button insets has been updated a bit
to fix drawing issues with buttons missing a border.

Using a dynamic_cast to a BButton to determine if a view is a button
in BeControlLook didn't work in the case of the keymap label. Look for
B_FLAT, B_HOVER, or B_DEFAULT_BUTTON flag in BeControlLook::DrawLabel()
to draw the label inverted on click. Pass the B_FLAT flag from Keymap
keys when drawing using BControlLook so that the label is inverted.

Change-Id: I07631f4b006bdb9aeca2adc9cbdf2da54dae8e92
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2866
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 371b3b2b 24-Feb-2020 X512 <danger_mail@list.ru>

Keymap: remove flickering workarounds, small fixes

Part of #15623.

Change-Id: I44d62a39efeaa25ecdc3b8a9aa27ca9fef33e5b9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2279
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# bc622f6b 15-Oct-2018 Humdinger <humdingerb@gmail.com>

Fix missing localization

This addresses some of what's reported in ticket #14637.

* Keymap preferences: Localize key labels. Translators have
to be careful not too use too long words here...

* Media preferences: Fix typo "SoundFonts" -> "SoundFont"
The two popup menus, Video input/output, both use "<none>",
which when the catkeys are collected is reduced to one item.
Apparently, Italian likes to have different tranlsations for
them. I hope to fix that by using B_TRANSLATE_COMMENT with
differing comments. Not sure if that'll work...

* Network preferences: Localize "on/off" and "Enable/Disable"
in the Services.

* Repositories preferences:
Add RepoRow.cpp to DoCatalogs.

* Shortcuts preferences: Localize "Left/Right/Both/Either/None"

* Bluetooth replicant: Localize menu items and alerts.

* DeskCalc: Localize button names.

* HaikuDepot:
- Use BStringFormat and variables to replace for the WorkStatusView.
- Put package name in single quotes; nicer if you have package names
with spaces.
- Avoid leading and trailing spaces in translatable strings. Those
can be overlooked b the translator.
- Use B_UTF8_ELLIPSIS instead of "...".

Change-Id: Ia32908f9faad5188aa87c918c31229277decbda9
Reviewed-on: https://review.haiku-os.org/631
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# f0650dc9 09-Dec-2015 looncraz <looncraz@looncraz.net>

preferences: Convert to using Set*UIColor.

Signed-off-by: Augustin Cavalier <waddlesplash@gmail.com>
Patches 0023-0037 from looncraz, unmodified.


# b433c2ad 07-Jan-2015 John Scipione <jscipione@gmail.com>

Keymap: Add ability to remove a key mapping

... of a normal (non-modifier) key via a right click menu.


# 3d01d427 26-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

Keymap preferneces: improve deadkey handling logic

* The key down message is not delivered when completing a dead key, so
act on key up instead.
* Pressing a character after a dead key would leave the keymap in "dead
key" mode, and that mode would be exited only by pressing a dead key
again.

Fixes #5734.


# a44b74d5 20-Feb-2014 John Scipione <jscipione@gmail.com>

Keymap: static functions back to private methods


# 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


# 8eb27eaa 04-Sep-2013 John Scipione <jscipione@gmail.com>

Keymap: Allow you to unset modifier keys

Selecting the marked menu item will unset the mapping for that modifier.

We can't rely on there being a unique mapping for a key (more than one
could be set to 0 aka unset) so we have to set the menu item names based
on the interface defs constants intead.


# ab0f7d66 04-Sep-2013 John Scipione <jscipione@gmail.com>

Keymap: activate popup for all modifiers

not just those that have a modifier key mapped to them already

Also check for control+click == RMB


# f97a4a3c 04-Sep-2013 John Scipione <jscipione@gmail.com>

Keymap: Backward loop count optimization


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

Swap buttons with primary mouse button instead of secondary


# 7e964405 12-May-2013 John Scipione <jscipione@gmail.com>

Return early if dragging, unindent the rest


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

Some small style fixes


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

No longer need to check for this here


# 173b5a68 10-May-2013 John Scipione <jscipione@gmail.com>

Keymap: swap modifiers keys via context menu

When the user right clicks on a modifier key pop up a menu listing the
available modifiers. When the user selects a modifier from the menu swap
the key with the selected modifier. This provides an alternative way to swap
modifier keys other than drag&drop that works for just modifier keys.


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

Some more code style corrections of Keymap.


# 6ba46ced 06-May-2013 John Scipione <jscipione@gmail.com>

Reinit offscreen bitmap when set keyboard layout

Fixes #9345


# 97d1235c 23-Oct-2012 John Scipione <jscipione@gmail.com>

Fill in the return key rect with the background color.

This eliminates artifacts that are seen when the key is drawn while
being dragged.


# 184ecaf4 22-Oct-2012 John Scipione <jscipione@gmail.com>

Draw rounded inner corners for return key in Keymap.

Draw the return key with rounded inner corners instead of square, this
builds on top of the changes made in hrev44709. The secret to rounding
the corners was to draw both the edge and background of the individual
sections before drawing the button's background on top minus the
clipped out bottom left section.

+alpha4 (optionally, purely cosmetic but shouldn't hurt)


# 9aaf8ee2 19-Oct-2012 John Scipione <jscipione@gmail.com>

Draw the inner corner of the enter key with square edges.

This completes the rework of the return key drawing code and fixes
bug #8700. (+alpha4)


# a8c0ae81 18-Oct-2012 John Scipione <jscipione@gmail.com>

WIP: Rewrite code to draw the return key


# a12bf7d4 17-Oct-2012 John Scipione <jscipione@gmail.com>

Clipping region is preserved between Draw Button calls.

Remove the code that resets the clipping region. However, the
enter button still doesn't draw correctly, the trick it used before
is not working with the change from the last commit.


# 5084d0d4 10-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Added more things to x86_64 image.

Some preference apps, mount_server and AboutSystem. Removed the check
for x86_64 in the boot script, the normal path through the script will
work now. Also removed a temporary hack to workaround AboutSystem not
being there in build_haiku_image.


# a884b43b 19-Mar-2012 John Scipione <jscipione@gmail.com>

Added support for buttons and menuframes with rounded corners.

* Not turned on for default buttons and menuframes right now.
* Updated Deskcalc and Keymap to use buttons with rounded corners.
* Overloaded methods with radium parameters are not virtual right
now so as to not break vtables. Added /*virtual*/ before each
method that should be made virtual in ControlLook.h
* Added a light line to the left border of the down arrow frame
on menu frames as a small visual tweak.
* Replace StrokeRect() with StrokeRoundRect() when drawing the
default button indicator. This gives them a rounded
appearance if the button is also rounded.
* Added protected methods _DrawMenuFieldBackgroundOutside and
_DrawMenuFieldBackgroundInside.
* Created some protected methods to get the edge, frame, and bevel
colors from a passed in base color because it was a mess and I
needed to calculate the colors from mutiple methods. It is much
cleaner now.
* Added myself to ControlLook.cpp authors list. Assigned copyright
to Haiku, Inc. Stippi also retains his copyright.
* Tons of style fixes.
- Change all instances of `if (flags & B_FLAG)` to
`if ((flags & B_FLAG) != 0)`
- Reorder some methods.
- Reorder includes.
- Spacing.
- Updated comments.


# 6c387863 26-Dec-2010 Michael Lotz <mmlr@mlotz.ch>

CID 2208 and 8119 (both pointing at the same issue): The strlcpy() was using
sizeof(char *) instead of the separately supplied textSize argument.


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


# 8f62243f 17-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fix warnings in Keymap preflet about hidden virtual by renaming SetFont()
to SetBaseFont() (and fFont to fBaseFont)
* enabled -Werror for all preflets


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


# b19e758b 21-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* The Keymap::IsDeadKey() of the Keymap preferences which was the main source
of BKeymap was not compatible with IsDeadKey() of the other Keymap
incarnations.
* Now, I've renamed IsDeadKey() to DeadKey(), and introduced a new
ActiveDeadKey() method that works like the other former IsDeadKey().
* This fixes the dead key problems my earlier BKeymap work introduced.


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


# 9fe2b963 10-Jan-2010 Jérôme Duval <korli@users.berlios.de>

Change dragging bitmap so that the return key has a transparent background while moving.
Fixed #3892


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


# b11d8c83 03-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Some keymap labels now have an abbreviated version that is used when the key
gets too small for the full text.
* This closes enhancement ticket #4024.


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


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

* Don't forward the drop messages to the next handler if we already handled
them.


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


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

* When switching modifiers, the source key was not invalidated, making it appear
as if a copy happened. This closes bug #4242.
* Minor cleanup.


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


# 246d3119 13-May-2009 Oliver Tappe <zooey@hirschkaefer.de>

* fixed coding style issues

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


# d47410e0 13-May-2009 Oliver Tappe <zooey@hirschkaefer.de>

* avoid key highlighting unless the preflet window is active, at least
I've found it pretty silly that the Keymap preflet would document all my
keypresses although I'm doing something elsewhere

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


# 83656437 10-May-2009 Oliver Tappe <zooey@hirschkaefer.de>

* dead keys can now be enabled/disabled via middle mouse button
* fDragKey must be reset in MouseUp() as otherwise it is not possible to
drag a key from one keymap to the textview and then from the textview to the
same key of another keymap
* _HandleDeadKey() now ignores modifier keys as otherwise dead keys that
required pressing a modifier (like the tilde on the German keyboard) failed
to highlight the resulting characters
What's still missing is a way to edit the resulting characters for each dead key, but I am not yet sure how to do that in an elegant way

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


# 1e855c37 12-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Patch by Fredrik Ekdahl: gcc 4 build fixes (missing headers).
* Added missing header for mountvolume.


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


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

* Made the modifiers sticky when used with the mouse. This greatly improves
changing keymaps this way.


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


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

* Fixed drawing the L-shaped enter key; the clipping was constrained on the
wrong view since I added offscreen drawing.
* Added a description of the keyboard layout language; it's unlikely to
undergo much changes anymore now.
* Added a few comments for stippi :-)


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


# 7e5ffaa2 01-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Now accepts only the first character that is dropped on a key.
* Also, escaped strings (like those from CharacterMap) are now converted
automatically.


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


# 321e8a64 31-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* Now use a special character for the backspace key.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29823 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


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

* Don't allow dragging modifier keys around until we actually support
changing them.


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


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

* Imported Modifier() and KeyForModifier() from the Keymap class in the
keyboard input server add-on. We should really have a common source for this
somewhere...
* Used that functionality to change the modifiers when using the mouse, too.


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


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

* Works around a race condition/bug/design issue in our layout engine:
sometimes the size isn't set in AttachedToWindow() yet, and the first
FrameResized() comes after the first Draw(). We now relayout in Draw()
in case the size changed since last time.


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


# 16dc221d 27-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* Now uses an offscreen bitmap for flicker free drawing.
* Only trigger a redraw on B_MODIFIER_CHANGED if something actually changed.


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


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

* Fixed regression; the key labels could be drawn out of the button border.


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


# 681c2e44 25-Mar-2009 Stephan Aßmus <superstippi@gmx.de>

The button and menu field draw routines take a background color into account,
which makes the resessed frame blend better with the surroundings. This can
be seen best in Keymap, where a different color is set on some buttons, but
the resessed frame should still be the same across all those buttons.


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


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

* The L-shaped "enter" key can now also be drawn almost right (uses
BControlLook plus some clipping to do its magic).
* Fixed scancode only mode of the keyboard layout view.
* Fixed filter thanks to Rene.


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


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

* Added support for LED status indicators.
* The look isn't perfect yet, but well; improvements welcome.


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


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

* The default drag&drop action is now copy, if you drag with the second mouse
button, you switch the keys.
* Switching the same key with different modifiers held works now.
* The drop target is now reevaluated when a modifier key is pressed, as the
key originating the drag cannot be its target (but only with the same
modifiers pressed).


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


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

* The message filter now does not do anything anymore when the source keymap
matches his own (field now added to the KeyboardLayoutView fake B_KEY_DOWN
messages).
* The default action for keyboard to keyboard drag&drop is to switch the keys
now.
* When a key is overwritten by a drop, the old key is now sent to the text
view, so that it's not lost (if that was a mistake you can now easily revert
it without having to press the "Revert" button and lose all changes).
* Cleanup.


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


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

* Now handles dead keys via the mouse as well.
* Added _InvalidateKey() variant.


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


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

* Added the ability to set a target that will receive fake B_KEY_DOWN
messages generated when pressing the keys.
* The font size is now adapted to match the key size better, maximum size is
the current plain font.
* The keys you drag around now generate a useful B_MIME_DATA message, that other
views can accept as well.
* Implemented support for changing the keymap via drag&drop.
* Added SetFont() method to change the font used by the keys.


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


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

Another work-in-progress commit:
* Started working on dragging keys around.


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


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

* Another work-in-progress commit: added dead key handling, started mouse
interaction, draw symbols differently.


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


# 42176b84 23-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* Work in progress commit of the Keymap rework. Should not disturb the
existing code.


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


# b433c2ad87ce85265ca5674be338f3716372a512 07-Jan-2015 John Scipione <jscipione@gmail.com>

Keymap: Add ability to remove a key mapping

... of a normal (non-modifier) key via a right click menu.


# 3d01d427aea8c849257197f23564aca7030bf606 26-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

Keymap preferneces: improve deadkey handling logic

* The key down message is not delivered when completing a dead key, so
act on key up instead.
* Pressing a character after a dead key would leave the keymap in "dead
key" mode, and that mode would be exited only by pressing a dead key
again.

Fixes #5734.


# a44b74d5450eaf36dd9c69f5731bc3ff8b505485 20-Feb-2014 John Scipione <jscipione@gmail.com>

Keymap: static functions back to private methods


# 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


# 8eb27eaa797ad24b843fca7c4047f0709eeb49af 04-Sep-2013 John Scipione <jscipione@gmail.com>

Keymap: Allow you to unset modifier keys

Selecting the marked menu item will unset the mapping for that modifier.

We can't rely on there being a unique mapping for a key (more than one
could be set to 0 aka unset) so we have to set the menu item names based
on the interface defs constants intead.


# ab0f7d6627fe32e98d4713352896f2a7f66f9854 04-Sep-2013 John Scipione <jscipione@gmail.com>

Keymap: activate popup for all modifiers

not just those that have a modifier key mapped to them already

Also check for control+click == RMB


# f97a4a3ceb529fb728434b06965be192d9a8401b 04-Sep-2013 John Scipione <jscipione@gmail.com>

Keymap: Backward loop count optimization


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

Swap buttons with primary mouse button instead of secondary


# 7e9644053fa71d13034e4a3e388279e0b5fefa92 12-May-2013 John Scipione <jscipione@gmail.com>

Return early if dragging, unindent the rest


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

Some small style fixes


# 4346099683a335efeab6217c62bde7c8dff35ef7 12-May-2013 John Scipione <jscipione@gmail.com>

No longer need to check for this here


# 173b5a686d834bb354bce8e1ac00e587d0ede4c2 10-May-2013 John Scipione <jscipione@gmail.com>

Keymap: swap modifiers keys via context menu

When the user right clicks on a modifier key pop up a menu listing the
available modifiers. When the user selects a modifier from the menu swap
the key with the selected modifier. This provides an alternative way to swap
modifier keys other than drag&drop that works for just modifier keys.


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

Some more code style corrections of Keymap.


# 6ba46ced853e1a8ee1bc271eebf0e1e58100bb4e 06-May-2013 John Scipione <jscipione@gmail.com>

Reinit offscreen bitmap when set keyboard layout

Fixes #9345


# 97d1235cef30c0445af4986d84671b33acb41ee9 23-Oct-2012 John Scipione <jscipione@gmail.com>

Fill in the return key rect with the background color.

This eliminates artifacts that are seen when the key is drawn while
being dragged.


# 184ecaf4c509dd651770aafe3dd2b2c27aad0990 22-Oct-2012 John Scipione <jscipione@gmail.com>

Draw rounded inner corners for return key in Keymap.

Draw the return key with rounded inner corners instead of square, this
builds on top of the changes made in hrev44709. The secret to rounding
the corners was to draw both the edge and background of the individual
sections before drawing the button's background on top minus the
clipped out bottom left section.

+alpha4 (optionally, purely cosmetic but shouldn't hurt)


# 9aaf8ee2032a116d615975aee444f70c64a5505b 19-Oct-2012 John Scipione <jscipione@gmail.com>

Draw the inner corner of the enter key with square edges.

This completes the rework of the return key drawing code and fixes
bug #8700. (+alpha4)


# a8c0ae81ab8219f08ec90881d39adcf9088822b2 18-Oct-2012 John Scipione <jscipione@gmail.com>

WIP: Rewrite code to draw the return key


# a12bf7d47b99eba1319ce8092e3f5599996dd441 17-Oct-2012 John Scipione <jscipione@gmail.com>

Clipping region is preserved between Draw Button calls.

Remove the code that resets the clipping region. However, the
enter button still doesn't draw correctly, the trick it used before
is not working with the change from the last commit.


# 5084d0d451501f3c026d593dc109cbb76d7688fc 10-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Added more things to x86_64 image.

Some preference apps, mount_server and AboutSystem. Removed the check
for x86_64 in the boot script, the normal path through the script will
work now. Also removed a temporary hack to workaround AboutSystem not
being there in build_haiku_image.


# a884b43bb1c7bbd60789f35934466a970fe59d9f 19-Mar-2012 John Scipione <jscipione@gmail.com>

Added support for buttons and menuframes with rounded corners.

* Not turned on for default buttons and menuframes right now.
* Updated Deskcalc and Keymap to use buttons with rounded corners.
* Overloaded methods with radium parameters are not virtual right
now so as to not break vtables. Added /*virtual*/ before each
method that should be made virtual in ControlLook.h
* Added a light line to the left border of the down arrow frame
on menu frames as a small visual tweak.
* Replace StrokeRect() with StrokeRoundRect() when drawing the
default button indicator. This gives them a rounded
appearance if the button is also rounded.
* Added protected methods _DrawMenuFieldBackgroundOutside and
_DrawMenuFieldBackgroundInside.
* Created some protected methods to get the edge, frame, and bevel
colors from a passed in base color because it was a mess and I
needed to calculate the colors from mutiple methods. It is much
cleaner now.
* Added myself to ControlLook.cpp authors list. Assigned copyright
to Haiku, Inc. Stippi also retains his copyright.
* Tons of style fixes.
- Change all instances of `if (flags & B_FLAG)` to
`if ((flags & B_FLAG) != 0)`
- Reorder some methods.
- Reorder includes.
- Spacing.
- Updated comments.


# 6c3878631123d7a7fc0d9756d1747bc9c640225a 26-Dec-2010 Michael Lotz <mmlr@mlotz.ch>

CID 2208 and 8119 (both pointing at the same issue): The strlcpy() was using
sizeof(char *) instead of the separately supplied textSize argument.


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


# 8f62243f372b69918512816a43173b5456c764b9 17-Aug-2010 Oliver Tappe <zooey@hirschkaefer.de>

* fix warnings in Keymap preflet about hidden virtual by renaming SetFont()
to SetBaseFont() (and fFont to fBaseFont)
* enabled -Werror for all preflets


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


# b19e758b80e6eca2e5d81b75c738b4b5c9e70f18 21-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* The Keymap::IsDeadKey() of the Keymap preferences which was the main source
of BKeymap was not compatible with IsDeadKey() of the other Keymap
incarnations.
* Now, I've renamed IsDeadKey() to DeadKey(), and introduced a new
ActiveDeadKey() method that works like the other former IsDeadKey().
* This fixes the dead key problems my earlier BKeymap work introduced.


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


# 9fe2b963427de31f6c4f925748b85a60a771b4e7 10-Jan-2010 Jérôme Duval <korli@users.berlios.de>

Change dragging bitmap so that the return key has a transparent background while moving.
Fixed #3892


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


# b11d8c839f8243b4f181e48fb947b45bfd29b594 03-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Some keymap labels now have an abbreviated version that is used when the key
gets too small for the full text.
* This closes enhancement ticket #4024.


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


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

* Don't forward the drop messages to the next handler if we already handled
them.


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


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

* When switching modifiers, the source key was not invalidated, making it appear
as if a copy happened. This closes bug #4242.
* Minor cleanup.


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


# 246d3119ea88323c2c8a90a9eb0feb1e35a06510 13-May-2009 Oliver Tappe <zooey@hirschkaefer.de>

* fixed coding style issues

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


# d47410e075e44a445429f3f8d83bc7fdaf6bdbd0 13-May-2009 Oliver Tappe <zooey@hirschkaefer.de>

* avoid key highlighting unless the preflet window is active, at least
I've found it pretty silly that the Keymap preflet would document all my
keypresses although I'm doing something elsewhere

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


# 83656437205323cf56b5e6a30dfd6e2f135f2ab8 10-May-2009 Oliver Tappe <zooey@hirschkaefer.de>

* dead keys can now be enabled/disabled via middle mouse button
* fDragKey must be reset in MouseUp() as otherwise it is not possible to
drag a key from one keymap to the textview and then from the textview to the
same key of another keymap
* _HandleDeadKey() now ignores modifier keys as otherwise dead keys that
required pressing a modifier (like the tilde on the German keyboard) failed
to highlight the resulting characters
What's still missing is a way to edit the resulting characters for each dead key, but I am not yet sure how to do that in an elegant way

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


# 1e855c376c4f785f926c0c4d4d08c827c05da643 12-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Patch by Fredrik Ekdahl: gcc 4 build fixes (missing headers).
* Added missing header for mountvolume.


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


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

* Made the modifiers sticky when used with the mouse. This greatly improves
changing keymaps this way.


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


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

* Fixed drawing the L-shaped enter key; the clipping was constrained on the
wrong view since I added offscreen drawing.
* Added a description of the keyboard layout language; it's unlikely to
undergo much changes anymore now.
* Added a few comments for stippi :-)


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


# 7e5ffaa2233770c4bc45cfd729689bfe4e1d5051 01-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Now accepts only the first character that is dropped on a key.
* Also, escaped strings (like those from CharacterMap) are now converted
automatically.


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


# 321e8a64648bf0f97ace79be176bf3d5662dbcbe 31-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* Now use a special character for the backspace key.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29823 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


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

* Don't allow dragging modifier keys around until we actually support
changing them.


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


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

* Imported Modifier() and KeyForModifier() from the Keymap class in the
keyboard input server add-on. We should really have a common source for this
somewhere...
* Used that functionality to change the modifiers when using the mouse, too.


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


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

* Works around a race condition/bug/design issue in our layout engine:
sometimes the size isn't set in AttachedToWindow() yet, and the first
FrameResized() comes after the first Draw(). We now relayout in Draw()
in case the size changed since last time.


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


# 16dc221d20428a0c064cfcf67c786d7d93c44d6b 27-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* Now uses an offscreen bitmap for flicker free drawing.
* Only trigger a redraw on B_MODIFIER_CHANGED if something actually changed.


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


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

* Fixed regression; the key labels could be drawn out of the button border.


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


# 681c2e4425073000c01c9c97237d2615d226f401 25-Mar-2009 Stephan Aßmus <superstippi@gmx.de>

The button and menu field draw routines take a background color into account,
which makes the resessed frame blend better with the surroundings. This can
be seen best in Keymap, where a different color is set on some buttons, but
the resessed frame should still be the same across all those buttons.


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


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

* The L-shaped "enter" key can now also be drawn almost right (uses
BControlLook plus some clipping to do its magic).
* Fixed scancode only mode of the keyboard layout view.
* Fixed filter thanks to Rene.


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


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

* Added support for LED status indicators.
* The look isn't perfect yet, but well; improvements welcome.


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


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

* The default drag&drop action is now copy, if you drag with the second mouse
button, you switch the keys.
* Switching the same key with different modifiers held works now.
* The drop target is now reevaluated when a modifier key is pressed, as the
key originating the drag cannot be its target (but only with the same
modifiers pressed).


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


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

* The message filter now does not do anything anymore when the source keymap
matches his own (field now added to the KeyboardLayoutView fake B_KEY_DOWN
messages).
* The default action for keyboard to keyboard drag&drop is to switch the keys
now.
* When a key is overwritten by a drop, the old key is now sent to the text
view, so that it's not lost (if that was a mistake you can now easily revert
it without having to press the "Revert" button and lose all changes).
* Cleanup.


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


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

* Now handles dead keys via the mouse as well.
* Added _InvalidateKey() variant.


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


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

* Added the ability to set a target that will receive fake B_KEY_DOWN
messages generated when pressing the keys.
* The font size is now adapted to match the key size better, maximum size is
the current plain font.
* The keys you drag around now generate a useful B_MIME_DATA message, that other
views can accept as well.
* Implemented support for changing the keymap via drag&drop.
* Added SetFont() method to change the font used by the keys.


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


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

Another work-in-progress commit:
* Started working on dragging keys around.


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


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

* Another work-in-progress commit: added dead key handling, started mouse
interaction, draw symbols differently.


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


# 42176b84a4423efa3f50629e0ed673be491fdb14 23-Mar-2009 Axel Dörfler <axeld@pinc-software.de>

* Work in progress commit of the Keymap rework. Should not disturb the
existing code.


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