Skip to content

Commit

Permalink
WIP Accessibility
Browse files Browse the repository at this point in the history
  • Loading branch information
asb2m10 committed Aug 11, 2024
1 parent 28bc0be commit 325d43b
Show file tree
Hide file tree
Showing 13 changed files with 50 additions and 11 deletions.
20 changes: 15 additions & 5 deletions Source/CartManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -121,11 +121,11 @@ CartManager::CartManager(DexedAudioProcessorEditor *editor) : Component("CartMan
mainWindow = editor;
cartDir = DexedAudioProcessor::dexedCartDir;

activeCart.reset(new ProgramListBox("activepgm", 8));
activeCart.reset(new ProgramListBox("Active Programs Selector", 8));
addAndMakeVisible(activeCart.get());
activeCart->addListener(this);

browserCart.reset(new ProgramListBox("browserpgm", 2));
browserCart.reset(new ProgramListBox("Browser Programs Selector", 2));
addAndMakeVisible(browserCart.get());
browserCart->addListener(this);

Expand All @@ -140,6 +140,7 @@ CartManager::CartManager(DexedAudioProcessorEditor *editor) : Component("CartMan
cartBrowser->addKeyListener(this);
addAndMakeVisible(cartBrowser.get());

cartBrowser->setTitle("Cartridge file browser");
cartBrowser->setDragAndDropDescription("Sysex Browser");
cartBrowser->addListener(this);

Expand Down Expand Up @@ -234,8 +235,7 @@ void CartManager::programSelected(ProgramListBox *source, int pos) {

void CartManager::buttonClicked(juce::Button *buttonThatWasClicked) {
if ( buttonThatWasClicked == closeButton.get() ) {
mainWindow->startTimer(100);
getParentComponent()->setVisible(false);
hideCartridgeManager();
return;
}

Expand Down Expand Up @@ -411,15 +411,25 @@ void CartManager::initialFocus() {
cartBrowser->grabKeyboardFocus();
}

void CartManager::hideCartridgeManager() {
mainWindow->startTimer(100);
getParentComponent()->setVisible(false);
}

bool CartManager::keyPressed(const KeyPress& key, Component* originatingComponent) {
if ( key.getKeyCode() == 13 ) {
if ( key.getKeyCode() == KeyPress::returnKey ) {
File file = cartBrowser->getSelectedFile();
if ( file.isDirectory() )
return true;
mainWindow->loadCart(file);
activeCart->setCartridge(mainWindow->processor->currentCart);
return true;
}
if ( key.getKeyCode() == KeyPress::escapeKey ) {
hideCartridgeManager();
return true;
}

return false;
}

Expand Down
1 change: 1 addition & 0 deletions Source/CartManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ class CartManager : public Component, public Button::Listener, public DragAndDr
virtual bool keyPressed(const KeyPress& key, Component* originatingComponent) override;

void initialFocus();
void hideCartridgeManager();

std::unique_ptr<ComponentTraverser> createFocusTraverser() override;
};
Expand Down
4 changes: 4 additions & 0 deletions Source/OperatorEditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,10 @@ OperatorEditor::OperatorEditor ()

background = lookAndFeel->imageOperator;

opSwitch->setTitle("Operator switch");
kbdLeftCurve->setTitle("Keyboard Left Curve");
kbdRightCurve->setTitle("Keyboard Right Curve");

//[/Constructor]
}

Expand Down
4 changes: 4 additions & 0 deletions Source/PluginEditor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,10 @@ void DexedAudioProcessorEditor::cartShow() {
cartManager.initialFocus();
}

std::unique_ptr<ComponentTraverser> DexedAudioProcessorEditor::createFocusTraverser() {
return std::make_unique<FocusTraverser>();
}

void DexedAudioProcessorEditor::loadCart(File file) {
Cartridge cart;

Expand Down
3 changes: 2 additions & 1 deletion Source/PluginEditor.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ class DexedAudioProcessorEditor : public AudioProcessorEditor, public ComboBox:

virtual bool isInterestedInFileDrag (const StringArray &files) override;
virtual void filesDropped (const StringArray &files, int x, int y ) override;

std::unique_ptr<ComponentTraverser> createFocusTraverser() override;

static const int WINDOW_SIZE_X = 866;
static const int WINDOW_SIZE_Y = 674;
};
Expand Down
3 changes: 3 additions & 0 deletions Source/PluginParam.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@

#include "../JuceLibraryCode/JuceHeader.h"

#include <juce_gui_basics/detail/juce_ButtonAccessibilityHandler.h>
#include <juce_gui_basics/juce_gui_basics.h>

class DexedAudioProcessor;

class Ctrl : public Slider::Listener, public Button::Listener, public ComboBox::Listener, public MouseListener {
Expand Down
1 change: 1 addition & 0 deletions Source/ProgramListBox.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ ProgramListBox::ProgramListBox(const String name, int numCols) : Component(name)
dragCandidate = -1;
readOnly = false;
programNames.clear();
setTitle(name);
setWantsKeyboardFocus(true);
addKeyListener(this);
}
Expand Down
15 changes: 15 additions & 0 deletions Source/ProgramListBox.h
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,21 @@ class ProgramListBox : public Component, public DragAndDropTarget, public KeyLis
void itemDropped(const SourceDetails& dragSourceDetails) override;

bool keyPressed (const KeyPress& key, Component* originatingComponent) override;

struct ProgramListBoxAH : public juce::AccessibilityHandler {
explicit ProgramListBoxAH(ProgramListBox *s): od(s), juce::AccessibilityHandler(*s, juce::AccessibilityRole::table,
juce::AccessibilityActions().addAction(juce::AccessibilityActionType::focus,
[this]() { })) {
}

ProgramListBox *od;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(ProgramListBoxAH);
};


std::unique_ptr< AccessibilityHandler > createAccessibilityHandler(ProgramListBox *programListBox) {
return std::make_unique<ProgramListBoxAH>(programListBox);
}
};


Expand Down
2 changes: 1 addition & 1 deletion libs/JUCE
Submodule JUCE updated 1028 files
2 changes: 1 addition & 1 deletion libs/MTS-ESP
2 changes: 1 addition & 1 deletion libs/vst3sdk

0 comments on commit 325d43b

Please sign in to comment.