diff --git a/app/src/processing/app/contrib/ContributionTab.java b/app/src/processing/app/contrib/ContributionTab.java index 99c66d089..7a8466c83 100644 --- a/app/src/processing/app/contrib/ContributionTab.java +++ b/app/src/processing/app/contrib/ContributionTab.java @@ -3,7 +3,7 @@ /* Part of the Processing project - http://processing.org - Copyright (c) 2013 The Processing Foundation + Copyright (c) 2012-15 The Processing Foundation Copyright (c) 2011-12 Ben Fry and Casey Reas This program is free software; you can redistribute it and/or modify @@ -43,6 +43,7 @@ public class ContributionTab { ContributionType contributionType; ContributionManagerDialog contributionManagerDialog; + JPanel panel; String title; ContributionFilter filter; @@ -68,7 +69,10 @@ public class ContributionTab { JProgressBar progressBar; - public ContributionTab(ContributionType type,ContributionManagerDialog contributionManagerDialog) { + public ContributionTab(ContributionType type, ContributionManagerDialog contributionManagerDialog) { + this.contributionType = type; + this.contributionManagerDialog = contributionManagerDialog; + if (type == ContributionType.MODE) { title = Language.text("contrib.manager_title.mode"); } else if (type == ContributionType.TOOL) { @@ -80,8 +84,6 @@ public class ContributionTab { } filter = type.createFilter(); - this.contributionType = type; - this.contributionManagerDialog = contributionManagerDialog; contribListing = ContributionListing.getInstance(); statusPanel = new StatusPanel(650,this); contributionListPanel = new ContributionListPanel(this, filter); @@ -207,7 +209,7 @@ public class ContributionTab { } - void buildErrorPanel(){ + void buildErrorPanel() { errorPanel = new JPanel(); GroupLayout layout = new GroupLayout(errorPanel); layout.setAutoCreateGaps(true); @@ -342,6 +344,7 @@ public class ContributionTab { } } + protected void setFilterText(String filter) { if (filter == null || filter.isEmpty()) { filterField.setText(""); @@ -359,7 +362,6 @@ public class ContributionTab { JLabel filterLabel; public FilterField () { - super(""); filterLabel = new JLabel("Filter"); @@ -367,9 +369,12 @@ public class ContributionTab { filterLabel.setOpaque(false); setFont(Toolkit.getSansFont(14, Font.PLAIN)); - searchIcon = Toolkit.getLibIcon("manager/search.png"); + //searchIcon = Toolkit.getLibIcon("manager/search.png"); + searchIcon = Toolkit.getLibIconX("manager/search"); + filterLabel.setIcon(searchIcon); + //searchIcon = new ImageIcon(java.awt.Toolkit.getDefaultToolkit().getImage("NSImage://NSComputerTemplate")); setOpaque(false); - setBorder(BorderFactory.createMatteBorder(0, 33, 0, 0, searchIcon)); + //setBorder(BorderFactory.createMatteBorder(0, 33, 0, 0, searchIcon)); GroupLayout fl = new GroupLayout(this); setLayout(fl); @@ -386,13 +391,13 @@ public class ContributionTab { addFocusListener(new FocusListener() { public void focusLost(FocusEvent focusEvent) { if (getText().isEmpty()) { - setBorder(BorderFactory.createMatteBorder(0, 33, 0, 0, searchIcon)); +// setBorder(BorderFactory.createMatteBorder(0, 33, 0, 0, searchIcon)); filterLabel.setVisible(true); } } public void focusGained(FocusEvent focusEvent) { - setBorder(BorderFactory.createEmptyBorder(0, 3, 0, 0)); +// setBorder(BorderFactory.createEmptyBorder(0, 3, 0, 0)); filterLabel.setVisible(false); } }); diff --git a/app/src/processing/app/ui/Toolkit.java b/app/src/processing/app/ui/Toolkit.java index 4b72e64cd..10b4ae17a 100644 --- a/app/src/processing/app/ui/Toolkit.java +++ b/app/src/processing/app/ui/Toolkit.java @@ -43,6 +43,7 @@ import java.awt.font.FontRenderContext; import java.awt.font.TextLayout; import java.awt.geom.AffineTransform; import java.awt.geom.GeneralPath; +import java.awt.image.ImageObserver; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; @@ -482,6 +483,40 @@ public class Toolkit { } + static public ImageIcon getLibIconX(String base) { + final int scale = Toolkit.highResDisplay() ? 2 : 1; + String filename = base + "-" + scale + "x.png"; + File file = Platform.getContentFile("lib/" + filename); + if (!file.exists()) { +// System.err.println("does not exist: " + file); + return null; + } +// ImageIcon icon = new ImageIcon(file.getAbsolutePath()); +// ImageIcon outgoing = new ImageIcon(icon.getImage()) { + ImageIcon outgoing = new ImageIcon(file.getAbsolutePath()) { + @Override + public int getIconWidth() { + return super.getIconWidth() / scale; + } + + @Override + public int getIconHeight() { + return super.getIconHeight() / scale; + } + + @Override + public synchronized void paintIcon(Component c, Graphics g, int x, int y) { + ImageObserver imageObserver = getImageObserver(); + if (imageObserver == null) { + imageObserver = c; + } + g.drawImage(getImage(), x, y, getIconWidth(), getIconHeight(), imageObserver); + } + }; + return outgoing; + } + + static List iconImages; diff --git a/core/todo.txt b/core/todo.txt index b9c0e164c..b6dad61f1 100644 --- a/core/todo.txt +++ b/core/todo.txt @@ -9,9 +9,18 @@ X Make the PApplet regex cache LRU X https://github.com/processing/processing/pull/3815 andres +X Cannot re-enable stroke or fill of a PShape with P2D +X https://github.com/processing/processing/issues/3808 +X setResizable broke with oscilating behavior in 3.0b6 +X https://github.com/processing/processing/issues/3825 +X https://github.com/processing/processing/commit/42c0150da0f400637de916db1f94a687a7bc4288 X surface.setLocation() causing a freeze on Windows X https://github.com/processing/processing/commit/4c0f9234c0a48f62363233cafc9c9951ee351d3e +_ selectInput/Output() is behind the drawing window (Windows) +_ https://github.com/processing/processing/issues/3775 +_ fixed has been added, test on Windows + 3.0 final _ P2D and P3D windows behave strangely when larger than the screen size @@ -36,8 +45,6 @@ _ update wiki/docs to say "don't override sketchXxxx() methods" _ SVG only exports last frame _ possibly because Java2D is disposing the Graphics2D in between? _ https://github.com/processing/processing/issues/3753 -_ selectInput/Output() is behind the drawing window (Windows) -_ https://github.com/processing/processing/issues/3775 javafx _ do we really need setTextFont/Size when we already have Impl? diff --git a/todo.txt b/todo.txt index 8977b7927..a91859646 100644 --- a/todo.txt +++ b/todo.txt @@ -36,6 +36,8 @@ X https://github.com/processing/processing/issues/3806 X https://github.com/processing/processing/pull/3817 X CM list should be sortable by status and author name X https://github.com/processing/processing/issues/3608 +_ All contributions listed after install button is clicked +_ https://github.com/processing/processing/issues/3826 jakub X Make preprocessor scope-aware @@ -150,6 +152,8 @@ _ https://github.com/processing/processing/issues/136 manager +_ ArrayIndexOutOfBoundsException freak out when clicking the header line +_ think this was on name, with libraries, but not sure _ needs a frame title _ CM selected tabs are too tall _ https://github.com/processing/processing/issues/3598