3030import java .awt .Graphics ;
3131import java .awt .Graphics2D ;
3232import java .awt .Image ;
33+ import java .awt .datatransfer .Clipboard ;
34+ import java .awt .datatransfer .StringSelection ;
3335import java .awt .event .MouseAdapter ;
3436import java .awt .event .MouseEvent ;
3537import java .awt .font .FontRenderContext ;
3941
4042import javax .swing .*;
4143
44+ import processing .app .Base ;
4245import processing .app .Mode ;
4346import processing .app .Sketch ;
4447import processing .app .contrib .ContributionManager ;
@@ -83,10 +86,14 @@ public class EditorFooter extends Box {
8386 Image gradient ;
8487 Color bgColor ;
8588
89+ Box tabBar ;
90+
8691 JPanel cardPanel ;
8792 CardLayout cardLayout ;
8893 Controller controller ;
8994
95+ JLabel version ;
96+
9097 int updateCount ;
9198
9299
@@ -98,8 +105,33 @@ public EditorFooter(Editor eddie) {
98105 cardPanel = new JPanel (cardLayout );
99106 add (cardPanel );
100107
108+ tabBar = new Box (BoxLayout .X_AXIS );
109+
101110 controller = new Controller ();
102- add (controller );
111+ tabBar .add (controller );
112+
113+ version = new JLabel (Base .getVersionName ());
114+ version .setBorder (BorderFactory .createEmptyBorder (0 , 0 , 0 , MARGIN ));
115+ version .addMouseListener (new MouseAdapter () {
116+ public void mousePressed (MouseEvent e ) {
117+ if (e .getClickCount () == 5 ){
118+ Base .DEBUG = !Base .DEBUG ;
119+ }
120+ var debugInformation = String .join ("\n " ,
121+ "Version: " + Base .getVersionName (),
122+ "Revision: " + Base .getRevision (),
123+ "OS: " + System .getProperty ("os.name" ) + " " + System .getProperty ("os.version" ) + " " + System .getProperty ("os.arch" ),
124+ "Java: " + System .getProperty ("java.version" ) + " " + System .getProperty ("java.vendor" )
125+ );
126+ var stringSelection = new StringSelection (debugInformation );
127+ var clipboard = java .awt .Toolkit .getDefaultToolkit ().getSystemClipboard ();
128+ clipboard .setContents (stringSelection , null );
129+ }
130+ });
131+
132+ tabBar .add (version );
133+
134+ add (tabBar );
103135
104136 updateTheme ();
105137 }
@@ -175,6 +207,15 @@ public void updateTheme() {
175207
176208 // replace colors for the "updates" indicator
177209 controller .updateTheme ();
210+
211+ tabBar .setOpaque (true );
212+ tabBar .setBackground (bgColor );
213+
214+ var updatesTextColor = Theme .getColor ("footer.updates.text.color" );
215+ var withAlpha = new Color (updatesTextColor .getRed (), updatesTextColor .getGreen (), updatesTextColor .getBlue (), 128 );
216+
217+ version .setForeground (withAlpha );
218+ version .setFont (font );
178219 }
179220
180221
0 commit comments