make editor scroll bar into a generic class for themes

This commit is contained in:
Ben Fry
2022-04-23 07:38:44 -04:00
parent a4c1d94646
commit d9ff3024f4
2 changed files with 27 additions and 2 deletions

View File

@@ -28,6 +28,7 @@ import java.util.Map;
import processing.app.ui.Editor;
import processing.app.ui.Theme;
import processing.app.ui.ThemeScrollBarUI;
/**
@@ -67,6 +68,16 @@ public class PdeTextArea extends JEditTextArea {
}
static class PdeScrollBarUI extends ThemeScrollBarUI {
PdeScrollBarUI() {
super("editor.scrollbar.color",
"editor.scrollbar.thumb.pressed.color",
"editor.scrollbar.thumb.rollover.color",
"editor.scrollbar.thumb.enabled.color");
}
}
@Override
protected TextAreaPainter createPainter(final TextAreaDefaults defaults) {
return new PdeTextAreaPainter(this, defaults);

View File

@@ -21,7 +21,7 @@
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
package processing.app.syntax;
package processing.app.ui;
import processing.app.ui.Theme;
@@ -34,15 +34,29 @@ import java.awt.*;
* Custom scroll bar style for the editor.
* Originally based on https://stackoverflow.com/a/53662678
*/
public class PdeScrollBarUI extends BasicScrollBarUI {
public class ThemeScrollBarUI extends BasicScrollBarUI {
private final Dimension none = new Dimension();
private String backgroundAttr;
private String pressedAttr;
private String rolloverAttr;
private String enabledAttr;
private Color backgroundColor;
private Color pressedColor;
private Color rolloverColor;
private Color enabledColor;
public ThemeScrollBarUI(String backgroundAttr, String pressedAttr,
String rolloverAttr, String enabledAttr) {
this.backgroundAttr = backgroundAttr;
this.pressedAttr = pressedAttr;
this.rolloverAttr = rolloverAttr;
this.enabledAttr = enabledAttr;
}
public void updateTheme() {
backgroundColor = Theme.getColor("editor.scrollbar.color");
pressedColor = Theme.getColor("editor.scrollbar.thumb.pressed.color");