Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
7fecf27
Remove ContributionManager and ContributionPane UI files
Stefterv Oct 14, 2025
838ea14
Enhance Preferences reactivity and test coverage
Stefterv Oct 14, 2025
d459fd8
Merge branch 'clean-contributions-prototype' into preferenceskt-update
Stefterv Oct 14, 2025
e1e1e3a
Small bugfix for removed function
Stefterv Oct 14, 2025
20fa9be
Add compose ui test to the deps
Stefterv Oct 14, 2025
4546a38
Refactor Locale class and add LocaleProvider test
Stefterv Oct 15, 2025
643ec03
Make setLocale parameter nullable in Locale class
Stefterv Oct 15, 2025
06e3094
Add compose ui test to the deps
Stefterv Oct 14, 2025
d42fb2f
Update locale change method in test
Stefterv Oct 15, 2025
58c746b
Add PDE window utilities for Compose and Swing
Stefterv Oct 15, 2025
db69773
Refactor beta welcome window handling
Stefterv Oct 15, 2025
d3681f3
Remove ContributionManager and ContributionPane UI files (#1276)
Stefterv Oct 16, 2025
bf4d163
Refactor Locale class and add LocaleProvider test (#1283)
Stefterv Oct 17, 2025
77eba30
Theming (#1298)
Stefterv Oct 22, 2025
4686345
Merge branch 'welcome-screen' into compose-windows
Stefterv Oct 22, 2025
3e04faa
Merge pull request #1284 from Stefterv/compose-windows
Stefterv Oct 22, 2025
830ecea
Switch from ProcessingTheme to PDETheme in window UI
Stefterv Oct 22, 2025
1c26bab
Refactor preferences to Jetpack Compose UI
Stefterv Oct 23, 2025
8fe0585
Remove obsolete TODO for onClose callback
Stefterv Oct 23, 2025
5ae8b84
Refactor theme system to Material 3 color schemes
Stefterv Oct 23, 2025
ca29800
Add PDEWelcome Composable UI screen
Stefterv Oct 23, 2025
3fd4ea9
Merge branch 'welcome-screen' into preferenceskt-update
Stefterv Oct 27, 2025
40a1188
Merge branch 'preferenceskt-update' into colors
Stefterv Oct 27, 2025
2fc5682
Initial layout
Stefterv Oct 27, 2025
6037275
Revamp welcome screen UI and add social icons
Stefterv Oct 27, 2025
33ad602
Add example previews to welcome screen
Stefterv Oct 27, 2025
20aac81
Add hover-activated play button to example previews
Stefterv Oct 27, 2025
e036cdf
Localize welcome screen UI strings
Stefterv Oct 27, 2025
d8f9d75
Add language selector and UI improvements to welcome screen
Stefterv Oct 28, 2025
97ab23e
Refactor example listing and randomize welcome sketches
Stefterv Oct 28, 2025
0ee8929
Refactor example handling to use Sketch objects
Stefterv Oct 28, 2025
8e32abf
Add vertical scrollbar to welcome screen examples
Stefterv Oct 28, 2025
2769a07
Add rounded corners to buttons in PDEWelcome
Stefterv Oct 28, 2025
3b5ea1d
Refactor PDEWelcome UI and add Sketch card composable
Stefterv Oct 28, 2025
bef00f9
Add unique window handling to prevent duplicates
Stefterv Oct 28, 2025
07e05be
Refactor dialog handling and improve AlertDialog UI
Stefterv Oct 28, 2025
3bdd00e
Set application window icon using Toolkit.setIcon
Stefterv Oct 28, 2025
65173d4
Simplify imports and update scrollbar colors in Theme.kt
Stefterv Oct 29, 2025
0ce1687
Preferences screen
Stefterv Nov 3, 2025
f0b408a
Replace Row with Column in sketch naming options
Stefterv Nov 5, 2025
373321e
Enhance preferences UI and add memory options
Stefterv Nov 6, 2025
891aa80
Fixed a color issue
Stefterv Nov 6, 2025
6ee6817
Improve preferences UI layout and window size
Stefterv Nov 6, 2025
af4228a
Add theme selection and UI improvements to preferences
Stefterv Nov 6, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 11 additions & 5 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import org.gradle.internal.jvm.Jvm
import org.gradle.internal.os.OperatingSystem
import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
import org.jetbrains.compose.ExperimentalComposeLibrary
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
import org.jetbrains.compose.desktop.application.tasks.AbstractJPackageTask
import org.jetbrains.compose.internal.de.undercouch.gradle.tasks.download.Download
Expand All @@ -16,6 +17,7 @@ plugins{

alias(libs.plugins.compose.compiler)
alias(libs.plugins.jetbrainsCompose)

alias(libs.plugins.serialization)
alias(libs.plugins.download)
}
Expand Down Expand Up @@ -59,7 +61,7 @@ compose.desktop {
).map { "-D${it.first}=${it.second}" }.toTypedArray())

nativeDistributions{
modules("jdk.jdi", "java.compiler", "jdk.accessibility", "java.management.rmi", "java.scripting", "jdk.httpserver")
modules("jdk.jdi", "java.compiler", "jdk.accessibility", "jdk.zipfs", "java.management.rmi", "java.scripting", "jdk.httpserver")
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
packageName = "Processing"

Expand Down Expand Up @@ -107,25 +109,29 @@ dependencies {

implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material)
implementation(compose.ui)
implementation(compose.components.resources)
implementation(compose.components.uiToolingPreview)
implementation(compose.materialIconsExtended)

implementation(compose.desktop.currentOs)
implementation(libs.material3)

implementation(libs.compottie)
implementation(libs.kaml)
implementation(libs.markdown)
implementation(libs.markdownJVM)

implementation(libs.clikt)
implementation(libs.kotlinxSerializationJson)

@OptIn(ExperimentalComposeLibrary::class)
testImplementation(compose.uiTest)
testImplementation(kotlin("test"))
testImplementation(libs.mockitoKotlin)
testImplementation(libs.junitJupiter)
testImplementation(libs.junitJupiterParams)

implementation(libs.clikt)
implementation(libs.kotlinxSerializationJson)

}

tasks.test {
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/resources/icons/Discord.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 10 additions & 0 deletions app/src/main/resources/icons/GitHub.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions app/src/main/resources/icons/Instagram.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
43 changes: 18 additions & 25 deletions app/src/processing/app/Base.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,27 +23,29 @@

package processing.app;

import java.awt.*;
import java.awt.event.ActionListener;
import java.io.*;
import java.lang.reflect.InvocationTargetException;
import java.util.*;
import java.util.List;
import java.util.Map.Entry;

import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;

import com.formdev.flatlaf.FlatDarkLaf;
import com.formdev.flatlaf.FlatLaf;
import com.formdev.flatlaf.FlatLightLaf;
import processing.app.contrib.*;
import processing.app.tools.Tool;
import processing.app.ui.*;
import processing.app.ui.Toolkit;
import processing.core.*;
import processing.core.PApplet;
import processing.data.StringList;

import javax.swing.*;
import javax.swing.tree.DefaultMutableTreeNode;
import java.awt.*;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.util.*;
import java.util.List;
import java.util.Map.Entry;

/**
* The base class for the main processing application.
* Primary role of this class is for platform identification and
Expand Down Expand Up @@ -374,13 +376,7 @@ static private void handleWelcomeScreen(Base base) {
// Needs to be shown after the first editor window opens, so that it
// shows up on top, and doesn't prevent an editor window from opening.
if (Preferences.getBoolean("welcome.four.show")) {
try {
new Welcome(base);
} catch (IOException e) {
Messages.showTrace("Unwelcoming",
"Please report this error to\n" +
"https://github.com/processing/processing4/issues", e, false);
}
PDEWelcomeKt.showWelcomeScreen(base);
}
}

Expand Down Expand Up @@ -608,7 +604,7 @@ public JMenu initDefaultFileMenu() {
defaultFileMenu.add(item);

item = Toolkit.newJMenuItemShift(Language.text("menu.file.examples"), 'O');
item.addActionListener(e -> thinkDifferentExamples());
item.addActionListener(e -> showExamplesFrame());
defaultFileMenu.add(item);

return defaultFileMenu;
Expand Down Expand Up @@ -1884,7 +1880,7 @@ public void handleRestart() {
// }


public void thinkDifferentExamples() {
public void showExamplesFrame() {
nextMode.showExamplesFrame();
}

Expand Down Expand Up @@ -2190,10 +2186,7 @@ static private Mode findSketchMode(File folder, List<Mode> modeList) {
* Show the Preferences window.
*/
public void handlePrefs() {
if (preferencesFrame == null) {
preferencesFrame = new PreferencesFrame(this);
}
preferencesFrame.showFrame();
PDEPreferencesKt.show();
}


Expand Down
Loading