diff --git a/app/src/main/resources/about-processing.svg b/app/src/main/resources/about-processing.svg
new file mode 100644
index 000000000..11abb1078
--- /dev/null
+++ b/app/src/main/resources/about-processing.svg
@@ -0,0 +1,74 @@
+
diff --git a/app/src/processing/app/syntax/JEditTextArea.java b/app/src/processing/app/syntax/JEditTextArea.java
index 566119e3d..b3c4d18a8 100644
--- a/app/src/processing/app/syntax/JEditTextArea.java
+++ b/app/src/processing/app/syntax/JEditTextArea.java
@@ -399,6 +399,7 @@ public final void setElectricScroll(int electricScroll) {
public void updateScrollBars() {
if (vertical != null && visibleLines != 0) {
vertical.setValues(firstLine,visibleLines,0,getLineCount());
+ vertical.setVisible(visibleLines < getLineCount());
vertical.setUnitIncrement(2);
vertical.setBlockIncrement(visibleLines);
}
@@ -424,6 +425,7 @@ public void updateScrollBars() {
// https://github.com/processing/processing/issues/319
// https://github.com/processing/processing/issues/355
//setValues(int newValue, int newExtent, int newMin, int newMax)
+ horizontal.setVisible(painterWidth < width);
if (horizontalOffset < 0) {
horizontal.setValues(-horizontalOffset, painterWidth, -leftHandGutter, width);
} else {
diff --git a/app/src/processing/app/ui/Editor.java b/app/src/processing/app/ui/Editor.java
index c3dd0202f..fc7fbb0b3 100644
--- a/app/src/processing/app/ui/Editor.java
+++ b/app/src/processing/app/ui/Editor.java
@@ -2255,7 +2255,7 @@ protected void handleOpenInternal(String path) throws EditorException {
* something like "sketch_070752a - Processing 0126"
*/
public void updateTitle() {
- setTitle(sketch.getName() + " | Processing " + Base.getVersionName());
+ setTitle(sketch.getName());
if (!sketch.isUntitled()) {
// Set current file for macOS so that cmd-click in title bar works.
diff --git a/app/src/processing/app/ui/EditorFooter.java b/app/src/processing/app/ui/EditorFooter.java
index 855e97d38..276b78364 100644
--- a/app/src/processing/app/ui/EditorFooter.java
+++ b/app/src/processing/app/ui/EditorFooter.java
@@ -30,6 +30,8 @@
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.StringSelection;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.font.FontRenderContext;
@@ -39,6 +41,7 @@
import javax.swing.*;
+import processing.app.Base;
import processing.app.Mode;
import processing.app.Sketch;
import processing.app.contrib.ContributionManager;
@@ -83,10 +86,14 @@ public class EditorFooter extends Box {
Image gradient;
Color bgColor;
+ Box tabBar;
+
JPanel cardPanel;
CardLayout cardLayout;
Controller controller;
+ JLabel version;
+
int updateCount;
@@ -98,8 +105,33 @@ public EditorFooter(Editor eddie) {
cardPanel = new JPanel(cardLayout);
add(cardPanel);
+ tabBar = new Box(BoxLayout.X_AXIS);
+
controller = new Controller();
- add(controller);
+ tabBar.add(controller);
+
+ version = new JLabel(Base.getVersionName());
+ version.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, Editor.RIGHT_GUTTER));
+ version.addMouseListener(new MouseAdapter() {
+ public void mousePressed(MouseEvent e) {
+ if(e.getClickCount() == 5){
+ Base.DEBUG = !Base.DEBUG;
+ }
+ var debugInformation = String.join("\n",
+ "Version: " + Base.getVersionName(),
+ "Revision: " + Base.getRevision(),
+ "OS: " + System.getProperty("os.name") + " " + System.getProperty("os.version") + " " + System.getProperty("os.arch"),
+ "Java: " + System.getProperty("java.version") + " " + System.getProperty("java.vendor")
+ );
+ var stringSelection = new StringSelection(debugInformation);
+ var clipboard = java.awt.Toolkit.getDefaultToolkit().getSystemClipboard();
+ clipboard.setContents(stringSelection, null);
+ }
+ });
+
+ tabBar.add(version);
+
+ add(tabBar);
updateTheme();
}
@@ -175,6 +207,15 @@ public void updateTheme() {
// replace colors for the "updates" indicator
controller.updateTheme();
+
+ tabBar.setOpaque(true);
+ tabBar.setBackground(bgColor);
+
+ var updatesTextColor = Theme.getColor("footer.updates.text.color");
+ var withAlpha = new Color(updatesTextColor.getRed(), updatesTextColor.getGreen(), updatesTextColor.getBlue(), 128);
+
+ version.setForeground(withAlpha);
+ version.setFont(font);
}
diff --git a/app/src/processing/app/ui/Start.kt b/app/src/processing/app/ui/Start.kt
index 4fd9fb4c9..7de371eec 100644
--- a/app/src/processing/app/ui/Start.kt
+++ b/app/src/processing/app/ui/Start.kt
@@ -12,15 +12,12 @@ import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
-import androidx.compose.ui.graphics.toComposeImageBitmap
-import androidx.compose.ui.unit.DpSize
+import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.*
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import processing.app.Base
-import processing.app.Platform
-import javax.imageio.ImageIO
/**
* Show a splash screen window. A rewrite of Splash.java
@@ -29,8 +26,6 @@ class Start {
companion object {
@JvmStatic
fun main(args: Array) {
- val splash = Platform.getContentFile("lib/about-processing.png")
- val image = ImageIO.read(splash).toComposeImageBitmap()
val duration = 200
val timeMargin = 50
@@ -44,7 +39,8 @@ class Start {
resizable = false,
state = rememberWindowState(
position = WindowPosition(Alignment.Center),
- size = DpSize(image.width.dp / 2 , image.height.dp / 2)
+ width = 578.dp,
+ height = 665.dp
)
) {
var visible by remember { mutableStateOf(false) }
@@ -81,7 +77,7 @@ class Start {
)
) {
Image(
- bitmap = image,
+ painter = painterResource("about-processing.svg"),
contentDescription = "About",
modifier = Modifier
.fillMaxSize()
diff --git a/build/shared/lib/about-processing.png b/build/shared/lib/about-processing.png
deleted file mode 100644
index 056354154..000000000
Binary files a/build/shared/lib/about-processing.png and /dev/null differ