33 const String& keyName,
int keyIndex)
43 :
TRANS(
"Click to change this key-mapping"));
59 m.addItem (
TRANS(
"Change this key-mapping"),
63 button.getComponent()->assignNewKey();
68 m.addItem (
TRANS(
"Remove this key-mapping"),
72 button->owner.getMappings().removeKeyPress (
button->commandID,
100 TRANS(
"Please press a key combination now..."),
109 child->setWantsKeyboardFocus (
false);
120 auto previousCommand =
owner.getMappings().findCommandForKeyPress (
key);
122 if (previousCommand != 0)
124 <<
TRANS(
"Currently assigned to \"CMDN\"")
125 .replace (
"CMDN",
TRANS (
owner.getCommandManager().getNameOfCommand (previousCommand)))
148 button->setNewKey (newKey,
true);
155 auto previousCommand =
owner.getMappings().findCommandForKeyPress (newKey);
157 if (previousCommand == 0 || dontAskUser)
159 owner.getMappings().removeKeyPress (newKey);
169 TRANS(
"Change key-mapping"),
170 TRANS(
"This key is already assigned to the command \"CMDN\"")
171 .replace (
"CMDN",
owner.getCommandManager().getNameOfCommand (previousCommand))
173 +
TRANS(
"Do you want to re-assign it to this new command instead?"),
185 if (
button !=
nullptr &&
button->currentKeyEntryWindow !=
nullptr)
189 button->currentKeyEntryWindow->setVisible (
false);
190 button->setNewKey (
button->currentKeyEntryWindow->lastPress,
false);
193 button->currentKeyEntryWindow.reset();
223 auto keyPresses =
owner.getMappings().getKeyPressesAssignedToCommand (
commandID);
236 b->setEnabled (! isReadOnly);
260 b->setTopRightPosition (
x, 1);
328 for (
auto command :
owner.getCommandManager().getCommandsInCategory (
categoryName))
329 if (
owner.shouldCommandBeIncluded (command))
353 owner.getMappings().addChangeListener (
this);
358 owner.getMappings().removeChangeListener (
this);
369 for (
auto category :
owner.getCommandManager().getCommandCategories())
373 for (
auto command :
owner.getCommandManager().getCommandsInCategory (category))
374 if (
owner.shouldCommandBeIncluded (command))
388 if (
result != 0 && owner !=
nullptr)
394 const bool showResetToDefaultButton)
400 if (showResetToDefaultButton)
407 TRANS(
"Reset to defaults"),
408 TRANS(
"Are you sure you want to reset all the key-mappings to their default state?"),
416 tree.setTitle (
"Key Mappings");
418 tree.setRootItemVisible (
false);
419 tree.setDefaultOpenness (
true);
421 tree.setIndentSize (12);
426 tree.setRootItem (
nullptr);
440 treeItem->changeListenerCallback (
nullptr);
449 const int buttonHeight = 20;
450 h -= buttonHeight + 8;
463 auto* ci =
mappings.getCommandManager().getCommandForID (commandID);
470 auto* ci =
mappings.getCommandManager().getCommandForID (commandID);
477 return key.getTextDescription();
Type jmin(const Type a, const Type b)
Definition MathsFunctions.h:60
static void message(int level, const char *fmt,...)
Definition adplugdb.cpp:120
void addButton(const String &name, int returnValue, const KeyPress &shortcutKey1=KeyPress(), const KeyPress &shortcutKey2=KeyPress())
Definition juce_AlertWindow.cpp:111
static bool JUCE_CALLTYPE showOkCancelBox(MessageBoxIconType iconType, const String &title, const String &message, const String &button1Text, const String &button2Text, Component *associatedComponent, ModalComponentManager::Callback *callback)
Definition juce_AlertWindow.cpp:752
void setMessage(const String &message)
Definition juce_AlertWindow.cpp:86
static constexpr auto NoIcon
Definition juce_AlertWindow.h:479
AlertWindow(const String &title, const String &message, MessageBoxIconType iconType, Component *associatedComponent=nullptr)
Definition juce_AlertWindow.cpp:39
Definition juce_ChangeBroadcaster.h:35
Definition juce_ChangeListener.h:45
Definition juce_Colour.h:38
Definition juce_Component.h:2287
void setInterceptsMouseClicks(bool allowClicksOnThisComponent, bool allowClicksOnChildComponents) noexcept
Definition juce_Component.cpp:1420
int getHeight() const noexcept
Definition juce_Component.h:274
void grabKeyboardFocus()
Definition juce_Component.cpp:2995
int getX() const noexcept
Definition juce_Component.h:259
void addAndMakeVisible(Component *child, int zOrder=-1)
Definition juce_Component.cpp:1554
Component() noexcept
Definition juce_Component.cpp:517
Component * getChildComponent(int index) const noexcept
Definition juce_Component.cpp:1648
void setSize(int newWidth, int newHeight)
Definition juce_Component.cpp:1262
void setColour(int colourID, Colour newColour)
Definition juce_Component.cpp:2242
void setWantsKeyboardFocus(bool wantsFocus) noexcept
Definition juce_Component.cpp:2842
Colour findColour(int colourID, bool inheritFromParent=false) const
Definition juce_Component.cpp:2219
static std::unique_ptr< AccessibilityHandler > createIgnoredAccessibilityHandler(Component &)
Definition juce_Component.cpp:3292
int getWidth() const noexcept
Definition juce_Component.h:271
LookAndFeel & getLookAndFeel() const noexcept
Definition juce_Component.cpp:2173
void addChildComponent(Component *child, int zOrder=-1)
Definition juce_Component.cpp:1548
const Array< Component * > & getChildren() const noexcept
Definition juce_Component.h:685
String getName() const noexcept
Definition juce_Component.h:76
Definition juce_Font.h:42
@ bold
Definition juce_Font.h:51
Definition juce_GraphicsContext.h:45
@ centredLeft
Definition juce_Justification.h:143
Definition juce_KeyMappingEditorComponent.cpp:304
void itemOpennessChanged(bool isNowOpen) override
Definition juce_KeyMappingEditorComponent.cpp:323
String getAccessibilityName() override
Definition juce_KeyMappingEditorComponent.cpp:313
int getItemHeight() const override
Definition juce_KeyMappingEditorComponent.cpp:312
bool mightContainSubItems() override
Definition juce_KeyMappingEditorComponent.cpp:311
void paintItem(Graphics &g, int width, int height) override
Definition juce_KeyMappingEditorComponent.cpp:315
String categoryName
Definition juce_KeyMappingEditorComponent.cpp:340
String getUniqueName() const override
Definition juce_KeyMappingEditorComponent.cpp:310
KeyMappingEditorComponent & owner
Definition juce_KeyMappingEditorComponent.cpp:339
CategoryItem(KeyMappingEditorComponent &kec, const String &name)
Definition juce_KeyMappingEditorComponent.cpp:306
Definition juce_KeyMappingEditorComponent.cpp:96
bool keyStateChanged(bool) override
Definition juce_KeyMappingEditorComponent.cpp:132
bool keyPressed(const KeyPress &key) override
Definition juce_KeyMappingEditorComponent.cpp:115
KeyMappingEditorComponent & owner
Definition juce_KeyMappingEditorComponent.cpp:140
KeyEntryWindow(KeyMappingEditorComponent &kec)
Definition juce_KeyMappingEditorComponent.cpp:98
KeyPress lastPress
Definition juce_KeyMappingEditorComponent.cpp:137
Definition juce_KeyMappingEditorComponent.cpp:214
const CommandID commandID
Definition juce_KeyMappingEditorComponent.cpp:273
OwnedArray< ChangeKeyButton > keyChangeButtons
Definition juce_KeyMappingEditorComponent.cpp:272
KeyMappingEditorComponent & owner
Definition juce_KeyMappingEditorComponent.cpp:271
void resized() override
Definition juce_KeyMappingEditorComponent.cpp:251
void paint(Graphics &g) override
Definition juce_KeyMappingEditorComponent.cpp:241
@ maxNumAssignments
Definition juce_KeyMappingEditorComponent.cpp:275
ItemComponent(KeyMappingEditorComponent &kec, CommandID command)
Definition juce_KeyMappingEditorComponent.cpp:216
void addKeyPressButton(const String &desc, const int index, const bool isReadOnly)
Definition juce_KeyMappingEditorComponent.cpp:231
std::unique_ptr< AccessibilityHandler > createAccessibilityHandler() override
Definition juce_KeyMappingEditorComponent.cpp:266
Definition juce_KeyMappingEditorComponent.cpp:282
String getUniqueName() const override
Definition juce_KeyMappingEditorComponent.cpp:288
std::unique_ptr< Component > createItemComponent() override
Definition juce_KeyMappingEditorComponent.cpp:291
String getAccessibilityName() override
Definition juce_KeyMappingEditorComponent.cpp:292
KeyMappingEditorComponent & owner
Definition juce_KeyMappingEditorComponent.cpp:295
const CommandID commandID
Definition juce_KeyMappingEditorComponent.cpp:296
bool mightContainSubItems() override
Definition juce_KeyMappingEditorComponent.cpp:289
MappingItem(KeyMappingEditorComponent &kec, CommandID command)
Definition juce_KeyMappingEditorComponent.cpp:284
int getItemHeight() const override
Definition juce_KeyMappingEditorComponent.cpp:290
Definition juce_KeyMappingEditorComponent.cpp:348
String getUniqueName() const override
Definition juce_KeyMappingEditorComponent.cpp:362
TopLevelItem(KeyMappingEditorComponent &kec)
Definition juce_KeyMappingEditorComponent.cpp:350
void changeListenerCallback(ChangeBroadcaster *) override
Definition juce_KeyMappingEditorComponent.cpp:364
KeyMappingEditorComponent & owner
Definition juce_KeyMappingEditorComponent.cpp:383
~TopLevelItem() override
Definition juce_KeyMappingEditorComponent.cpp:356
bool mightContainSubItems() override
Definition juce_KeyMappingEditorComponent.cpp:361
Definition juce_KeyMappingEditorComponent.h:39
@ backgroundColourId
Definition juce_KeyMappingEditorComponent.h:106
@ textColourId
Definition juce_KeyMappingEditorComponent.h:107
~KeyMappingEditorComponent() override
Definition juce_KeyMappingEditorComponent.cpp:424
void setColours(Colour mainBackground, Colour textColour)
Definition juce_KeyMappingEditorComponent.cpp:430
virtual bool isCommandReadOnly(CommandID commandID)
Definition juce_KeyMappingEditorComponent.cpp:468
virtual bool shouldCommandBeIncluded(CommandID commandID)
Definition juce_KeyMappingEditorComponent.cpp:461
void parentHierarchyChanged() override
Definition juce_KeyMappingEditorComponent.cpp:438
std::unique_ptr< TopLevelItem > treeItem
Definition juce_KeyMappingEditorComponent.h:127
TreeView tree
Definition juce_KeyMappingEditorComponent.h:119
void resized() override
Definition juce_KeyMappingEditorComponent.cpp:443
KeyPressMappingSet & mappings
Definition juce_KeyMappingEditorComponent.h:118
virtual String getDescriptionForKeyPress(const KeyPress &key)
Definition juce_KeyMappingEditorComponent.cpp:475
KeyPressMappingSet & getMappings() const noexcept
Definition juce_KeyMappingEditorComponent.h:65
TextButton resetButton
Definition juce_KeyMappingEditorComponent.h:120
KeyMappingEditorComponent(KeyPressMappingSet &mappingSet, bool showResetToDefaultButton)
Definition juce_KeyMappingEditorComponent.cpp:393
Definition juce_KeyPress.h:40
bool isValid() const noexcept
Definition juce_KeyPress.h:102
Definition juce_KeyPressMappingSet.h:89
void resetToDefaultMappings()
Definition juce_KeyPressMappingSet.cpp:104
static ModalComponentManager::Callback * forComponent(void(*functionToCall)(int, ComponentType *), ComponentType *component)
Definition juce_ModalComponentManager.h:276
Definition juce_OwnedArray.h:51
Definition juce_String.h:53
@ backgroundColourId
Definition juce_TreeView.h:870
Definition juce_TreeView.h:596
void clearSubItems()
Definition juce_TreeView.cpp:1503
int getNumSubItems() const noexcept
Definition juce_TreeView.cpp:1493
void setLinesDrawnForSubItems(bool shouldDrawLines) noexcept
Definition juce_TreeView.cpp:1988
TreeViewItem()
Definition juce_TreeView.cpp:1472
void addSubItem(TreeViewItem *newItem, int insertPosition=-1)
Definition juce_TreeView.cpp:1525
unsigned * m
Definition inflate.c:1559
int g
Definition inflate.c:1573
register unsigned i
Definition inflate.c:1575
unsigned x[BMAX+1]
Definition inflate.c:1586
static const char * name
Definition pugl.h:1582
static int int height
Definition pugl.h:1594
static int width
Definition pugl.h:1593
#define TRANS(stringLiteral)
Definition juce_LocalisedStrings.h:208
Definition carla_juce.cpp:31
int CommandID
Definition juce_ApplicationCommandID.h:37
constexpr Type jmax(Type a, Type b)
Definition juce_MathsFunctions.h:94
MessageBoxIconType
Definition juce_MessageBoxOptions.h:31
@ WarningIcon
Definition juce_MessageBoxOptions.h:35
@ QuestionIcon
Definition juce_MessageBoxOptions.h:33
Type jlimit(Type lowerLimit, Type upperLimit, Type valueToConstrain) noexcept
Definition juce_MathsFunctions.h:262
static void resetKeyMappingsToDefaultsCallback(int result, KeyMappingEditorComponent *owner)
Definition juce_KeyMappingEditorComponent.cpp:386
@ button
Definition juce_AccessibilityRole.h:38
@ readOnlyInKeyEditor
Definition juce_ApplicationCommandInfo.h:173
@ hiddenFromKeyEditor
Definition juce_ApplicationCommandInfo.h:168
ZCONST char * key
Definition crypt.c:587
uch h[RAND_HEAD_LEN]
Definition crypt.c:459
int result
Definition process.c:1455
_WDL_CSTRING_PREFIX void INT_PTR count
Definition wdlcstring.h:263