Merge pull request #6551 from facchinm/test_pr6394

Add font size shortcuts (menu, keyboard and mouse)
This commit is contained in:
Martino Facchin 2017-08-01 11:45:04 +02:00 committed by GitHub
commit 91cdf53147
3 changed files with 46 additions and 1 deletions

View File

@ -1843,6 +1843,17 @@ public class Base {
dialog.setVisible(true);
}
/**
* Adjust font size
*/
public void handleFontSizeChange(int change) {
String pieces[] = PApplet.split(PreferencesData.get("editor.font"), ',');
int newSize = Integer.parseInt(pieces[2]) + change;
pieces[2] = String.valueOf(newSize);
PreferencesData.set("editor.font", PApplet.join(pieces, ','));
this.getEditors().forEach(processing.app.Editor::applyPreferences);
}
// XXX: Remove this method and make librariesIndexer non-static
static public LibraryList getLibraries() {
return BaseNoGui.librariesIndexer.getInstalledLibraries();

View File

@ -1375,6 +1375,24 @@ public class Editor extends JFrame implements RunnerListener {
menu.addSeparator();
JMenuItem increaseFontSizeItem = newJMenuItem(tr("Increase Font Size"), '+');
increaseFontSizeItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
base.handleFontSizeChange(1);
}
});
menu.add(increaseFontSizeItem);
JMenuItem decreaseFontSizeItem = newJMenuItem(tr("Decrease Font Size"), '-');
decreaseFontSizeItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
base.handleFontSizeChange(-1);
}
});
menu.add(decreaseFontSizeItem);
menu.addSeparator();
JMenuItem findItem = newJMenuItem(tr("Find..."), 'F');
findItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

View File

@ -30,6 +30,9 @@ import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseWheelListener;
import java.awt.event.MouseWheelEvent;
import java.io.IOException;
import javax.swing.Action;
@ -64,7 +67,7 @@ import processing.app.tools.DiscourseFormat;
/**
* Single tab, editing a single file, in the main window.
*/
public class EditorTab extends JPanel implements SketchFile.TextStorage {
public class EditorTab extends JPanel implements SketchFile.TextStorage, MouseWheelListener {
protected Editor editor;
protected SketchTextArea textarea;
protected RTextScrollPane scrollPane;
@ -106,6 +109,7 @@ public class EditorTab extends JPanel implements SketchFile.TextStorage {
file.setStorage(this);
applyPreferences();
add(scrollPane, BorderLayout.CENTER);
textarea.addMouseWheelListener(this);
}
private RSyntaxDocument createDocument(String contents) {
@ -178,6 +182,18 @@ public class EditorTab extends JPanel implements SketchFile.TextStorage {
return textArea;
}
public void mouseWheelMoved(MouseWheelEvent e) {
if (e.isControlDown()) {
if (e.getWheelRotation() < 0) {
editor.base.handleFontSizeChange(1);
} else {
editor.base.handleFontSizeChange(-1);
}
} else {
e.getComponent().getParent().dispatchEvent(e);
}
}
private void configurePopupMenu(final SketchTextArea textarea){
JPopupMenu menu = textarea.getPopupMenu();