mirror of
https://github.com/JFormDesigner/FlatLaf.git
synced 2026-02-12 06:57:13 -06:00
Compare commits
41 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8f60755f02 | ||
|
|
44c455419b | ||
|
|
129bc9b3ae | ||
|
|
08ba7dd065 | ||
|
|
e9cb85127a | ||
|
|
c9c703fe98 | ||
|
|
0141dfbea2 | ||
|
|
fb7dafbc39 | ||
|
|
0660f9a511 | ||
|
|
a39ae5a8c5 | ||
|
|
03e22e3dbf | ||
|
|
d5e9fd0e5c | ||
|
|
141138ebea | ||
|
|
9026efeb26 | ||
|
|
2ab023beb0 | ||
|
|
8e471fd720 | ||
|
|
13cbbd8bc1 | ||
|
|
b08ccc9767 | ||
|
|
801a7023a4 | ||
|
|
dd06b554da | ||
|
|
23f0504b30 | ||
|
|
262d172cde | ||
|
|
be81cb7876 | ||
|
|
aaf9bd33cb | ||
|
|
7381e2141f | ||
|
|
3923d941c1 | ||
|
|
d134c33499 | ||
|
|
a2b615d4a7 | ||
|
|
37ecd9bd4f | ||
|
|
2e1acb7871 | ||
|
|
2250185487 | ||
|
|
97a1bf90a4 | ||
|
|
73cb63c9f9 | ||
|
|
f61f6b6006 | ||
|
|
7d3ffbc45a | ||
|
|
93ac6fa88a | ||
|
|
a8f659f2ac | ||
|
|
a878ebc368 | ||
|
|
8ee6588d46 | ||
|
|
7c25f087fb | ||
|
|
d0b0f098d9 |
34
CHANGELOG.md
34
CHANGELOG.md
@@ -1,6 +1,40 @@
|
|||||||
FlatLaf Change Log
|
FlatLaf Change Log
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
## 0.33
|
||||||
|
|
||||||
|
- Improved creation of disabled grayscale icons used in disabled buttons, labels
|
||||||
|
and tabs. They now have more contrast and are lighter in light themes and
|
||||||
|
darker in dark themes. (issue #70)
|
||||||
|
- IntelliJ Themes: Fixed ComboBox size and Spinner border in all Material UI
|
||||||
|
Lite themes and limit tree row height in all Material UI Lite themes and some
|
||||||
|
other themes.
|
||||||
|
- IntelliJ Themes: Material UI Lite themes did not work when using
|
||||||
|
[IntelliJ Themes Pack](flatlaf-intellij-themes) addon. (PR #88, issue #89)
|
||||||
|
- IntelliJ Themes: Added Java 9 module descriptor to
|
||||||
|
`flatlaf-intellij-themes-<version>.jar`.
|
||||||
|
|
||||||
|
|
||||||
|
## 0.32
|
||||||
|
|
||||||
|
- New [IntelliJ Themes Pack](flatlaf-intellij-themes) addon bundles many popular
|
||||||
|
open-source 3rd party themes from JetBrains Plugins Repository into a JAR and
|
||||||
|
provides Java classes to use them.
|
||||||
|
- IntelliJ Themes: Fixed button and toggle button colors. (issue #86)
|
||||||
|
- Updated IntelliJ Themes in demo to the latest versions.
|
||||||
|
- ToggleButton: Compute selected background color based on current component
|
||||||
|
background. (issue #32)
|
||||||
|
|
||||||
|
|
||||||
|
## 0.31
|
||||||
|
|
||||||
|
- Focus indication border (or background) no longer hidden when temporary
|
||||||
|
loosing focus (e.g. showing a popup menu).
|
||||||
|
- List, Table and Tree: Item selection color of focused components no longer
|
||||||
|
change from blue to gray when temporary loosing focus (e.g. showing a popup
|
||||||
|
menu).
|
||||||
|
|
||||||
|
|
||||||
## 0.30
|
## 0.30
|
||||||
|
|
||||||
- Windows: Fixed rendering of Unicode characters. Previously not all Unicode
|
- Windows: Fixed rendering of Unicode characters. Previously not all Unicode
|
||||||
|
|||||||
12
README.md
12
README.md
@@ -19,7 +19,8 @@ IntelliJ IDEA 2019.2+ and uses almost the same colors and icons.
|
|||||||
IntelliJ Platform Themes
|
IntelliJ Platform Themes
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
FlatLaf can use 3rd party themes created for IntelliJ Platform:
|
FlatLaf can use 3rd party themes created for IntelliJ Platform (see
|
||||||
|
[IntelliJ Themes Pack](flatlaf-intellij-themes)):
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -70,6 +71,7 @@ Addons
|
|||||||
|
|
||||||
- [SwingX](flatlaf-swingx)
|
- [SwingX](flatlaf-swingx)
|
||||||
- [JIDE Common Layer](flatlaf-jide-oss)
|
- [JIDE Common Layer](flatlaf-jide-oss)
|
||||||
|
- [IntelliJ Themes Pack](flatlaf-intellij-themes)
|
||||||
|
|
||||||
|
|
||||||
Projects using FlatLaf
|
Projects using FlatLaf
|
||||||
@@ -79,7 +81,13 @@ Projects using FlatLaf
|
|||||||
- [jclasslib bytecode viewer](https://github.com/ingokegel/jclasslib) 5.5
|
- [jclasslib bytecode viewer](https://github.com/ingokegel/jclasslib) 5.5
|
||||||
- [KeyStore Explorer](https://keystore-explorer.org/) 5.4.3
|
- [KeyStore Explorer](https://keystore-explorer.org/) 5.4.3
|
||||||
- [OWASP Zed Attack Proxy (ZAP)](https://www.zaproxy.org/) (in weekly releases)
|
- [OWASP Zed Attack Proxy (ZAP)](https://www.zaproxy.org/) (in weekly releases)
|
||||||
|
- [XMLmind XML Editor](https://www.xmlmind.com/xmleditor/) 9.3 (commercial)
|
||||||
|
- [Total Validator](https://www.totalvalidator.com/) 15 (commercial)
|
||||||
- [j-lawyer](https://github.com/jlawyerorg/j-lawyer-org)
|
- [j-lawyer](https://github.com/jlawyerorg/j-lawyer-org)
|
||||||
|
- [MegaMek](https://github.com/MegaMek/megamek) v0.47.4 and
|
||||||
|
[MekHQ](https://github.com/MegaMek/mekhq) v0.47.5
|
||||||
|
- [GUIslice Builder](https://github.com/ImpulseAdventure/GUIslice-Builder)
|
||||||
|
0.13.b024
|
||||||
- [Rest Suite](https://github.com/supanadit/restsuite)
|
- [Rest Suite](https://github.com/supanadit/restsuite)
|
||||||
- [ControllerBuddy](https://github.com/bwRavencl/ControllerBuddy)
|
- [ControllerBuddy](https://github.com/bwRavencl/ControllerBuddy)
|
||||||
- [SpringRemote](https://github.com/HaleyWang/SpringRemote)
|
- [SpringRemote](https://github.com/HaleyWang/SpringRemote)
|
||||||
@@ -89,6 +97,8 @@ Projects using FlatLaf
|
|||||||
[mendelson AS2](https://mendelson-e-c.com/as2/),
|
[mendelson AS2](https://mendelson-e-c.com/as2/),
|
||||||
[AS4](https://mendelson-e-c.com/as4/) and
|
[AS4](https://mendelson-e-c.com/as4/) and
|
||||||
[OFTP2](https://mendelson-e-c.com/oftp2) (commercial)
|
[OFTP2](https://mendelson-e-c.com/oftp2) (commercial)
|
||||||
|
- [MeteoInfo](https://github.com/meteoinfo/MeteoInfo) 2.1.6
|
||||||
|
- [lsfusion platform](https://github.com/lsfusion/platform)
|
||||||
- and more...
|
- and more...
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -14,8 +14,8 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
val releaseVersion = "0.30"
|
val releaseVersion = "0.33"
|
||||||
val developmentVersion = "0.31-SNAPSHOT"
|
val developmentVersion = "0.34-SNAPSHOT"
|
||||||
|
|
||||||
version = if( java.lang.Boolean.getBoolean( "release" ) ) releaseVersion else developmentVersion
|
version = if( java.lang.Boolean.getBoolean( "release" ) ) releaseVersion else developmentVersion
|
||||||
|
|
||||||
|
|||||||
@@ -23,6 +23,11 @@ plugins {
|
|||||||
|
|
||||||
if( JavaVersion.current() >= JavaVersion.VERSION_1_9 ) {
|
if( JavaVersion.current() >= JavaVersion.VERSION_1_9 ) {
|
||||||
sourceSets {
|
sourceSets {
|
||||||
|
create( "java9" ) {
|
||||||
|
java {
|
||||||
|
setSrcDirs( listOf( "src/main/java9" ) )
|
||||||
|
}
|
||||||
|
}
|
||||||
create( "module-info" ) {
|
create( "module-info" ) {
|
||||||
java {
|
java {
|
||||||
// include "src/main/java" here to get compile errors if classes are
|
// include "src/main/java" here to get compile errors if classes are
|
||||||
@@ -52,6 +57,12 @@ tasks {
|
|||||||
archiveBaseName.set( "flatlaf" )
|
archiveBaseName.set( "flatlaf" )
|
||||||
|
|
||||||
if( JavaVersion.current() >= JavaVersion.VERSION_1_9 ) {
|
if( JavaVersion.current() >= JavaVersion.VERSION_1_9 ) {
|
||||||
|
manifest.attributes( "Multi-Release" to "true" )
|
||||||
|
|
||||||
|
into( "META-INF/versions/9" ) {
|
||||||
|
from( sourceSets["java9"].output )
|
||||||
|
}
|
||||||
|
|
||||||
from( sourceSets["module-info"].output ) {
|
from( sourceSets["module-info"].output ) {
|
||||||
include( "module-info.class" )
|
include( "module-info.class" )
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,12 +21,16 @@ import java.awt.Component;
|
|||||||
import java.awt.Container;
|
import java.awt.Container;
|
||||||
import java.awt.EventQueue;
|
import java.awt.EventQueue;
|
||||||
import java.awt.Font;
|
import java.awt.Font;
|
||||||
|
import java.awt.Image;
|
||||||
import java.awt.KeyEventPostProcessor;
|
import java.awt.KeyEventPostProcessor;
|
||||||
import java.awt.KeyboardFocusManager;
|
import java.awt.KeyboardFocusManager;
|
||||||
import java.awt.RenderingHints;
|
import java.awt.RenderingHints;
|
||||||
import java.awt.Toolkit;
|
import java.awt.Toolkit;
|
||||||
import java.awt.Window;
|
import java.awt.Window;
|
||||||
import java.awt.event.KeyEvent;
|
import java.awt.event.KeyEvent;
|
||||||
|
import java.awt.image.FilteredImageSource;
|
||||||
|
import java.awt.image.ImageFilter;
|
||||||
|
import java.awt.image.ImageProducer;
|
||||||
import java.beans.PropertyChangeEvent;
|
import java.beans.PropertyChangeEvent;
|
||||||
import java.beans.PropertyChangeListener;
|
import java.beans.PropertyChangeListener;
|
||||||
import java.lang.ref.WeakReference;
|
import java.lang.ref.WeakReference;
|
||||||
@@ -37,9 +41,13 @@ import java.util.Map;
|
|||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.ServiceLoader;
|
import java.util.ServiceLoader;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
import java.util.function.Function;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
import javax.swing.AbstractButton;
|
import javax.swing.AbstractButton;
|
||||||
|
import javax.swing.Icon;
|
||||||
|
import javax.swing.ImageIcon;
|
||||||
|
import javax.swing.JComponent;
|
||||||
import javax.swing.JLabel;
|
import javax.swing.JLabel;
|
||||||
import javax.swing.JRootPane;
|
import javax.swing.JRootPane;
|
||||||
import javax.swing.JTabbedPane;
|
import javax.swing.JTabbedPane;
|
||||||
@@ -56,6 +64,8 @@ import javax.swing.plaf.UIResource;
|
|||||||
import javax.swing.plaf.basic.BasicLookAndFeel;
|
import javax.swing.plaf.basic.BasicLookAndFeel;
|
||||||
import javax.swing.text.StyleContext;
|
import javax.swing.text.StyleContext;
|
||||||
import javax.swing.text.html.HTMLEditorKit;
|
import javax.swing.text.html.HTMLEditorKit;
|
||||||
|
import com.formdev.flatlaf.util.GrayFilter;
|
||||||
|
import com.formdev.flatlaf.util.MultiResolutionImageSupport;
|
||||||
import com.formdev.flatlaf.util.SystemInfo;
|
import com.formdev.flatlaf.util.SystemInfo;
|
||||||
import com.formdev.flatlaf.util.UIScale;
|
import com.formdev.flatlaf.util.UIScale;
|
||||||
|
|
||||||
@@ -117,6 +127,30 @@ public abstract class FlatLaf
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Icon getDisabledIcon( JComponent component, Icon icon ) {
|
||||||
|
if( icon instanceof ImageIcon ) {
|
||||||
|
Object grayFilter = UIManager.get( "Component.grayFilter" );
|
||||||
|
if( !(grayFilter instanceof ImageFilter) ) {
|
||||||
|
// fallback
|
||||||
|
grayFilter = isDark()
|
||||||
|
? new GrayFilter( -20, -70, 100 )
|
||||||
|
: new GrayFilter( 25, -25, 100 );
|
||||||
|
}
|
||||||
|
|
||||||
|
ImageFilter filter = (ImageFilter) grayFilter;
|
||||||
|
Function<Image, Image> mapper = img -> {
|
||||||
|
ImageProducer producer = new FilteredImageSource( img.getSource(), filter );
|
||||||
|
return Toolkit.getDefaultToolkit().createImage( producer );
|
||||||
|
};
|
||||||
|
|
||||||
|
Image image = ((ImageIcon)icon).getImage();
|
||||||
|
return new ImageIconUIResource( MultiResolutionImageSupport.map( image, mapper ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
if( SystemInfo.IS_MAC )
|
if( SystemInfo.IS_MAC )
|
||||||
@@ -282,9 +316,9 @@ public abstract class FlatLaf
|
|||||||
// load defaults from properties
|
// load defaults from properties
|
||||||
List<Class<?>> lafClassesForDefaultsLoading = getLafClassesForDefaultsLoading();
|
List<Class<?>> lafClassesForDefaultsLoading = getLafClassesForDefaultsLoading();
|
||||||
if( lafClassesForDefaultsLoading != null )
|
if( lafClassesForDefaultsLoading != null )
|
||||||
UIDefaultsLoader.loadDefaultsFromProperties( lafClassesForDefaultsLoading, addons, getAdditionalDefaults(), defaults );
|
UIDefaultsLoader.loadDefaultsFromProperties( lafClassesForDefaultsLoading, addons, getAdditionalDefaults(), isDark(), defaults );
|
||||||
else
|
else
|
||||||
UIDefaultsLoader.loadDefaultsFromProperties( getClass(), addons, getAdditionalDefaults(), defaults );
|
UIDefaultsLoader.loadDefaultsFromProperties( getClass(), addons, getAdditionalDefaults(), isDark(), defaults );
|
||||||
|
|
||||||
// use Aqua MenuBarUI if Mac screen menubar is enabled
|
// use Aqua MenuBarUI if Mac screen menubar is enabled
|
||||||
if( SystemInfo.IS_MAC && Boolean.getBoolean( "apple.laf.useScreenMenuBar" ) )
|
if( SystemInfo.IS_MAC && Boolean.getBoolean( "apple.laf.useScreenMenuBar" ) )
|
||||||
@@ -620,4 +654,15 @@ public abstract class FlatLaf
|
|||||||
return font;
|
return font;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---- class ImageIconUIResource ------------------------------------------
|
||||||
|
|
||||||
|
private static class ImageIconUIResource
|
||||||
|
extends ImageIcon
|
||||||
|
implements UIResource
|
||||||
|
{
|
||||||
|
ImageIconUIResource( Image image ) {
|
||||||
|
super( image );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ public class IntelliJTheme
|
|||||||
* Using a buffered input stream is not necessary.
|
* Using a buffered input stream is not necessary.
|
||||||
*/
|
*/
|
||||||
public static FlatLaf createLaf( InputStream in )
|
public static FlatLaf createLaf( InputStream in )
|
||||||
throws IOException, ParseException
|
throws IOException
|
||||||
{
|
{
|
||||||
return createLaf( new IntelliJTheme( in ) );
|
return createLaf( new IntelliJTheme( in ) );
|
||||||
}
|
}
|
||||||
@@ -106,11 +106,13 @@ public class IntelliJTheme
|
|||||||
*/
|
*/
|
||||||
@SuppressWarnings( "unchecked" )
|
@SuppressWarnings( "unchecked" )
|
||||||
public IntelliJTheme( InputStream in )
|
public IntelliJTheme( InputStream in )
|
||||||
throws IOException, ParseException
|
throws IOException
|
||||||
{
|
{
|
||||||
Map<String, Object> json;
|
Map<String, Object> json;
|
||||||
try( Reader reader = new InputStreamReader( in, StandardCharsets.UTF_8 ) ) {
|
try( Reader reader = new InputStreamReader( in, StandardCharsets.UTF_8 ) ) {
|
||||||
json = (Map<String, Object>) Json.parse( reader );
|
json = (Map<String, Object>) Json.parse( reader );
|
||||||
|
} catch( ParseException ex ) {
|
||||||
|
throw new IOException( ex.getMessage(), ex );
|
||||||
}
|
}
|
||||||
|
|
||||||
name = (String) json.get( "name" );
|
name = (String) json.get( "name" );
|
||||||
@@ -132,6 +134,8 @@ public class IntelliJTheme
|
|||||||
defaults.put( "Button.paintShadow", true );
|
defaults.put( "Button.paintShadow", true );
|
||||||
defaults.put( "Button.shadowWidth", dark ? 2 : 1 );
|
defaults.put( "Button.shadowWidth", dark ? 2 : 1 );
|
||||||
|
|
||||||
|
Map<Object, Object> themeSpecificDefaults = removeThemeSpecificDefaults( defaults );
|
||||||
|
|
||||||
loadNamedColors( defaults );
|
loadNamedColors( defaults );
|
||||||
|
|
||||||
// convert Json "ui" structure to UI defaults
|
// convert Json "ui" structure to UI defaults
|
||||||
@@ -183,6 +187,42 @@ public class IntelliJTheme
|
|||||||
if( !uiKeys.contains( "Spinner.background" ) )
|
if( !uiKeys.contains( "Spinner.background" ) )
|
||||||
defaults.put( "Spinner.background", textFieldBackground );
|
defaults.put( "Spinner.background", textFieldBackground );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// fix ToggleButton
|
||||||
|
if( !uiKeys.contains( "ToggleButton.startBackground" ) && !uiKeys.contains( "*.startBackground" ) )
|
||||||
|
defaults.put( "ToggleButton.startBackground", defaults.get( "Button.startBackground" ) );
|
||||||
|
if( !uiKeys.contains( "ToggleButton.endBackground" ) && !uiKeys.contains( "*.endBackground" ) )
|
||||||
|
defaults.put( "ToggleButton.endBackground", defaults.get( "Button.endBackground" ) );
|
||||||
|
if( !uiKeys.contains( "ToggleButton.foreground" ) && uiKeys.contains( "Button.foreground" ) )
|
||||||
|
defaults.put( "ToggleButton.foreground", defaults.get( "Button.foreground" ) );
|
||||||
|
|
||||||
|
// limit tree row height
|
||||||
|
int rowHeight = defaults.getInt( "Tree.rowHeight" );
|
||||||
|
if( rowHeight > 22 )
|
||||||
|
defaults.put( "Tree.rowHeight", 22 );
|
||||||
|
|
||||||
|
// apply theme specific UI defaults at the end to allow overwriting
|
||||||
|
defaults.putAll( themeSpecificDefaults );
|
||||||
|
}
|
||||||
|
|
||||||
|
private Map<Object, Object> removeThemeSpecificDefaults( UIDefaults defaults ) {
|
||||||
|
// search for theme specific UI defaults keys
|
||||||
|
ArrayList<String> themeSpecificKeys = new ArrayList<>();
|
||||||
|
for( Object key : defaults.keySet() ) {
|
||||||
|
if( key instanceof String && ((String)key).startsWith( "[" ) )
|
||||||
|
themeSpecificKeys.add( (String) key );
|
||||||
|
}
|
||||||
|
|
||||||
|
// remove theme specific UI defaults and remember only those for current theme
|
||||||
|
Map<Object, Object> themeSpecificDefaults = new HashMap<>();
|
||||||
|
String currentThemePrefix = '[' + name.replace( ' ', '_' ) + ']';
|
||||||
|
for( String key : themeSpecificKeys ) {
|
||||||
|
Object value = defaults.remove( key );
|
||||||
|
if( key.startsWith( currentThemePrefix ) )
|
||||||
|
themeSpecificDefaults.put( key.substring( currentThemePrefix.length() ), value );
|
||||||
|
}
|
||||||
|
|
||||||
|
return themeSpecificDefaults;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -216,6 +256,11 @@ public class IntelliJTheme
|
|||||||
} else {
|
} else {
|
||||||
uiKeys.add( key );
|
uiKeys.add( key );
|
||||||
|
|
||||||
|
// fix ComboBox size and Spinner border in all Material UI Lite themes
|
||||||
|
boolean isMaterialUILite = author.equals( "Mallowigi" );
|
||||||
|
if( isMaterialUILite && (key.equals( "ComboBox.padding" ) || key.equals( "Spinner.border" )) )
|
||||||
|
return; // ignore
|
||||||
|
|
||||||
// map keys
|
// map keys
|
||||||
key = uiKeyMapping.getOrDefault( key, key );
|
key = uiKeyMapping.getOrDefault( key, key );
|
||||||
if( key.isEmpty() )
|
if( key.isEmpty() )
|
||||||
@@ -270,7 +315,7 @@ public class IntelliJTheme
|
|||||||
// (e.g. set ComboBox.buttonEditableBackground to *.background
|
// (e.g. set ComboBox.buttonEditableBackground to *.background
|
||||||
// because it is mapped from ComboBox.ArrowButton.background)
|
// because it is mapped from ComboBox.ArrowButton.background)
|
||||||
String km = uiKeyInverseMapping.getOrDefault( k, (String) k );
|
String km = uiKeyInverseMapping.getOrDefault( k, (String) k );
|
||||||
if( km.endsWith( tail ) && !noWildcardReplace.contains( k ) && !((String)k).startsWith( "CheckBox.icon." ) )
|
if( km.endsWith( tail ) && !((String)k).startsWith( "CheckBox.icon." ) )
|
||||||
defaults.put( k, uiValue );
|
defaults.put( k, uiValue );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -412,7 +457,6 @@ public class IntelliJTheme
|
|||||||
private static Map<String, String> uiKeyInverseMapping = new HashMap<>();
|
private static Map<String, String> uiKeyInverseMapping = new HashMap<>();
|
||||||
private static Map<String, String> checkboxKeyMapping = new HashMap<>();
|
private static Map<String, String> checkboxKeyMapping = new HashMap<>();
|
||||||
private static Map<String, String> checkboxDuplicateColors = new HashMap<>();
|
private static Map<String, String> checkboxDuplicateColors = new HashMap<>();
|
||||||
private static Set<String> noWildcardReplace = new HashSet<>();
|
|
||||||
|
|
||||||
static {
|
static {
|
||||||
// ComboBox
|
// ComboBox
|
||||||
@@ -470,16 +514,6 @@ public class IntelliJTheme
|
|||||||
Map.Entry<String, String>[] entries = checkboxDuplicateColors.entrySet().toArray( new Map.Entry[checkboxDuplicateColors.size()] );
|
Map.Entry<String, String>[] entries = checkboxDuplicateColors.entrySet().toArray( new Map.Entry[checkboxDuplicateColors.size()] );
|
||||||
for( Map.Entry<String, String> e : entries )
|
for( Map.Entry<String, String> e : entries )
|
||||||
checkboxDuplicateColors.put( e.getValue(), e.getKey() );
|
checkboxDuplicateColors.put( e.getValue(), e.getKey() );
|
||||||
|
|
||||||
// because FlatLaf uses Button.background and Button.borderColor,
|
|
||||||
// but IDEA uses Button.startBackground and Button.startBorderColor,
|
|
||||||
// our default button background and border colors may be replaced by
|
|
||||||
// wildcard *.background and *.borderColor colors
|
|
||||||
noWildcardReplace.add( "Button.background" );
|
|
||||||
noWildcardReplace.add( "Button.borderColor" );
|
|
||||||
noWildcardReplace.add( "Button.default.background" );
|
|
||||||
noWildcardReplace.add( "Button.default.borderColor" );
|
|
||||||
noWildcardReplace.add( "ToggleButton.background" );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//---- class ThemeLaf -----------------------------------------------------
|
//---- class ThemeLaf -----------------------------------------------------
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ import com.formdev.flatlaf.ui.FlatEmptyBorder;
|
|||||||
import com.formdev.flatlaf.ui.FlatLineBorder;
|
import com.formdev.flatlaf.ui.FlatLineBorder;
|
||||||
import com.formdev.flatlaf.util.ColorFunctions;
|
import com.formdev.flatlaf.util.ColorFunctions;
|
||||||
import com.formdev.flatlaf.util.DerivedColor;
|
import com.formdev.flatlaf.util.DerivedColor;
|
||||||
|
import com.formdev.flatlaf.util.GrayFilter;
|
||||||
import com.formdev.flatlaf.util.HSLColor;
|
import com.formdev.flatlaf.util.HSLColor;
|
||||||
import com.formdev.flatlaf.util.StringUtils;
|
import com.formdev.flatlaf.util.StringUtils;
|
||||||
import com.formdev.flatlaf.util.SystemInfo;
|
import com.formdev.flatlaf.util.SystemInfo;
|
||||||
@@ -69,7 +70,7 @@ class UIDefaultsLoader
|
|||||||
private static final String GLOBAL_PREFIX = "*.";
|
private static final String GLOBAL_PREFIX = "*.";
|
||||||
|
|
||||||
static void loadDefaultsFromProperties( Class<?> lookAndFeelClass, List<FlatDefaultsAddon> addons,
|
static void loadDefaultsFromProperties( Class<?> lookAndFeelClass, List<FlatDefaultsAddon> addons,
|
||||||
Properties additionalDefaults, UIDefaults defaults )
|
Properties additionalDefaults, boolean dark, UIDefaults defaults )
|
||||||
{
|
{
|
||||||
// determine classes in class hierarchy in reverse order
|
// determine classes in class hierarchy in reverse order
|
||||||
ArrayList<Class<?>> lafClasses = new ArrayList<>();
|
ArrayList<Class<?>> lafClasses = new ArrayList<>();
|
||||||
@@ -80,11 +81,11 @@ class UIDefaultsLoader
|
|||||||
lafClasses.add( 0, lafClass );
|
lafClasses.add( 0, lafClass );
|
||||||
}
|
}
|
||||||
|
|
||||||
loadDefaultsFromProperties( lafClasses, addons, additionalDefaults, defaults );
|
loadDefaultsFromProperties( lafClasses, addons, additionalDefaults, dark, defaults );
|
||||||
}
|
}
|
||||||
|
|
||||||
static void loadDefaultsFromProperties( List<Class<?>> lafClasses, List<FlatDefaultsAddon> addons,
|
static void loadDefaultsFromProperties( List<Class<?>> lafClasses, List<FlatDefaultsAddon> addons,
|
||||||
Properties additionalDefaults, UIDefaults defaults )
|
Properties additionalDefaults, boolean dark, UIDefaults defaults )
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
// load core properties files
|
// load core properties files
|
||||||
@@ -121,14 +122,28 @@ class UIDefaultsLoader
|
|||||||
|
|
||||||
// collect all platform specific keys (but do not modify properties)
|
// collect all platform specific keys (but do not modify properties)
|
||||||
ArrayList<String> platformSpecificKeys = new ArrayList<>();
|
ArrayList<String> platformSpecificKeys = new ArrayList<>();
|
||||||
for( Object key : properties.keySet() ) {
|
for( Object okey : properties.keySet() ) {
|
||||||
if( ((String)key).startsWith( "[" ) )
|
String key = (String) okey;
|
||||||
platformSpecificKeys.add( (String) key );
|
if( key.startsWith( "[" ) &&
|
||||||
|
(key.startsWith( "[win]" ) ||
|
||||||
|
key.startsWith( "[mac]" ) ||
|
||||||
|
key.startsWith( "[linux]" ) ||
|
||||||
|
key.startsWith( "[light]" ) ||
|
||||||
|
key.startsWith( "[dark]" )) )
|
||||||
|
platformSpecificKeys.add( key );
|
||||||
}
|
}
|
||||||
|
|
||||||
// remove platform specific properties and re-add only properties
|
// remove platform specific properties and re-add only properties
|
||||||
// for current platform, but with platform prefix removed
|
// for current platform, but with platform prefix removed
|
||||||
if( !platformSpecificKeys.isEmpty() ) {
|
if( !platformSpecificKeys.isEmpty() ) {
|
||||||
|
// handle light/dark specific properties
|
||||||
|
String lightOrDarkPrefix = dark ? "[dark]" : "[light]";
|
||||||
|
for( String key : platformSpecificKeys ) {
|
||||||
|
if( key.startsWith( lightOrDarkPrefix ) )
|
||||||
|
properties.put( key.substring( lightOrDarkPrefix.length() ), properties.remove( key ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
// handle platform specific properties
|
||||||
String platformPrefix =
|
String platformPrefix =
|
||||||
SystemInfo.IS_WINDOWS ? "[win]" :
|
SystemInfo.IS_WINDOWS ? "[win]" :
|
||||||
SystemInfo.IS_MAC ? "[mac]" :
|
SystemInfo.IS_MAC ? "[mac]" :
|
||||||
@@ -222,7 +237,7 @@ class UIDefaultsLoader
|
|||||||
}
|
}
|
||||||
|
|
||||||
private enum ValueType { UNKNOWN, STRING, CHARACTER, INTEGER, FLOAT, BORDER, ICON, INSETS, DIMENSION, COLOR,
|
private enum ValueType { UNKNOWN, STRING, CHARACTER, INTEGER, FLOAT, BORDER, ICON, INSETS, DIMENSION, COLOR,
|
||||||
SCALEDINTEGER, SCALEDFLOAT, SCALEDINSETS, SCALEDDIMENSION, INSTANCE, CLASS }
|
SCALEDINTEGER, SCALEDFLOAT, SCALEDINSETS, SCALEDDIMENSION, INSTANCE, CLASS, GRAYFILTER }
|
||||||
|
|
||||||
static Object parseValue( String key, String value ) {
|
static Object parseValue( String key, String value ) {
|
||||||
return parseValue( key, value, v -> v, Collections.emptyList() );
|
return parseValue( key, value, v -> v, Collections.emptyList() );
|
||||||
@@ -289,6 +304,8 @@ class UIDefaultsLoader
|
|||||||
valueType = ValueType.CHARACTER;
|
valueType = ValueType.CHARACTER;
|
||||||
else if( key.endsWith( "UI" ) )
|
else if( key.endsWith( "UI" ) )
|
||||||
valueType = ValueType.STRING;
|
valueType = ValueType.STRING;
|
||||||
|
else if( key.endsWith( "grayFilter" ) )
|
||||||
|
valueType = ValueType.GRAYFILTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse value
|
// parse value
|
||||||
@@ -308,6 +325,7 @@ class UIDefaultsLoader
|
|||||||
case SCALEDDIMENSION:return parseScaledDimension( value );
|
case SCALEDDIMENSION:return parseScaledDimension( value );
|
||||||
case INSTANCE: return parseInstance( value, addonClassLoaders );
|
case INSTANCE: return parseInstance( value, addonClassLoaders );
|
||||||
case CLASS: return parseClass( value, addonClassLoaders );
|
case CLASS: return parseClass( value, addonClassLoaders );
|
||||||
|
case GRAYFILTER: return parseGrayFilter( value );
|
||||||
case UNKNOWN:
|
case UNKNOWN:
|
||||||
default:
|
default:
|
||||||
// colors
|
// colors
|
||||||
@@ -544,35 +562,37 @@ class UIDefaultsLoader
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Syntax: lighten([color,]amount[,options]) or darken([color,]amount[,options])
|
* Syntax: lighten(color,amount[,options]) or darken(color,amount[,options])
|
||||||
* - color: a color (e.g. #f00) or a color function
|
* - color: a color (e.g. #f00) or a color function
|
||||||
* - amount: percentage 0-100%
|
* - amount: percentage 0-100%
|
||||||
* - options: [relative] [autoInverse] [lazy]
|
* - options: [relative] [autoInverse] [lazy] [derived]
|
||||||
*/
|
*/
|
||||||
private static Object parseColorLightenOrDarken( boolean lighten, List<String> params,
|
private static Object parseColorLightenOrDarken( boolean lighten, List<String> params,
|
||||||
Function<String, String> resolver, boolean reportError )
|
Function<String, String> resolver, boolean reportError )
|
||||||
{
|
{
|
||||||
boolean isDerived = params.get( 0 ).endsWith( "%" );
|
String colorStr = params.get( 0 );
|
||||||
String colorStr = isDerived ? null : params.get( 0 );
|
int amount = parsePercentage( params.get( 1 ) );
|
||||||
int nextParam = isDerived ? 0 : 1;
|
|
||||||
int amount = parsePercentage( params.get( nextParam++ ) );
|
|
||||||
boolean relative = false;
|
boolean relative = false;
|
||||||
boolean autoInverse = false;
|
boolean autoInverse = false;
|
||||||
boolean lazy = false;
|
boolean lazy = false;
|
||||||
|
boolean derived = false;
|
||||||
|
|
||||||
if( params.size() > nextParam ) {
|
if( params.size() > 2 ) {
|
||||||
String options = params.get( nextParam++ );
|
String options = params.get( 2 );
|
||||||
relative = options.contains( "relative" );
|
relative = options.contains( "relative" );
|
||||||
autoInverse = options.contains( "autoInverse" );
|
autoInverse = options.contains( "autoInverse" );
|
||||||
lazy = options.contains( "lazy" );
|
lazy = options.contains( "lazy" );
|
||||||
|
derived = options.contains( "derived" );
|
||||||
}
|
}
|
||||||
|
|
||||||
ColorFunctions.ColorFunction function = lighten
|
ColorFunctions.ColorFunction function = lighten
|
||||||
? new ColorFunctions.Lighten( amount, relative, autoInverse )
|
? new ColorFunctions.Lighten( amount, relative, autoInverse )
|
||||||
: new ColorFunctions.Darken( amount, relative, autoInverse );
|
: new ColorFunctions.Darken( amount, relative, autoInverse );
|
||||||
|
|
||||||
if( isDerived )
|
if( derived ) {
|
||||||
return new DerivedColor( function );
|
ColorUIResource color = (ColorUIResource) parseColorOrFunction( resolver.apply( colorStr ), resolver, reportError );
|
||||||
|
return new DerivedColor( ColorFunctions.applyFunctions( color, function ), function );
|
||||||
|
}
|
||||||
|
|
||||||
if( lazy ) {
|
if( lazy ) {
|
||||||
return (LazyValue) t -> {
|
return (LazyValue) t -> {
|
||||||
@@ -664,6 +684,21 @@ class UIDefaultsLoader
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Object parseGrayFilter( String value ) {
|
||||||
|
List<String> numbers = split( value, ',' );
|
||||||
|
try {
|
||||||
|
int brightness = Integer.parseInt( numbers.get( 0 ) );
|
||||||
|
int contrast = Integer.parseInt( numbers.get( 1 ) );
|
||||||
|
int alpha = Integer.parseInt( numbers.get( 2 ) );
|
||||||
|
|
||||||
|
return (LazyValue) t -> {
|
||||||
|
return new GrayFilter( brightness, contrast, alpha );
|
||||||
|
};
|
||||||
|
} catch( NumberFormatException ex ) {
|
||||||
|
throw new IllegalArgumentException( "invalid gray filter '" + value + "'" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Split string and trim parts.
|
* Split string and trim parts.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ public class FlatCheckBoxIcon
|
|||||||
boolean selected = indeterminate || (c instanceof AbstractButton && ((AbstractButton)c).isSelected());
|
boolean selected = indeterminate || (c instanceof AbstractButton && ((AbstractButton)c).isSelected());
|
||||||
|
|
||||||
// paint focused border
|
// paint focused border
|
||||||
if( c.hasFocus() && focusWidth > 0 ) {
|
if( FlatUIUtils.isPermanentFocusOwner( c ) && focusWidth > 0 ) {
|
||||||
g2.setColor( focusColor );
|
g2.setColor( focusColor );
|
||||||
paintFocusBorder( g2 );
|
paintFocusBorder( g2 );
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ public class FlatHelpButtonIcon
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
boolean enabled = c.isEnabled();
|
boolean enabled = c.isEnabled();
|
||||||
boolean focused = c.hasFocus();
|
boolean focused = FlatUIUtils.isPermanentFocusOwner( c );
|
||||||
|
|
||||||
// paint focused border
|
// paint focused border
|
||||||
if( focused ) {
|
if( focused ) {
|
||||||
|
|||||||
@@ -119,7 +119,7 @@ public class FlatBorder
|
|||||||
JViewport viewport = ((JScrollPane)c).getViewport();
|
JViewport viewport = ((JScrollPane)c).getViewport();
|
||||||
Component view = (viewport != null) ? viewport.getView() : null;
|
Component view = (viewport != null) ? viewport.getView() : null;
|
||||||
if( view != null ) {
|
if( view != null ) {
|
||||||
if( view.hasFocus() )
|
if( FlatUIUtils.isPermanentFocusOwner( view ) )
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if( (view instanceof JTable && ((JTable)view).isEditing()) ||
|
if( (view instanceof JTable && ((JTable)view).isEditing()) ||
|
||||||
@@ -133,17 +133,17 @@ public class FlatBorder
|
|||||||
return false;
|
return false;
|
||||||
} else if( c instanceof JComboBox && ((JComboBox<?>)c).isEditable() ) {
|
} else if( c instanceof JComboBox && ((JComboBox<?>)c).isEditable() ) {
|
||||||
Component editorComponent = ((JComboBox<?>)c).getEditor().getEditorComponent();
|
Component editorComponent = ((JComboBox<?>)c).getEditor().getEditorComponent();
|
||||||
return (editorComponent != null) ? editorComponent.hasFocus() : false;
|
return (editorComponent != null) ? FlatUIUtils.isPermanentFocusOwner( editorComponent ) : false;
|
||||||
} else if( c instanceof JSpinner ) {
|
} else if( c instanceof JSpinner ) {
|
||||||
JComponent editor = ((JSpinner)c).getEditor();
|
JComponent editor = ((JSpinner)c).getEditor();
|
||||||
if( editor instanceof JSpinner.DefaultEditor ) {
|
if( editor instanceof JSpinner.DefaultEditor ) {
|
||||||
JTextField textField = ((JSpinner.DefaultEditor)editor).getTextField();
|
JTextField textField = ((JSpinner.DefaultEditor)editor).getTextField();
|
||||||
if( textField != null )
|
if( textField != null )
|
||||||
return textField.hasFocus();
|
return FlatUIUtils.isPermanentFocusOwner( textField );
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
} else
|
} else
|
||||||
return c.hasFocus();
|
return FlatUIUtils.isPermanentFocusOwner( c );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected boolean isTableCellEditor( Component c ) {
|
protected boolean isTableCellEditor( Component c ) {
|
||||||
|
|||||||
@@ -294,7 +294,9 @@ public class FlatButtonUI
|
|||||||
|
|
||||||
// paint shadow
|
// paint shadow
|
||||||
Color shadowColor = def ? defaultShadowColor : this.shadowColor;
|
Color shadowColor = def ? defaultShadowColor : this.shadowColor;
|
||||||
if( !isToolBarButton && shadowColor != null && shadowWidth > 0 && focusWidth > 0 && !c.hasFocus() && c.isEnabled() ) {
|
if( !isToolBarButton && shadowColor != null && shadowWidth > 0 && focusWidth > 0 &&
|
||||||
|
!FlatUIUtils.isPermanentFocusOwner( c ) && c.isEnabled() )
|
||||||
|
{
|
||||||
g2.setColor( shadowColor );
|
g2.setColor( shadowColor );
|
||||||
g2.fill( new RoundRectangle2D.Float( focusWidth, focusWidth + UIScale.scale( (float) shadowWidth ),
|
g2.fill( new RoundRectangle2D.Float( focusWidth, focusWidth + UIScale.scale( (float) shadowWidth ),
|
||||||
width - focusWidth * 2, height - focusWidth * 2, arc, arc ) );
|
width - focusWidth * 2, height - focusWidth * 2, arc, arc ) );
|
||||||
@@ -382,7 +384,7 @@ public class FlatButtonUI
|
|||||||
if( hoverColor != null && b != null && b.getModel().isRollover() )
|
if( hoverColor != null && b != null && b.getModel().isRollover() )
|
||||||
return hoverColor;
|
return hoverColor;
|
||||||
|
|
||||||
if( focusedColor != null && c.hasFocus() )
|
if( focusedColor != null && FlatUIUtils.isPermanentFocusOwner( c ) )
|
||||||
return focusedColor;
|
return focusedColor;
|
||||||
|
|
||||||
return enabledColor;
|
return enabledColor;
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public class FlatListUI
|
|||||||
selectionInactiveBackground = UIManager.getColor( "List.selectionInactiveBackground" );
|
selectionInactiveBackground = UIManager.getColor( "List.selectionInactiveBackground" );
|
||||||
selectionInactiveForeground = UIManager.getColor( "List.selectionInactiveForeground" );
|
selectionInactiveForeground = UIManager.getColor( "List.selectionInactiveForeground" );
|
||||||
|
|
||||||
toggleSelectionColors( list.hasFocus() );
|
toggleSelectionColors();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -100,13 +100,13 @@ public class FlatListUI
|
|||||||
@Override
|
@Override
|
||||||
public void focusGained( FocusEvent e ) {
|
public void focusGained( FocusEvent e ) {
|
||||||
super.focusGained( e );
|
super.focusGained( e );
|
||||||
toggleSelectionColors( true );
|
toggleSelectionColors();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void focusLost( FocusEvent e ) {
|
public void focusLost( FocusEvent e ) {
|
||||||
super.focusLost( e );
|
super.focusLost( e );
|
||||||
toggleSelectionColors( false );
|
toggleSelectionColors();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -120,8 +120,8 @@ public class FlatListUI
|
|||||||
* already used in applications. Then either the inactive colors are not used,
|
* already used in applications. Then either the inactive colors are not used,
|
||||||
* or the application has to be changed to extend a FlatLaf renderer.
|
* or the application has to be changed to extend a FlatLaf renderer.
|
||||||
*/
|
*/
|
||||||
private void toggleSelectionColors( boolean focused ) {
|
private void toggleSelectionColors() {
|
||||||
if( focused ) {
|
if( FlatUIUtils.isPermanentFocusOwner( list ) ) {
|
||||||
if( list.getSelectionBackground() == selectionInactiveBackground )
|
if( list.getSelectionBackground() == selectionInactiveBackground )
|
||||||
list.setSelectionBackground( selectionBackground );
|
list.setSelectionBackground( selectionBackground );
|
||||||
if( list.getSelectionForeground() == selectionInactiveForeground )
|
if( list.getSelectionForeground() == selectionInactiveForeground )
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ public class FlatPasswordFieldUI
|
|||||||
|
|
||||||
protected void paintCapsLock( Graphics g ) {
|
protected void paintCapsLock( Graphics g ) {
|
||||||
JTextComponent c = getComponent();
|
JTextComponent c = getComponent();
|
||||||
if( !c.isFocusOwner() ||
|
if( !FlatUIUtils.isPermanentFocusOwner( c ) ||
|
||||||
!Toolkit.getDefaultToolkit().getLockingKeyState( KeyEvent.VK_CAPS_LOCK ) )
|
!Toolkit.getDefaultToolkit().getLockingKeyState( KeyEvent.VK_CAPS_LOCK ) )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
@@ -201,7 +201,7 @@ public class FlatSliderUI
|
|||||||
}
|
}
|
||||||
|
|
||||||
if( coloredTrack != null ) {
|
if( coloredTrack != null ) {
|
||||||
FlatUIUtils.setColor( g, slider.hasFocus() ? focusColor : (hover ? hoverColor : thumbColor), thumbColor );
|
FlatUIUtils.setColor( g, FlatUIUtils.isPermanentFocusOwner( slider ) ? focusColor : (hover ? hoverColor : thumbColor), thumbColor );
|
||||||
((Graphics2D)g).fill( coloredTrack );
|
((Graphics2D)g).fill( coloredTrack );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -212,7 +212,7 @@ public class FlatSliderUI
|
|||||||
@Override
|
@Override
|
||||||
public void paintThumb( Graphics g ) {
|
public void paintThumb( Graphics g ) {
|
||||||
FlatUIUtils.setColor( g, slider.isEnabled()
|
FlatUIUtils.setColor( g, slider.isEnabled()
|
||||||
? (slider.hasFocus() ? focusColor : (hover ? hoverColor : thumbColor))
|
? (FlatUIUtils.isPermanentFocusOwner( slider ) ? focusColor : (hover ? hoverColor : thumbColor))
|
||||||
: disabledForeground,
|
: disabledForeground,
|
||||||
thumbColor );
|
thumbColor );
|
||||||
|
|
||||||
|
|||||||
@@ -318,7 +318,7 @@ public class FlatTabbedPaneUI
|
|||||||
boolean enabled = tabPane.isEnabled();
|
boolean enabled = tabPane.isEnabled();
|
||||||
g.setColor( enabled && tabPane.isEnabledAt( tabIndex ) && getRolloverTab() == tabIndex
|
g.setColor( enabled && tabPane.isEnabledAt( tabIndex ) && getRolloverTab() == tabIndex
|
||||||
? hoverColor
|
? hoverColor
|
||||||
: (enabled && isSelected && tabPane.hasFocus()
|
: (enabled && isSelected && FlatUIUtils.isPermanentFocusOwner( tabPane )
|
||||||
? focusColor
|
? focusColor
|
||||||
: (selectedBackground != null && enabled && isSelected
|
: (selectedBackground != null && enabled && isSelected
|
||||||
? selectedBackground
|
? selectedBackground
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ public class FlatTableUI
|
|||||||
selectionInactiveBackground = UIManager.getColor( "Table.selectionInactiveBackground" );
|
selectionInactiveBackground = UIManager.getColor( "Table.selectionInactiveBackground" );
|
||||||
selectionInactiveForeground = UIManager.getColor( "Table.selectionInactiveForeground" );
|
selectionInactiveForeground = UIManager.getColor( "Table.selectionInactiveForeground" );
|
||||||
|
|
||||||
toggleSelectionColors( table.hasFocus() );
|
toggleSelectionColors();
|
||||||
|
|
||||||
int rowHeight = FlatUIUtils.getUIInt( "Table.rowHeight", 16 );
|
int rowHeight = FlatUIUtils.getUIInt( "Table.rowHeight", 16 );
|
||||||
if( rowHeight > 0 )
|
if( rowHeight > 0 )
|
||||||
@@ -160,13 +160,13 @@ public class FlatTableUI
|
|||||||
@Override
|
@Override
|
||||||
public void focusGained( FocusEvent e ) {
|
public void focusGained( FocusEvent e ) {
|
||||||
super.focusGained( e );
|
super.focusGained( e );
|
||||||
toggleSelectionColors( true );
|
toggleSelectionColors();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void focusLost( FocusEvent e ) {
|
public void focusLost( FocusEvent e ) {
|
||||||
super.focusLost( e );
|
super.focusLost( e );
|
||||||
toggleSelectionColors( false );
|
toggleSelectionColors();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -180,8 +180,8 @@ public class FlatTableUI
|
|||||||
* already used in applications. Then either the inactive colors are not used,
|
* already used in applications. Then either the inactive colors are not used,
|
||||||
* or the application has to be changed to extend a FlatLaf renderer.
|
* or the application has to be changed to extend a FlatLaf renderer.
|
||||||
*/
|
*/
|
||||||
private void toggleSelectionColors( boolean focused ) {
|
private void toggleSelectionColors() {
|
||||||
if( focused ) {
|
if( FlatUIUtils.isPermanentFocusOwner( table ) ) {
|
||||||
if( table.getSelectionBackground() == selectionInactiveBackground )
|
if( table.getSelectionBackground() == selectionInactiveBackground )
|
||||||
table.setSelectionBackground( selectionBackground );
|
table.setSelectionBackground( selectionBackground );
|
||||||
if( table.getSelectionForeground() == selectionInactiveForeground )
|
if( table.getSelectionForeground() == selectionInactiveForeground )
|
||||||
|
|||||||
@@ -221,7 +221,7 @@ public class FlatTreeUI
|
|||||||
TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf )
|
TreePath path, int row, boolean isExpanded, boolean hasBeenExpanded, boolean isLeaf )
|
||||||
{
|
{
|
||||||
boolean isEditing = (editingComponent != null && editingRow == row);
|
boolean isEditing = (editingComponent != null && editingRow == row);
|
||||||
boolean hasFocus = tree.hasFocus();
|
boolean hasFocus = FlatUIUtils.isPermanentFocusOwner( tree );
|
||||||
boolean cellHasFocus = hasFocus && (row == getLeadSelectionRow());
|
boolean cellHasFocus = hasFocus && (row == getLeadSelectionRow());
|
||||||
boolean isSelected = tree.isRowSelected( row );
|
boolean isSelected = tree.isRowSelected( row );
|
||||||
boolean isDropRow = isDropRow( row );
|
boolean isDropRow = isDropRow( row );
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import java.awt.Font;
|
|||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
import java.awt.Graphics2D;
|
import java.awt.Graphics2D;
|
||||||
import java.awt.Insets;
|
import java.awt.Insets;
|
||||||
|
import java.awt.KeyboardFocusManager;
|
||||||
import java.awt.Rectangle;
|
import java.awt.Rectangle;
|
||||||
import java.awt.RenderingHints;
|
import java.awt.RenderingHints;
|
||||||
import java.awt.Shape;
|
import java.awt.Shape;
|
||||||
@@ -136,6 +137,10 @@ public class FlatUIUtils
|
|||||||
return c instanceof JComponent && Boolean.TRUE.equals( ((JComponent)c).getClientProperty( "JComboBox.isTableCellEditor" ) );
|
return c instanceof JComponent && Boolean.TRUE.equals( ((JComponent)c).getClientProperty( "JComboBox.isTableCellEditor" ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isPermanentFocusOwner( Component c ) {
|
||||||
|
return (KeyboardFocusManager.getCurrentKeyboardFocusManager().getPermanentFocusOwner() == c);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets rendering hints used for painting.
|
* Sets rendering hints used for painting.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ public class DerivedColor
|
|||||||
{
|
{
|
||||||
private final ColorFunction[] functions;
|
private final ColorFunction[] functions;
|
||||||
|
|
||||||
public DerivedColor( ColorFunction... functions ) {
|
public DerivedColor( Color defaultColor, ColorFunction... functions ) {
|
||||||
super( Color.red );
|
super( (defaultColor != null) ? defaultColor : Color.red );
|
||||||
this.functions = functions;
|
this.functions = functions;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,81 @@
|
|||||||
|
// Copyright 2000-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||||||
|
package com.formdev.flatlaf.util;
|
||||||
|
|
||||||
|
import java.awt.image.RGBImageFilter;
|
||||||
|
|
||||||
|
// based on https://github.com/JetBrains/intellij-community/blob/3840eab54746f5c4f301bb3ac78f00a980b5fd6e/platform/util/ui/src/com/intellij/util/ui/UIUtil.java#L253-L347
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An image filter that turns an image into a grayscale image.
|
||||||
|
* Used for icons in disabled buttons and labels.
|
||||||
|
*/
|
||||||
|
public class GrayFilter
|
||||||
|
extends RGBImageFilter
|
||||||
|
{
|
||||||
|
private final float brightness;
|
||||||
|
private final float contrast;
|
||||||
|
private final int alpha;
|
||||||
|
|
||||||
|
private final int origContrast;
|
||||||
|
private final int origBrightness;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param brightness in range [-100..100] where 0 has no effect
|
||||||
|
* @param contrast in range [-100..100] where 0 has no effect
|
||||||
|
* @param alpha in range [0..100] where 0 is transparent, 100 has no effect
|
||||||
|
*/
|
||||||
|
public GrayFilter( int brightness, int contrast, int alpha ) {
|
||||||
|
this.origBrightness = Math.max( -100, Math.min( 100, brightness ) );
|
||||||
|
this.origContrast = Math.max( -100, Math.min( 100, contrast ) );
|
||||||
|
this.alpha = Math.max( 0, Math.min( 100, alpha ) );
|
||||||
|
|
||||||
|
this.brightness = (float) (Math.pow( origBrightness, 3 ) / (100f * 100f)); // cubic in [0..100]
|
||||||
|
this.contrast = origContrast / 100f;
|
||||||
|
|
||||||
|
canFilterIndexColorModel = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GrayFilter() {
|
||||||
|
this( 0, 0, 100 );
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getBrightness() {
|
||||||
|
return origBrightness;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getContrast() {
|
||||||
|
return origContrast;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAlpha() {
|
||||||
|
return alpha;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int filterRGB( int x, int y, int rgb ) {
|
||||||
|
// use NTSC conversion formula
|
||||||
|
int gray = (int)(
|
||||||
|
0.30 * (rgb >> 16 & 0xff) +
|
||||||
|
0.59 * (rgb >> 8 & 0xff) +
|
||||||
|
0.11 * (rgb & 0xff));
|
||||||
|
|
||||||
|
if( brightness >= 0 )
|
||||||
|
gray = (int) ((gray + brightness * 255) / (1 + brightness));
|
||||||
|
else
|
||||||
|
gray = (int) (gray / (1 - brightness));
|
||||||
|
|
||||||
|
if( contrast >= 0 ) {
|
||||||
|
if( gray >= 127 )
|
||||||
|
gray = (int) (gray + (255 - gray) * contrast);
|
||||||
|
else
|
||||||
|
gray = (int) (gray - gray * contrast);
|
||||||
|
} else
|
||||||
|
gray = (int) (127 + (gray - 127) * (contrast + 1));
|
||||||
|
|
||||||
|
int a = (alpha != 100)
|
||||||
|
? (((rgb >> 24) & 0xff) * alpha / 100) << 24
|
||||||
|
: (rgb & 0xff000000);
|
||||||
|
|
||||||
|
return a | (gray << 16) | (gray << 8) | gray;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.util;
|
||||||
|
|
||||||
|
import java.awt.Image;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Support for multi-resolution images available since Java 9.
|
||||||
|
*
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class MultiResolutionImageSupport
|
||||||
|
{
|
||||||
|
public static boolean isAvailable() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isMultiResolutionImage( Image image ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Image create( int baseImageIndex, Image... resolutionVariants ) {
|
||||||
|
return resolutionVariants[baseImageIndex];
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Image map( Image image, Function<Image, Image> mapper ) {
|
||||||
|
return mapper.apply( image );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,96 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.util;
|
||||||
|
|
||||||
|
import java.awt.Image;
|
||||||
|
import java.awt.image.AbstractMultiResolutionImage;
|
||||||
|
import java.awt.image.BaseMultiResolutionImage;
|
||||||
|
import java.awt.image.MultiResolutionImage;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.IdentityHashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.function.Function;
|
||||||
|
import javax.swing.ImageIcon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Support for multi-resolution images available since Java 9.
|
||||||
|
*
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class MultiResolutionImageSupport
|
||||||
|
{
|
||||||
|
public static boolean isAvailable() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isMultiResolutionImage( Image image ) {
|
||||||
|
return image instanceof MultiResolutionImage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Image create( int baseImageIndex, Image... resolutionVariants ) {
|
||||||
|
return new BaseMultiResolutionImage( baseImageIndex, resolutionVariants );
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Image map( Image image, Function<Image, Image> mapper ) {
|
||||||
|
return image instanceof MultiResolutionImage
|
||||||
|
? new MappedMultiResolutionImage( image, mapper )
|
||||||
|
: mapper.apply( image );
|
||||||
|
}
|
||||||
|
|
||||||
|
//---- class MappedMultiResolutionImage -----------------------------------
|
||||||
|
|
||||||
|
private static class MappedMultiResolutionImage
|
||||||
|
extends AbstractMultiResolutionImage
|
||||||
|
{
|
||||||
|
private final Image mrImage;
|
||||||
|
private final Function<Image, Image> mapper;
|
||||||
|
private final IdentityHashMap<Image, Image> cache = new IdentityHashMap<>();
|
||||||
|
|
||||||
|
MappedMultiResolutionImage( Image mrImage, Function<Image, Image> mapper ) {
|
||||||
|
assert mrImage instanceof MultiResolutionImage;
|
||||||
|
|
||||||
|
this.mrImage = mrImage;
|
||||||
|
this.mapper = mapper;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Image getResolutionVariant( double destImageWidth, double destImageHeight ) {
|
||||||
|
Image variant = ((MultiResolutionImage)mrImage).getResolutionVariant( destImageWidth, destImageHeight );
|
||||||
|
return mapAndCacheImage( variant );
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Image> getResolutionVariants() {
|
||||||
|
List<Image> variants = ((MultiResolutionImage)mrImage).getResolutionVariants();
|
||||||
|
List<Image> mappedVariants = new ArrayList<>();
|
||||||
|
for( Image image : variants )
|
||||||
|
mappedVariants.add( mapAndCacheImage( image ) );
|
||||||
|
return mappedVariants;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Image getBaseImage() {
|
||||||
|
return mapAndCacheImage( mrImage );
|
||||||
|
}
|
||||||
|
|
||||||
|
private Image mapAndCacheImage( Image image ) {
|
||||||
|
return cache.computeIfAbsent( image, img -> {
|
||||||
|
return new ImageIcon( mapper.apply( img ) ).getImage();
|
||||||
|
} );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -32,10 +32,6 @@
|
|||||||
@cellFocusColor=#000000
|
@cellFocusColor=#000000
|
||||||
@icon=#adadad
|
@icon=#adadad
|
||||||
|
|
||||||
# Button
|
|
||||||
@buttonHoverBackground=lighten(3%,autoInverse)
|
|
||||||
@buttonPressedBackground=lighten(6%,autoInverse)
|
|
||||||
|
|
||||||
# Drop (use lazy colors for IntelliJ platform themes, which usually do not specify these colors)
|
# Drop (use lazy colors for IntelliJ platform themes, which usually do not specify these colors)
|
||||||
@dropCellBackground=darken(List.selectionBackground,10%,lazy)
|
@dropCellBackground=darken(List.selectionBackground,10%,lazy)
|
||||||
@dropCellForeground=lazy(List.selectionForeground)
|
@dropCellForeground=lazy(List.selectionForeground)
|
||||||
@@ -73,8 +69,8 @@ controlDkShadow=lighten($controlShadow,10%)
|
|||||||
#---- Button ----
|
#---- Button ----
|
||||||
|
|
||||||
Button.background=#4c5052
|
Button.background=#4c5052
|
||||||
Button.hoverBackground=@buttonHoverBackground
|
Button.hoverBackground=lighten($Button.background,3%,derived autoInverse)
|
||||||
Button.pressedBackground=@buttonPressedBackground
|
Button.pressedBackground=lighten($Button.background,6%,derived autoInverse)
|
||||||
|
|
||||||
Button.borderColor=#5e6060
|
Button.borderColor=#5e6060
|
||||||
Button.disabledBorderColor=#5e6060
|
Button.disabledBorderColor=#5e6060
|
||||||
@@ -83,16 +79,16 @@ Button.hoverBorderColor=$Button.focusedBorderColor
|
|||||||
|
|
||||||
Button.default.background=#365880
|
Button.default.background=#365880
|
||||||
Button.default.foreground=#bbbbbb
|
Button.default.foreground=#bbbbbb
|
||||||
Button.default.hoverBackground=@buttonHoverBackground
|
Button.default.hoverBackground=lighten($Button.default.background,3%,derived autoInverse)
|
||||||
Button.default.pressedBackground=@buttonPressedBackground
|
Button.default.pressedBackground=lighten($Button.default.background,6%,derived autoInverse)
|
||||||
Button.default.borderColor=#4c708c
|
Button.default.borderColor=#4c708c
|
||||||
Button.default.hoverBorderColor=#537699
|
Button.default.hoverBorderColor=#537699
|
||||||
Button.default.focusedBorderColor=#537699
|
Button.default.focusedBorderColor=#537699
|
||||||
Button.default.focusColor=#43688c
|
Button.default.focusColor=#43688c
|
||||||
Button.default.boldText=true
|
Button.default.boldText=true
|
||||||
|
|
||||||
Button.toolbar.hoverBackground=#4c5052
|
Button.toolbar.hoverBackground=lighten($Button.background,1%,derived autoInverse)
|
||||||
Button.toolbar.pressedBackground=#555a5d
|
Button.toolbar.pressedBackground=lighten($Button.background,4%,derived autoInverse)
|
||||||
|
|
||||||
|
|
||||||
#---- CheckBox ----
|
#---- CheckBox ----
|
||||||
@@ -105,8 +101,8 @@ CheckBox.icon.hoverBorderColor=$CheckBox.icon.focusedBorderColor
|
|||||||
CheckBox.icon.selectedFocusedBorderColor=#466D94
|
CheckBox.icon.selectedFocusedBorderColor=#466D94
|
||||||
CheckBox.icon.background=#43494A
|
CheckBox.icon.background=#43494A
|
||||||
CheckBox.icon.disabledBackground=@background
|
CheckBox.icon.disabledBackground=@background
|
||||||
CheckBox.icon.hoverBackground=@buttonHoverBackground
|
CheckBox.icon.hoverBackground=lighten($CheckBox.icon.background,3%,derived autoInverse)
|
||||||
CheckBox.icon.pressedBackground=@buttonPressedBackground
|
CheckBox.icon.pressedBackground=lighten($CheckBox.icon.background,6%,derived autoInverse)
|
||||||
CheckBox.icon.selectedBackground=#43494A
|
CheckBox.icon.selectedBackground=#43494A
|
||||||
CheckBox.icon.checkmarkColor=#A7A7A7
|
CheckBox.icon.checkmarkColor=#A7A7A7
|
||||||
CheckBox.icon.disabledCheckmarkColor=#606060
|
CheckBox.icon.disabledCheckmarkColor=#606060
|
||||||
@@ -129,6 +125,7 @@ Component.disabledBorderColor=#646464
|
|||||||
Component.focusedBorderColor=#466d94
|
Component.focusedBorderColor=#466d94
|
||||||
Component.focusColor=#3d6185
|
Component.focusColor=#3d6185
|
||||||
Component.linkColor=#589df6
|
Component.linkColor=#589df6
|
||||||
|
Component.grayFilter=-20,-70,100
|
||||||
|
|
||||||
|
|
||||||
#---- Desktop ----
|
#---- Desktop ----
|
||||||
@@ -151,8 +148,8 @@ InternalFrame.inactiveTitleForeground=@disabledText
|
|||||||
InternalFrame.activeBorderColor=lighten($Component.borderColor,10%)
|
InternalFrame.activeBorderColor=lighten($Component.borderColor,10%)
|
||||||
InternalFrame.inactiveBorderColor=$Component.borderColor
|
InternalFrame.inactiveBorderColor=$Component.borderColor
|
||||||
|
|
||||||
InternalFrame.buttonHoverBackground=lighten(10%,autoInverse)
|
InternalFrame.buttonHoverBackground=lighten($InternalFrame.activeTitleBackground,10%,derived autoInverse)
|
||||||
InternalFrame.buttonPressedBackground=lighten(20%,autoInverse)
|
InternalFrame.buttonPressedBackground=lighten($InternalFrame.activeTitleBackground,20%,derived autoInverse)
|
||||||
InternalFrame.closeHoverBackground=lazy(Actions.Red)
|
InternalFrame.closeHoverBackground=lazy(Actions.Red)
|
||||||
InternalFrame.closePressedBackground=darken(Actions.Red,10%,lazy)
|
InternalFrame.closePressedBackground=darken(Actions.Red,10%,lazy)
|
||||||
InternalFrame.closeHoverForeground=#fff
|
InternalFrame.closeHoverForeground=#fff
|
||||||
@@ -218,7 +215,7 @@ Separator.foreground=#515151
|
|||||||
Slider.trackColor=#646464
|
Slider.trackColor=#646464
|
||||||
Slider.thumbColor=#A6A6A6
|
Slider.thumbColor=#A6A6A6
|
||||||
Slider.tickColor=#888888
|
Slider.tickColor=#888888
|
||||||
Slider.hoverColor=darken(15%,autoInverse)
|
Slider.hoverColor=darken($Slider.thumbColor,15%,derived autoInverse)
|
||||||
Slider.disabledForeground=#4c5052
|
Slider.disabledForeground=#4c5052
|
||||||
|
|
||||||
|
|
||||||
@@ -253,11 +250,11 @@ TableHeader.bottomSeparatorColor=$TableHeader.separatorColor
|
|||||||
|
|
||||||
#---- ToggleButton ----
|
#---- ToggleButton ----
|
||||||
|
|
||||||
ToggleButton.selectedBackground=#64696C
|
ToggleButton.selectedBackground=lighten($ToggleButton.background,10%,derived autoInverse)
|
||||||
ToggleButton.selectedForeground=@foreground
|
ToggleButton.selectedForeground=@foreground
|
||||||
ToggleButton.disabledSelectedBackground=#525658
|
ToggleButton.disabledSelectedBackground=lighten($ToggleButton.background,3%,derived autoInverse)
|
||||||
|
|
||||||
ToggleButton.toolbar.selectedBackground=#5c6164
|
ToggleButton.toolbar.selectedBackground=lighten($ToggleButton.background,7%,derived autoInverse)
|
||||||
|
|
||||||
|
|
||||||
#---- ToolTip ----
|
#---- ToolTip ----
|
||||||
|
|||||||
@@ -32,10 +32,6 @@
|
|||||||
@cellFocusColor=#000000
|
@cellFocusColor=#000000
|
||||||
@icon=#afafaf
|
@icon=#afafaf
|
||||||
|
|
||||||
# Button
|
|
||||||
@buttonHoverBackground=darken(3%,autoInverse)
|
|
||||||
@buttonPressedBackground=darken(10%,autoInverse)
|
|
||||||
|
|
||||||
# Drop (use lazy colors for IntelliJ platform themes, which usually do not specify these colors)
|
# Drop (use lazy colors for IntelliJ platform themes, which usually do not specify these colors)
|
||||||
@dropCellBackground=lighten(List.selectionBackground,10%,lazy)
|
@dropCellBackground=lighten(List.selectionBackground,10%,lazy)
|
||||||
@dropCellForeground=lazy(List.selectionForeground)
|
@dropCellForeground=lazy(List.selectionForeground)
|
||||||
@@ -74,8 +70,8 @@ controlDkShadow=darken($controlShadow,15%)
|
|||||||
|
|
||||||
Button.background=#ffffff
|
Button.background=#ffffff
|
||||||
Button.focusedBackground=#e3f1fa
|
Button.focusedBackground=#e3f1fa
|
||||||
Button.hoverBackground=@buttonHoverBackground
|
Button.hoverBackground=darken($Button.background,3%,derived autoInverse)
|
||||||
Button.pressedBackground=@buttonPressedBackground
|
Button.pressedBackground=darken($Button.background,10%,derived autoInverse)
|
||||||
|
|
||||||
Button.borderColor=$Component.borderColor
|
Button.borderColor=$Component.borderColor
|
||||||
Button.disabledBorderColor=$Component.disabledBorderColor
|
Button.disabledBorderColor=$Component.disabledBorderColor
|
||||||
@@ -85,16 +81,16 @@ Button.hoverBorderColor=$Button.focusedBorderColor
|
|||||||
Button.default.background=$Button.background
|
Button.default.background=$Button.background
|
||||||
Button.default.foreground=@foreground
|
Button.default.foreground=@foreground
|
||||||
Button.default.focusedBackground=$Button.focusedBackground
|
Button.default.focusedBackground=$Button.focusedBackground
|
||||||
Button.default.hoverBackground=@buttonHoverBackground
|
Button.default.hoverBackground=$Button.hoverBackground
|
||||||
Button.default.pressedBackground=@buttonPressedBackground
|
Button.default.pressedBackground=$Button.pressedBackground
|
||||||
Button.default.borderColor=#4F9EE3
|
Button.default.borderColor=#4F9EE3
|
||||||
Button.default.hoverBorderColor=$Button.hoverBorderColor
|
Button.default.hoverBorderColor=$Button.hoverBorderColor
|
||||||
Button.default.focusedBorderColor=$Button.focusedBorderColor
|
Button.default.focusedBorderColor=$Button.focusedBorderColor
|
||||||
Button.default.focusColor=$Component.focusColor
|
Button.default.focusColor=$Component.focusColor
|
||||||
Button.default.borderWidth=2
|
Button.default.borderWidth=2
|
||||||
|
|
||||||
Button.toolbar.hoverBackground=#dfdfdf
|
Button.toolbar.hoverBackground=darken($Button.background,12%,derived autoInverse)
|
||||||
Button.toolbar.pressedBackground=#d8d8d8
|
Button.toolbar.pressedBackground=darken($Button.background,15%,derived autoInverse)
|
||||||
|
|
||||||
|
|
||||||
#---- CheckBox ----
|
#---- CheckBox ----
|
||||||
@@ -107,8 +103,8 @@ CheckBox.icon.hoverBorderColor=$CheckBox.icon.focusedBorderColor
|
|||||||
CheckBox.icon.background=#FFFFFF
|
CheckBox.icon.background=#FFFFFF
|
||||||
CheckBox.icon.disabledBackground=@background
|
CheckBox.icon.disabledBackground=@background
|
||||||
CheckBox.icon.focusedBackground=$Button.focusedBackground
|
CheckBox.icon.focusedBackground=$Button.focusedBackground
|
||||||
CheckBox.icon.hoverBackground=@buttonHoverBackground
|
CheckBox.icon.hoverBackground=$Button.hoverBackground
|
||||||
CheckBox.icon.pressedBackground=@buttonPressedBackground
|
CheckBox.icon.pressedBackground=$Button.pressedBackground
|
||||||
CheckBox.icon.selectedBackground=#FFFFFF
|
CheckBox.icon.selectedBackground=#FFFFFF
|
||||||
CheckBox.icon.checkmarkColor=#4F9EE3
|
CheckBox.icon.checkmarkColor=#4F9EE3
|
||||||
CheckBox.icon.disabledCheckmarkColor=#ABABAB
|
CheckBox.icon.disabledCheckmarkColor=#ABABAB
|
||||||
@@ -131,6 +127,7 @@ Component.disabledBorderColor=#cfcfcf
|
|||||||
Component.focusedBorderColor=#87afda
|
Component.focusedBorderColor=#87afda
|
||||||
Component.focusColor=#97c3f3
|
Component.focusColor=#97c3f3
|
||||||
Component.linkColor=#2470B3
|
Component.linkColor=#2470B3
|
||||||
|
Component.grayFilter=25,-25,100
|
||||||
|
|
||||||
|
|
||||||
#---- Desktop ----
|
#---- Desktop ----
|
||||||
@@ -158,8 +155,8 @@ InternalFrame.inactiveTitleForeground=@disabledText
|
|||||||
InternalFrame.activeBorderColor=darken($Component.borderColor,20%)
|
InternalFrame.activeBorderColor=darken($Component.borderColor,20%)
|
||||||
InternalFrame.inactiveBorderColor=$Component.borderColor
|
InternalFrame.inactiveBorderColor=$Component.borderColor
|
||||||
|
|
||||||
InternalFrame.buttonHoverBackground=darken(10%,autoInverse)
|
InternalFrame.buttonHoverBackground=darken($InternalFrame.activeTitleBackground,10%,derived autoInverse)
|
||||||
InternalFrame.buttonPressedBackground=darken(20%,autoInverse)
|
InternalFrame.buttonPressedBackground=darken($InternalFrame.activeTitleBackground,20%,derived autoInverse)
|
||||||
InternalFrame.closeHoverBackground=lazy(Actions.Red)
|
InternalFrame.closeHoverBackground=lazy(Actions.Red)
|
||||||
InternalFrame.closePressedBackground=darken(Actions.Red,10%,lazy)
|
InternalFrame.closePressedBackground=darken(Actions.Red,10%,lazy)
|
||||||
InternalFrame.closeHoverForeground=#fff
|
InternalFrame.closeHoverForeground=#fff
|
||||||
@@ -225,7 +222,7 @@ Separator.foreground=#d1d1d1
|
|||||||
Slider.trackColor=#c4c4c4
|
Slider.trackColor=#c4c4c4
|
||||||
Slider.thumbColor=#6e6e6e
|
Slider.thumbColor=#6e6e6e
|
||||||
Slider.tickColor=#888888
|
Slider.tickColor=#888888
|
||||||
Slider.hoverColor=lighten(15%,autoInverse)
|
Slider.hoverColor=lighten($Slider.thumbColor,15%,derived autoInverse)
|
||||||
Slider.disabledForeground=#c0c0c0
|
Slider.disabledForeground=#c0c0c0
|
||||||
|
|
||||||
|
|
||||||
@@ -260,11 +257,11 @@ TableHeader.bottomSeparatorColor=$TableHeader.separatorColor
|
|||||||
|
|
||||||
#---- ToggleButton ----
|
#---- ToggleButton ----
|
||||||
|
|
||||||
ToggleButton.selectedBackground=#cfcfcf
|
ToggleButton.selectedBackground=darken($ToggleButton.background,20%,derived autoInverse)
|
||||||
ToggleButton.selectedForeground=@foreground
|
ToggleButton.selectedForeground=@foreground
|
||||||
ToggleButton.disabledSelectedBackground=#dfdfdf
|
ToggleButton.disabledSelectedBackground=darken($ToggleButton.background,13%,derived autoInverse)
|
||||||
|
|
||||||
ToggleButton.toolbar.selectedBackground=#cfcfcf
|
ToggleButton.toolbar.selectedBackground=$ToggleButton.selectedBackground
|
||||||
|
|
||||||
|
|
||||||
#---- ToolTip ----
|
#---- ToolTip ----
|
||||||
|
|||||||
@@ -16,6 +16,16 @@
|
|||||||
|
|
||||||
#---- Button ----
|
#---- Button ----
|
||||||
|
|
||||||
|
Button.startBackground=$Button.background
|
||||||
|
Button.endBackground=$Button.background
|
||||||
|
Button.startBorderColor=$Button.borderColor
|
||||||
|
Button.endBorderColor=$Button.borderColor
|
||||||
|
|
||||||
|
Button.default.startBackground=$Button.default.background
|
||||||
|
Button.default.endBackground=$Button.default.background
|
||||||
|
Button.default.startBorderColor=$Button.default.borderColor
|
||||||
|
Button.default.endBorderColor=$Button.default.borderColor
|
||||||
|
|
||||||
Button.hoverBorderColor=null
|
Button.hoverBorderColor=null
|
||||||
Button.default.hoverBorderColor=null
|
Button.default.hoverBorderColor=null
|
||||||
|
|
||||||
@@ -23,3 +33,32 @@ Button.default.hoverBorderColor=null
|
|||||||
#---- HelpButton ----
|
#---- HelpButton ----
|
||||||
|
|
||||||
HelpButton.hoverBorderColor=null
|
HelpButton.hoverBorderColor=null
|
||||||
|
|
||||||
|
|
||||||
|
#---- ToggleButton ----
|
||||||
|
|
||||||
|
ToggleButton.startBackground=$ToggleButton.background
|
||||||
|
ToggleButton.endBackground=$ToggleButton.background
|
||||||
|
[dark]ToggleButton.selectedBackground=lighten($ToggleButton.background,15%,derived autoInverse)
|
||||||
|
[dark]ToggleButton.disabledSelectedBackground=lighten($ToggleButton.background,5%,derived autoInverse)
|
||||||
|
|
||||||
|
|
||||||
|
#---- theme specific ----
|
||||||
|
|
||||||
|
[Gruvbox_Dark_Hard]ToggleButton.selectedBackground=$ToggleButton.selectedBackground
|
||||||
|
[Gruvbox_Dark_Hard]ToggleButton.toolbar.selectedBackground=$ToggleButton.toolbar.selectedBackground
|
||||||
|
|
||||||
|
[Gruvbox_Dark_Medium]ToggleButton.selectedBackground=$ToggleButton.selectedBackground
|
||||||
|
[Gruvbox_Dark_Medium]ToggleButton.toolbar.selectedBackground=$ToggleButton.toolbar.selectedBackground
|
||||||
|
|
||||||
|
[Gruvbox_Dark_Soft]ToggleButton.selectedBackground=$ToggleButton.selectedBackground
|
||||||
|
[Gruvbox_Dark_Soft]ToggleButton.toolbar.selectedBackground=$ToggleButton.toolbar.selectedBackground
|
||||||
|
|
||||||
|
[Hiberbee_Dark]ToggleButton.selectedBackground=$ToggleButton.selectedBackground
|
||||||
|
[Hiberbee_Dark]ToggleButton.selectedBackground=$ToggleButton.selectedBackground
|
||||||
|
[Hiberbee_Dark]ToggleButton.toolbar.selectedBackground=$ToggleButton.toolbar.selectedBackground
|
||||||
|
|
||||||
|
[High_contrast]ToggleButton.selectedBackground=#fff
|
||||||
|
[High_contrast]ToggleButton.selectedForeground=#000
|
||||||
|
[High_contrast]ToggleButton.disabledSelectedBackground=#444
|
||||||
|
[High_contrast]ToggleButton.toolbar.selectedBackground=#fff
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ plugins {
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation( project( ":flatlaf-core" ) )
|
implementation( project( ":flatlaf-core" ) )
|
||||||
implementation( project( ":flatlaf-extras" ) )
|
implementation( project( ":flatlaf-extras" ) )
|
||||||
|
implementation( project( ":flatlaf-intellij-themes" ) )
|
||||||
implementation( "com.miglayout:miglayout-swing:5.2" )
|
implementation( "com.miglayout:miglayout-swing:5.2" )
|
||||||
implementation( "com.jgoodies:jgoodies-forms:1.9.0" )
|
implementation( "com.jgoodies:jgoodies-forms:1.9.0" )
|
||||||
}
|
}
|
||||||
@@ -38,12 +39,16 @@ tasks {
|
|||||||
jar {
|
jar {
|
||||||
dependsOn( ":flatlaf-core:jar" )
|
dependsOn( ":flatlaf-core:jar" )
|
||||||
dependsOn( ":flatlaf-extras:jar" )
|
dependsOn( ":flatlaf-extras:jar" )
|
||||||
|
dependsOn( ":flatlaf-intellij-themes:jar" )
|
||||||
|
|
||||||
manifest {
|
manifest {
|
||||||
attributes( "Main-Class" to "com.formdev.flatlaf.demo.FlatLafDemo" )
|
attributes( "Main-Class" to "com.formdev.flatlaf.demo.FlatLafDemo" )
|
||||||
|
|
||||||
|
if( JavaVersion.current() >= JavaVersion.VERSION_1_9 )
|
||||||
|
attributes( "Multi-Release" to "true" )
|
||||||
}
|
}
|
||||||
|
|
||||||
exclude( "META-INF/versions/**" )
|
exclude( "module-info.class" )
|
||||||
|
|
||||||
// include all dependencies in jar
|
// include all dependencies in jar
|
||||||
from( {
|
from( {
|
||||||
|
|||||||
@@ -81,6 +81,11 @@ class DataComponentsPanel
|
|||||||
JScrollPane scrollPane5 = new JScrollPane();
|
JScrollPane scrollPane5 = new JScrollPane();
|
||||||
table1 = new JTable();
|
table1 = new JTable();
|
||||||
dndCheckBox = new JCheckBox();
|
dndCheckBox = new JCheckBox();
|
||||||
|
JPopupMenu popupMenu2 = new JPopupMenu();
|
||||||
|
JMenuItem menuItem3 = new JMenuItem();
|
||||||
|
JMenuItem menuItem4 = new JMenuItem();
|
||||||
|
JMenuItem menuItem5 = new JMenuItem();
|
||||||
|
JMenuItem menuItem6 = new JMenuItem();
|
||||||
|
|
||||||
//======== this ========
|
//======== this ========
|
||||||
setLayout(new MigLayout(
|
setLayout(new MigLayout(
|
||||||
@@ -126,6 +131,7 @@ class DataComponentsPanel
|
|||||||
@Override
|
@Override
|
||||||
public String getElementAt(int i) { return values[i]; }
|
public String getElementAt(int i) { return values[i]; }
|
||||||
});
|
});
|
||||||
|
list1.setComponentPopupMenu(popupMenu2);
|
||||||
scrollPane1.setViewportView(list1);
|
scrollPane1.setViewportView(list1);
|
||||||
}
|
}
|
||||||
add(scrollPane1, "cell 1 0,growx");
|
add(scrollPane1, "cell 1 0,growx");
|
||||||
@@ -198,6 +204,7 @@ class DataComponentsPanel
|
|||||||
add(node1);
|
add(node1);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
|
tree1.setComponentPopupMenu(popupMenu2);
|
||||||
scrollPane3.setViewportView(tree1);
|
scrollPane3.setViewportView(tree1);
|
||||||
}
|
}
|
||||||
add(scrollPane3, "cell 1 1,growx");
|
add(scrollPane3, "cell 1 1,growx");
|
||||||
@@ -287,6 +294,7 @@ class DataComponentsPanel
|
|||||||
}))));
|
}))));
|
||||||
}
|
}
|
||||||
table1.setAutoCreateRowSorter(true);
|
table1.setAutoCreateRowSorter(true);
|
||||||
|
table1.setComponentPopupMenu(popupMenu2);
|
||||||
scrollPane5.setViewportView(table1);
|
scrollPane5.setViewportView(table1);
|
||||||
}
|
}
|
||||||
add(scrollPane5, "cell 1 2 2 1,growx,width 300");
|
add(scrollPane5, "cell 1 2 2 1,growx,width 300");
|
||||||
@@ -296,6 +304,27 @@ class DataComponentsPanel
|
|||||||
dndCheckBox.setMnemonic('D');
|
dndCheckBox.setMnemonic('D');
|
||||||
dndCheckBox.addActionListener(e -> dndChanged());
|
dndCheckBox.addActionListener(e -> dndChanged());
|
||||||
add(dndCheckBox, "cell 0 3 3 1");
|
add(dndCheckBox, "cell 0 3 3 1");
|
||||||
|
|
||||||
|
//======== popupMenu2 ========
|
||||||
|
{
|
||||||
|
|
||||||
|
//---- menuItem3 ----
|
||||||
|
menuItem3.setText("Some Action");
|
||||||
|
popupMenu2.add(menuItem3);
|
||||||
|
|
||||||
|
//---- menuItem4 ----
|
||||||
|
menuItem4.setText("More Action");
|
||||||
|
popupMenu2.add(menuItem4);
|
||||||
|
popupMenu2.addSeparator();
|
||||||
|
|
||||||
|
//---- menuItem5 ----
|
||||||
|
menuItem5.setText("No Action");
|
||||||
|
popupMenu2.add(menuItem5);
|
||||||
|
|
||||||
|
//---- menuItem6 ----
|
||||||
|
menuItem6.setText("Noop Action");
|
||||||
|
popupMenu2.add(menuItem6);
|
||||||
|
}
|
||||||
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
||||||
|
|
||||||
((JComboBox)((DefaultCellEditor)table1.getColumnModel().getColumn( 3 ).getCellEditor()).getComponent()).setEditable( true );
|
((JComboBox)((DefaultCellEditor)table1.getColumnModel().getColumn( 3 ).getCellEditor()).getComponent()).setEditable( true );
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
JFDML JFormDesigner: "7.0.0.0.194" Java: "13.0.1" encoding: "UTF-8"
|
JFDML JFormDesigner: "7.0.1.0.272" Java: "13.0.2" encoding: "UTF-8"
|
||||||
|
|
||||||
new FormModel {
|
new FormModel {
|
||||||
contentType: "form/swing"
|
contentType: "form/swing"
|
||||||
@@ -39,6 +39,7 @@ new FormModel {
|
|||||||
addElement( "item 14" )
|
addElement( "item 14" )
|
||||||
addElement( "item 15" )
|
addElement( "item 15" )
|
||||||
}
|
}
|
||||||
|
"componentPopupMenu": new FormReference( "popupMenu2" )
|
||||||
auxiliary() {
|
auxiliary() {
|
||||||
"JavaCodeGenerator.typeParameters": "String"
|
"JavaCodeGenerator.typeParameters": "String"
|
||||||
"JavaCodeGenerator.variableLocal": false
|
"JavaCodeGenerator.variableLocal": false
|
||||||
@@ -143,6 +144,7 @@ new FormModel {
|
|||||||
} )
|
} )
|
||||||
} )
|
} )
|
||||||
} )
|
} )
|
||||||
|
"componentPopupMenu": new FormReference( "popupMenu2" )
|
||||||
auxiliary() {
|
auxiliary() {
|
||||||
"JavaCodeGenerator.variableLocal": false
|
"JavaCodeGenerator.variableLocal": false
|
||||||
}
|
}
|
||||||
@@ -299,6 +301,7 @@ new FormModel {
|
|||||||
add( null )
|
add( null )
|
||||||
} )
|
} )
|
||||||
"autoCreateRowSorter": true
|
"autoCreateRowSorter": true
|
||||||
|
"componentPopupMenu": new FormReference( "popupMenu2" )
|
||||||
auxiliary() {
|
auxiliary() {
|
||||||
"JavaCodeGenerator.variableLocal": false
|
"JavaCodeGenerator.variableLocal": false
|
||||||
}
|
}
|
||||||
@@ -321,5 +324,29 @@ new FormModel {
|
|||||||
"location": new java.awt.Point( 0, 0 )
|
"location": new java.awt.Point( 0, 0 )
|
||||||
"size": new java.awt.Dimension( 790, 715 )
|
"size": new java.awt.Dimension( 790, 715 )
|
||||||
} )
|
} )
|
||||||
|
add( new FormContainer( "javax.swing.JPopupMenu", new FormLayoutManager( class javax.swing.JPopupMenu ) ) {
|
||||||
|
name: "popupMenu2"
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem3"
|
||||||
|
"text": "Some Action"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem4"
|
||||||
|
"text": "More Action"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JPopupMenu$Separator" ) {
|
||||||
|
name: "separator1"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem5"
|
||||||
|
"text": "No Action"
|
||||||
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JMenuItem" ) {
|
||||||
|
name: "menuItem6"
|
||||||
|
"text": "Noop Action"
|
||||||
|
} )
|
||||||
|
}, new FormLayoutConstraints( null ) {
|
||||||
|
"location": new java.awt.Point( 0, 740 )
|
||||||
|
} )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public class DemoPrefs
|
|||||||
if( IntelliJTheme.ThemeLaf.class.getName().equals( lafClassName ) ) {
|
if( IntelliJTheme.ThemeLaf.class.getName().equals( lafClassName ) ) {
|
||||||
String theme = state.get( KEY_LAF_THEME, "" );
|
String theme = state.get( KEY_LAF_THEME, "" );
|
||||||
if( theme.startsWith( RESOURCE_PREFIX ) )
|
if( theme.startsWith( RESOURCE_PREFIX ) )
|
||||||
IntelliJTheme.install( IJThemesPanel.class.getResourceAsStream( theme.substring( RESOURCE_PREFIX.length() ) ) );
|
IntelliJTheme.install( IJThemesPanel.class.getResourceAsStream( IJThemesPanel.THEMES_PACKAGE + theme.substring( RESOURCE_PREFIX.length() ) ) );
|
||||||
else if( theme.startsWith( FILE_PREFIX ) )
|
else if( theme.startsWith( FILE_PREFIX ) )
|
||||||
FlatLaf.install( IntelliJTheme.createLaf( new FileInputStream( theme.substring( FILE_PREFIX.length() ) ) ) );
|
FlatLaf.install( IntelliJTheme.createLaf( new FileInputStream( theme.substring( FILE_PREFIX.length() ) ) ) );
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ class MoreComponentsPanel
|
|||||||
JButton button7 = new JButton();
|
JButton button7 = new JButton();
|
||||||
JButton button8 = new JButton();
|
JButton button8 = new JButton();
|
||||||
JToggleButton toggleButton6 = new JToggleButton();
|
JToggleButton toggleButton6 = new JToggleButton();
|
||||||
|
JButton button1 = new JButton();
|
||||||
|
|
||||||
//======== this ========
|
//======== this ========
|
||||||
setLayout(new MigLayout(
|
setLayout(new MigLayout(
|
||||||
@@ -380,6 +381,11 @@ class MoreComponentsPanel
|
|||||||
toggleButton6.setIcon(UIManager.getIcon("Tree.leafIcon"));
|
toggleButton6.setIcon(UIManager.getIcon("Tree.leafIcon"));
|
||||||
toggleButton6.setSelected(true);
|
toggleButton6.setSelected(true);
|
||||||
toolBar1.add(toggleButton6);
|
toolBar1.add(toggleButton6);
|
||||||
|
|
||||||
|
//---- button1 ----
|
||||||
|
button1.setIcon(new ImageIcon(getClass().getResource("/com/formdev/flatlaf/demo/icons/intellij-showWriteAccess.png")));
|
||||||
|
button1.setEnabled(false);
|
||||||
|
toolBar1.add(button1);
|
||||||
}
|
}
|
||||||
add(toolBar1, "cell 1 10 3 1,growx");
|
add(toolBar1, "cell 1 10 3 1,growx");
|
||||||
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
// JFormDesigner - End of component initialization //GEN-END:initComponents
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
JFDML JFormDesigner: "7.0.0.0.194" Java: "11.0.2" encoding: "UTF-8"
|
JFDML JFormDesigner: "7.0.1.0.272" Java: "13.0.2" encoding: "UTF-8"
|
||||||
|
|
||||||
new FormModel {
|
new FormModel {
|
||||||
contentType: "form/swing"
|
contentType: "form/swing"
|
||||||
@@ -355,6 +355,11 @@ new FormModel {
|
|||||||
"icon": new com.jformdesigner.model.SwingIcon( 2, "Tree.leafIcon" )
|
"icon": new com.jformdesigner.model.SwingIcon( 2, "Tree.leafIcon" )
|
||||||
"selected": true
|
"selected": true
|
||||||
} )
|
} )
|
||||||
|
add( new FormComponent( "javax.swing.JButton" ) {
|
||||||
|
name: "button1"
|
||||||
|
"icon": new com.jformdesigner.model.SwingIcon( 0, "/com/formdev/flatlaf/demo/icons/intellij-showWriteAccess.png" )
|
||||||
|
"enabled": false
|
||||||
|
} )
|
||||||
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
}, new FormLayoutConstraints( class net.miginfocom.layout.CC ) {
|
||||||
"value": "cell 1 10 3 1,growx"
|
"value": "cell 1 10 3 1,growx"
|
||||||
} )
|
} )
|
||||||
|
|||||||
@@ -0,0 +1,178 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.demo.intellijthemes;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.nio.file.StandardOpenOption;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This tool creates look and feel classes for all themes listed in themes.json.
|
||||||
|
*
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class IJThemesClassGenerator
|
||||||
|
{
|
||||||
|
public static void main( String[] args ) {
|
||||||
|
IJThemesManager themesManager = new IJThemesManager();
|
||||||
|
themesManager.loadBundledThemes();
|
||||||
|
|
||||||
|
String toPath = "../flatlaf-intellij-themes/src/main/java" + IJThemesPanel.THEMES_PACKAGE + "..";
|
||||||
|
|
||||||
|
StringBuilder allInfos = new StringBuilder();
|
||||||
|
StringBuilder markdownTable = new StringBuilder();
|
||||||
|
markdownTable.append( "Name | Class\n" );
|
||||||
|
markdownTable.append( "-----|------\n" );
|
||||||
|
|
||||||
|
for( IJThemeInfo ti : themesManager.bundledThemes ) {
|
||||||
|
if( ti.sourceCodeUrl == null || ti.sourceCodePath == null )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
generateClass( ti, toPath, allInfos, markdownTable );
|
||||||
|
}
|
||||||
|
|
||||||
|
Path out = new File( toPath, "FlatAllIJThemes.java" ).toPath();
|
||||||
|
String allThemes = CLASS_HEADER + ALL_THEMES_TEMPLATE.replace( "${allInfos}", allInfos );
|
||||||
|
writeFile( out, allThemes );
|
||||||
|
|
||||||
|
System.out.println( markdownTable );
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void generateClass( IJThemeInfo ti, String toPath, StringBuilder allInfos, StringBuilder markdownTable ) {
|
||||||
|
String resourceName = ti.resourceName;
|
||||||
|
String resourcePath = null;
|
||||||
|
int resSep = resourceName.indexOf( '/' );
|
||||||
|
if( resSep >= 0 ) {
|
||||||
|
resourcePath = resourceName.substring( 0, resSep );
|
||||||
|
resourceName = resourceName.substring( resSep + 1 );
|
||||||
|
}
|
||||||
|
|
||||||
|
String name = ti.name;
|
||||||
|
int nameSep = name.indexOf( '/' );
|
||||||
|
if( nameSep >= 0 )
|
||||||
|
name = name.substring( nameSep + 1 ).trim();
|
||||||
|
|
||||||
|
StringBuilder buf = new StringBuilder();
|
||||||
|
for( String n : name.split( " " ) ) {
|
||||||
|
if( n.length() == 0 || n.equals( "-" ) )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if( Character.isUpperCase( n.charAt( 0 ) ) )
|
||||||
|
buf.append( n );
|
||||||
|
else
|
||||||
|
buf.append( Character.toUpperCase( n.charAt( 0 ) ) ).append( n.substring( 1 ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
String subPackage = (resourcePath != null) ? '.' + resourcePath.replace( "-", "" ) : "";
|
||||||
|
String themeClass = "Flat" + buf + "IJTheme";
|
||||||
|
String themeFile = resourceName;
|
||||||
|
|
||||||
|
String classBody = CLASS_HEADER + CLASS_TEMPLATE
|
||||||
|
.replace( "${subPackage}", subPackage )
|
||||||
|
.replace( "${themeClass}", themeClass )
|
||||||
|
.replace( "${themeFile}", themeFile );
|
||||||
|
|
||||||
|
File toDir = new File( toPath );
|
||||||
|
if( resourcePath != null )
|
||||||
|
toDir = new File( toDir, resourcePath.replace( "-", "" ) );
|
||||||
|
|
||||||
|
Path out = new File( toDir, themeClass + ".java" ).toPath();
|
||||||
|
writeFile( out, classBody );
|
||||||
|
|
||||||
|
if( allInfos.length() > 0 )
|
||||||
|
allInfos.append( '\n' );
|
||||||
|
allInfos.append( THEME_TEMPLATE
|
||||||
|
.replace( "${subPackage}", subPackage )
|
||||||
|
.replace( "${themeClass}", themeClass )
|
||||||
|
.replace( "${themeName}", name ) );
|
||||||
|
|
||||||
|
markdownTable.append( String.format( "[%s](%s) | `com.formdev.flatlaf.intellijthemes%s.%s`\n",
|
||||||
|
name, ti.sourceCodeUrl, subPackage, themeClass ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void writeFile( Path out, String content ) {
|
||||||
|
try {
|
||||||
|
Files.write( out, content.getBytes( StandardCharsets.ISO_8859_1 ),
|
||||||
|
StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING );
|
||||||
|
} catch( IOException ex ) {
|
||||||
|
ex.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final String CLASS_HEADER =
|
||||||
|
"/*\n" +
|
||||||
|
" * Copyright 2020 FormDev Software GmbH\n" +
|
||||||
|
" *\n" +
|
||||||
|
" * Licensed under the Apache License, Version 2.0 (the \"License\");\n" +
|
||||||
|
" * you may not use this file except in compliance with the License.\n" +
|
||||||
|
" * You may obtain a copy of the License at\n" +
|
||||||
|
" *\n" +
|
||||||
|
" * https://www.apache.org/licenses/LICENSE-2.0\n" +
|
||||||
|
" *\n" +
|
||||||
|
" * Unless required by applicable law or agreed to in writing, software\n" +
|
||||||
|
" * distributed under the License is distributed on an \"AS IS\" BASIS,\n" +
|
||||||
|
" * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n" +
|
||||||
|
" * See the License for the specific language governing permissions and\n" +
|
||||||
|
" * limitations under the License.\n" +
|
||||||
|
" */\n" +
|
||||||
|
"\n";
|
||||||
|
|
||||||
|
private static final String CLASS_TEMPLATE =
|
||||||
|
"package com.formdev.flatlaf.intellijthemes${subPackage};\n" +
|
||||||
|
"\n" +
|
||||||
|
"import com.formdev.flatlaf.IntelliJTheme;\n" +
|
||||||
|
"\n" +
|
||||||
|
"/**\n" +
|
||||||
|
" * @author Karl Tauber\n" +
|
||||||
|
" */\n" +
|
||||||
|
"public class ${themeClass}\n" +
|
||||||
|
" extends IntelliJTheme.ThemeLaf\n" +
|
||||||
|
"{\n" +
|
||||||
|
" public static boolean install( ) {\n" +
|
||||||
|
" try {\n" +
|
||||||
|
" return install( new ${themeClass}() );\n" +
|
||||||
|
" } catch( RuntimeException ex ) {\n" +
|
||||||
|
" return false;\n" +
|
||||||
|
" }\n" +
|
||||||
|
" }\n" +
|
||||||
|
"\n" +
|
||||||
|
" public ${themeClass}() {\n" +
|
||||||
|
" super( Utils.loadTheme( \"${themeFile}\" ) );\n" +
|
||||||
|
" }\n" +
|
||||||
|
"}\n";
|
||||||
|
|
||||||
|
private static final String ALL_THEMES_TEMPLATE =
|
||||||
|
"package com.formdev.flatlaf.intellijthemes;\n" +
|
||||||
|
"\n" +
|
||||||
|
"import javax.swing.UIManager.LookAndFeelInfo;\n" +
|
||||||
|
"\n" +
|
||||||
|
"/**\n" +
|
||||||
|
" * @author Karl Tauber\n" +
|
||||||
|
" */\n" +
|
||||||
|
"public class FlatAllIJThemes\n" +
|
||||||
|
"{\n" +
|
||||||
|
" public static final LookAndFeelInfo[] INFOS = {\n" +
|
||||||
|
"${allInfos}\n" +
|
||||||
|
" };\n" +
|
||||||
|
"}\n";
|
||||||
|
|
||||||
|
private static final String THEME_TEMPLATE =
|
||||||
|
" new LookAndFeelInfo( \"${themeName}\", \"com.formdev.flatlaf.intellijthemes${subPackage}.${themeClass}\" ),";
|
||||||
|
}
|
||||||
@@ -60,6 +60,8 @@ import net.miginfocom.swing.*;
|
|||||||
public class IJThemesPanel
|
public class IJThemesPanel
|
||||||
extends JPanel
|
extends JPanel
|
||||||
{
|
{
|
||||||
|
public static final String THEMES_PACKAGE = "/com/formdev/flatlaf/intellijthemes/themes/";
|
||||||
|
|
||||||
private final IJThemesManager themesManager = new IJThemesManager();
|
private final IJThemesManager themesManager = new IJThemesManager();
|
||||||
private final List<IJThemeInfo> themes = new ArrayList<>();
|
private final List<IJThemeInfo> themes = new ArrayList<>();
|
||||||
private final HashMap<Integer, String> categories = new HashMap<>();
|
private final HashMap<Integer, String> categories = new HashMap<>();
|
||||||
@@ -237,7 +239,7 @@ public class IJThemesPanel
|
|||||||
showInformationDialog( "Failed to load '" + themeInfo.themeFile + "'.", ex );
|
showInformationDialog( "Failed to load '" + themeInfo.themeFile + "'.", ex );
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
IntelliJTheme.install( getClass().getResourceAsStream( themeInfo.resourceName ) );
|
IntelliJTheme.install( getClass().getResourceAsStream( THEMES_PACKAGE + themeInfo.resourceName ) );
|
||||||
DemoPrefs.getState().put( DemoPrefs.KEY_LAF_THEME, DemoPrefs.RESOURCE_PREFIX + themeInfo.resourceName );
|
DemoPrefs.getState().put( DemoPrefs.KEY_LAF_THEME, DemoPrefs.RESOURCE_PREFIX + themeInfo.resourceName );
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -260,7 +262,7 @@ public class IJThemesPanel
|
|||||||
|
|
||||||
// save theme
|
// save theme
|
||||||
try {
|
try {
|
||||||
Files.copy( getClass().getResourceAsStream( themeInfo.resourceName ),
|
Files.copy( getClass().getResourceAsStream( THEMES_PACKAGE + themeInfo.resourceName ),
|
||||||
file.toPath(), StandardCopyOption.REPLACE_EXISTING );
|
file.toPath(), StandardCopyOption.REPLACE_EXISTING );
|
||||||
} catch( IOException ex ) {
|
} catch( IOException ex ) {
|
||||||
showInformationDialog( "Failed to save theme to '" + file + "'.", ex );
|
showInformationDialog( "Failed to save theme to '" + file + "'.", ex );
|
||||||
@@ -273,7 +275,7 @@ public class IJThemesPanel
|
|||||||
File licenseFile = new File( file.getParentFile(),
|
File licenseFile = new File( file.getParentFile(),
|
||||||
StringUtils.removeTrailing( file.getName(), ".theme.json" ) +
|
StringUtils.removeTrailing( file.getName(), ".theme.json" ) +
|
||||||
themeInfo.licenseFile.substring( themeInfo.licenseFile.indexOf( '.' ) ) );
|
themeInfo.licenseFile.substring( themeInfo.licenseFile.indexOf( '.' ) ) );
|
||||||
Files.copy( getClass().getResourceAsStream( themeInfo.licenseFile ),
|
Files.copy( getClass().getResourceAsStream( THEMES_PACKAGE + themeInfo.licenseFile ),
|
||||||
licenseFile.toPath(), StandardCopyOption.REPLACE_EXISTING );
|
licenseFile.toPath(), StandardCopyOption.REPLACE_EXISTING );
|
||||||
} catch( IOException ex ) {
|
} catch( IOException ex ) {
|
||||||
showInformationDialog( "Failed to save theme license to '" + file + "'.", ex );
|
showInformationDialog( "Failed to save theme license to '" + file + "'.", ex );
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public class IJThemesUpdater
|
|||||||
else if( fromUrl.contains( "gitlab.com" ) )
|
else if( fromUrl.contains( "gitlab.com" ) )
|
||||||
fromUrl = fromUrl.replace( "/blob/", "/raw/" );
|
fromUrl = fromUrl.replace( "/blob/", "/raw/" );
|
||||||
|
|
||||||
String toPath = "src/main/resources/com/formdev/flatlaf/demo/intellijthemes/" + ti.resourceName;
|
String toPath = "../flatlaf-intellij-themes/src/main/resources" + IJThemesPanel.THEMES_PACKAGE + ti.resourceName;
|
||||||
|
|
||||||
download( fromUrl, toPath );
|
download( fromUrl, toPath );
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 325 B |
Binary file not shown.
|
After Width: | Height: | Size: 495 B |
@@ -1,21 +0,0 @@
|
|||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2016 CloudCannon
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
@@ -1,119 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "IntelliJ Light Preview",
|
|
||||||
"dark": false,
|
|
||||||
"author": "",
|
|
||||||
"editorScheme": "/Light.xml",
|
|
||||||
|
|
||||||
"ui": {
|
|
||||||
"*": {
|
|
||||||
"selectionBackground": "#2675BF",
|
|
||||||
"selectionBackgroundInactive": "#D5D5D5",
|
|
||||||
"selectionInactiveBackground": "#D5D5D5",
|
|
||||||
|
|
||||||
"disabledForeground": "#8C8C8C",
|
|
||||||
"disabledText": "#8C8C8C",
|
|
||||||
"inactiveForeground": "#8C8C8C",
|
|
||||||
|
|
||||||
"infoForeground": "#808080",
|
|
||||||
"modifiedItemForeground": "#005ad9",
|
|
||||||
|
|
||||||
"acceleratorSelectionForeground": "#FFFFFF",
|
|
||||||
|
|
||||||
"separatorColor": "#d1d1d1",
|
|
||||||
"separatorForeground": "#999999"
|
|
||||||
},
|
|
||||||
|
|
||||||
"Borders": {
|
|
||||||
"color": "#D1D1D1",
|
|
||||||
"ContrastBorderColor": "#D1D1D1"
|
|
||||||
},
|
|
||||||
|
|
||||||
"Button": {
|
|
||||||
"shadowColor": "#A6A6A620",
|
|
||||||
"startBorderColor": "#C4C4C4",
|
|
||||||
"endBorderColor": "#C4C4C4",
|
|
||||||
"default": {
|
|
||||||
"foreground": "#FFFFFF",
|
|
||||||
"startBackground": "#528CC7",
|
|
||||||
"endBackground": "#4989CC",
|
|
||||||
"startBorderColor": "#487EB8",
|
|
||||||
"endBorderColor": "#346DAD",
|
|
||||||
"shadowColor": "#A6A6A650",
|
|
||||||
"focusedBorderColor": "#A9C9F5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
"ComboBox": {
|
|
||||||
"background": "#FFFFFF",
|
|
||||||
"nonEditableBackground": "#FFFFFF",
|
|
||||||
"ArrowButton.background": "#fafafa"
|
|
||||||
},
|
|
||||||
|
|
||||||
"ComboBoxButton.background": "#FFFFFF",
|
|
||||||
|
|
||||||
"CompletionPopup": {
|
|
||||||
"selectionBackground": "#c5dffc",
|
|
||||||
"selectionInactiveBackground": "#e0e0e0"
|
|
||||||
},
|
|
||||||
|
|
||||||
"Component.borderColor": "#C4C4C4",
|
|
||||||
|
|
||||||
"DefaultTabs.background": "#F2F2F2",
|
|
||||||
|
|
||||||
"EditorTabs.underlinedTabBackground": "#ffffff",
|
|
||||||
|
|
||||||
"Editor": {
|
|
||||||
"background": "#cccccc",
|
|
||||||
"foreground": "#737373",
|
|
||||||
"shortcutForeground": "#4274A6"
|
|
||||||
},
|
|
||||||
|
|
||||||
"Label.errorForeground": "#C7222D",
|
|
||||||
|
|
||||||
"Link": {
|
|
||||||
"activeForeground": "#2470B3",
|
|
||||||
"hoverForeground": "#2470B3",
|
|
||||||
"pressedForeground": "#2470B3",
|
|
||||||
"visitedForeground": "#2470B3",
|
|
||||||
"secondaryForeground": "#77a8d9"
|
|
||||||
},
|
|
||||||
|
|
||||||
"Notification": {
|
|
||||||
"borderColor": "#D1D1D1"
|
|
||||||
},
|
|
||||||
|
|
||||||
"Menu.borderColor": "#d9d9d9",
|
|
||||||
|
|
||||||
"Panel.background": "#F2F2F2",
|
|
||||||
|
|
||||||
"PasswordField.background": "#FFFFFF",
|
|
||||||
|
|
||||||
"Popup": {
|
|
||||||
"separatorColor": "#d9d9d9",
|
|
||||||
"Advertiser.borderColor": "#D1D1D1",
|
|
||||||
"borderColor": "#adadad"
|
|
||||||
},
|
|
||||||
|
|
||||||
"ProgressBar": {
|
|
||||||
"trackColor": "#D1D1D1",
|
|
||||||
"progressColor": "#1E82E6",
|
|
||||||
"indeterminateStartColor": "#91C5F2",
|
|
||||||
"indeterminateEndColor": "#1E82E6"
|
|
||||||
},
|
|
||||||
|
|
||||||
"StatusBar.borderColor": "#D1D1D1",
|
|
||||||
|
|
||||||
"ToolWindow.Header.inactiveBackground": "#F2F2F2",
|
|
||||||
|
|
||||||
"Tree.rowHeight": 20
|
|
||||||
},
|
|
||||||
|
|
||||||
"icons": {
|
|
||||||
|
|
||||||
"ColorPalette": {
|
|
||||||
"Checkbox.Border.Default": "#b0b0b0",
|
|
||||||
"Checkbox.Background.Selected": "#4F9EE3",
|
|
||||||
"Checkbox.Border.Selected": "#4B97D9"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,127 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "gruvbox-theme",
|
|
||||||
"dark": true,
|
|
||||||
"author": "Vincent Parizet",
|
|
||||||
"editorScheme": "/gruvbox_theme.xml",
|
|
||||||
"ui": {
|
|
||||||
"*": {
|
|
||||||
"background": "#282828",
|
|
||||||
"foreground": "#fbf1c7",
|
|
||||||
|
|
||||||
"infoForeground": "#ebdbb2",
|
|
||||||
|
|
||||||
"lightSelectionBackground": "#3c3836",
|
|
||||||
"selectionBackground": "#4F4945",
|
|
||||||
"selectionForeground": "#fbf1c7",
|
|
||||||
|
|
||||||
"selectionBackgroundInactive": "#3c3836",
|
|
||||||
|
|
||||||
"selectedBackground": "#1d2021",
|
|
||||||
"selectedForeground": "#fbf1c7",
|
|
||||||
"selectedInactiveBackground": "#3c3836",
|
|
||||||
"selectedBackgroundInactive": "#3c3836",
|
|
||||||
|
|
||||||
"hoverBackground": "#28282866",
|
|
||||||
|
|
||||||
"borderColor": "#3c3836",
|
|
||||||
"disabledBorderColor": "#1d2021",
|
|
||||||
|
|
||||||
"separatorColor": "#3c3836"
|
|
||||||
},
|
|
||||||
"ActionButton": {
|
|
||||||
"hoverBackground": "#504945"
|
|
||||||
},
|
|
||||||
"Button": {
|
|
||||||
"startBackground": "#282828",
|
|
||||||
"endBackground": "#282828",
|
|
||||||
"startBorderColor": "#504945",
|
|
||||||
"endBorderColor": "#504945",
|
|
||||||
|
|
||||||
"default": {
|
|
||||||
"foreground": "#fbf1c7",
|
|
||||||
"startBackground": "#32302F",
|
|
||||||
"endBackground": "#32302F",
|
|
||||||
"startBorderColor": "#4F4945",
|
|
||||||
"endBorderColor": "#4F4945",
|
|
||||||
"focusedBorderColor": "#282828"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ComboBox": {
|
|
||||||
"nonEditableBackground": "#282828",
|
|
||||||
"ArrowButton": {
|
|
||||||
"iconColor": "#fbf1c7",
|
|
||||||
"disabledIconColor": "#fbf1c7",
|
|
||||||
"nonEditableBackground": "#282828"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"EditorTabs": {
|
|
||||||
"selectedBackground": "#3c3836",
|
|
||||||
"underlineColor": "#83a598",
|
|
||||||
"inactiveMaskColor": "#28282866"
|
|
||||||
},
|
|
||||||
"ToolWindow": {
|
|
||||||
"Header": {
|
|
||||||
"background": "#3c3836",
|
|
||||||
"inactiveBackground": "#282828"
|
|
||||||
},
|
|
||||||
|
|
||||||
"HeaderTab": {
|
|
||||||
"selectedInactiveBackground": "#1d2021",
|
|
||||||
"hoverInactiveBackground": "#1d2021"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"Table": {
|
|
||||||
"stripeColor": "#3c3836",
|
|
||||||
"lightSelectionForeground": "#fbf1c7",
|
|
||||||
"lightSelectionInactiveForeground":"#a89984",
|
|
||||||
"lightSelectionBackground": "#504945",
|
|
||||||
"lightSelectionInactiveBackground":"#282828"
|
|
||||||
},
|
|
||||||
"FileColor": {
|
|
||||||
"Yellow": "#fabd2f22",
|
|
||||||
"Green": "#b8bb2622",
|
|
||||||
"Blue": "#83a59822",
|
|
||||||
"Violet": "#d3869b22",
|
|
||||||
"Orange": "#fe801922",
|
|
||||||
"Rose": "#cc241d22"
|
|
||||||
},
|
|
||||||
"Link": {
|
|
||||||
"activeForeground": "#83a598",
|
|
||||||
"hoverForeground": "#83a598",
|
|
||||||
"pressedForeground": "#83a598",
|
|
||||||
"visitedForeground": "#83a598"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"icons": {
|
|
||||||
"ColorPalette": {
|
|
||||||
"Actions.Grey": "#928374",
|
|
||||||
"Actions.Red": "#fb4934",
|
|
||||||
"Actions.Yellow": "#fabd2f",
|
|
||||||
"Actions.Green": "#98971a",
|
|
||||||
"Actions.Blue": "#458588",
|
|
||||||
"Actions.GreyInline.Dark": "#fbf1c7",
|
|
||||||
|
|
||||||
"Objects.Grey": "#928374FF",
|
|
||||||
"Objects.RedStatus": "#fb4934FF",
|
|
||||||
"Objects.Red": "#fb4934FF",
|
|
||||||
"Objects.Pink": "#d3869bFF",
|
|
||||||
"Objects.Yellow": "#fabd2fFF",
|
|
||||||
"Objects.Green": "#98971aFF",
|
|
||||||
"Objects.Blue": "#458588FF",
|
|
||||||
"Objects.Purple": "#b16286FF",
|
|
||||||
"Objects.BlackText": "#000000FF",
|
|
||||||
"Objects.YellowDark": "#d79921FF",
|
|
||||||
"Objects.GreenAndroid": "#b8bb26FF",
|
|
||||||
|
|
||||||
"Checkbox.Background.Default.Dark": "#282828",
|
|
||||||
"Checkbox.Border.Default.Dark": "#fbf1c7",
|
|
||||||
"Checkbox.Foreground.Selected.Dark": "#fbf1c7",
|
|
||||||
"Checkbox.Focus.Wide.Dark": "#458588",
|
|
||||||
"Checkbox.Focus.Thin.Default.Dark": "#458588",
|
|
||||||
"Checkbox.Focus.Thin.Selected.Dark": "#458588",
|
|
||||||
"Checkbox.Background.Disabled.Dark": "#282828",
|
|
||||||
"Checkbox.Border.Disabled.Dark": "#a89984",
|
|
||||||
"Checkbox.Foreground.Disabled.Dark": "#a89984"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -69,19 +69,33 @@
|
|||||||
"sourceCodeUrl": "https://github.com/OlyaB/GreyTheme",
|
"sourceCodeUrl": "https://github.com/OlyaB/GreyTheme",
|
||||||
"sourceCodePath": "blob/master/src/Gray.theme.json"
|
"sourceCodePath": "blob/master/src/Gray.theme.json"
|
||||||
},
|
},
|
||||||
"gruvbox_theme.theme.json": {
|
"gruvbox_dark_hard.theme.json": {
|
||||||
"name": "Gruvbox",
|
"name": "Gruvbox Dark Hard",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"licenseFile": "gruvbox_theme.LICENSE.txt",
|
"licenseFile": "gruvbox_theme.LICENSE.txt",
|
||||||
"sourceCodeUrl": "https://github.com/Vincent-P/gruvbox-intellij-theme",
|
"sourceCodeUrl": "https://github.com/Vincent-P/gruvbox-intellij-theme",
|
||||||
"sourceCodePath": "blob/master/src/main/resources/gruvbox_theme.theme.json"
|
"sourceCodePath": "blob/master/src/main/resources/gruvbox_dark_hard.theme.json"
|
||||||
},
|
},
|
||||||
"Hiberbee.theme.json": {
|
"gruvbox_dark_medium.theme.json": {
|
||||||
"name": "Hiberbee",
|
"name": "Gruvbox Dark Medium",
|
||||||
|
"license": "MIT",
|
||||||
|
"licenseFile": "gruvbox_theme.LICENSE.txt",
|
||||||
|
"sourceCodeUrl": "https://github.com/Vincent-P/gruvbox-intellij-theme",
|
||||||
|
"sourceCodePath": "blob/master/src/main/resources/gruvbox_dark_medium.theme.json"
|
||||||
|
},
|
||||||
|
"gruvbox_dark_soft.theme.json": {
|
||||||
|
"name": "Gruvbox Dark Soft",
|
||||||
|
"license": "MIT",
|
||||||
|
"licenseFile": "gruvbox_theme.LICENSE.txt",
|
||||||
|
"sourceCodeUrl": "https://github.com/Vincent-P/gruvbox-intellij-theme",
|
||||||
|
"sourceCodePath": "blob/master/src/main/resources/gruvbox_dark_soft.theme.json"
|
||||||
|
},
|
||||||
|
"HiberbeeDark.theme.json": {
|
||||||
|
"name": "Hiberbee Dark",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"licenseFile": "Hiberbee.LICENSE.txt",
|
"licenseFile": "Hiberbee.LICENSE.txt",
|
||||||
"sourceCodeUrl": "https://github.com/Hiberbee/code-highlight-themes",
|
"sourceCodeUrl": "https://github.com/Hiberbee/code-highlight-themes",
|
||||||
"sourceCodePath": "blob/master/src/main/resources/Hiberbee.theme.json"
|
"sourceCodePath": "blob/master/src/main/resources/HiberbeeDark.theme.json"
|
||||||
},
|
},
|
||||||
"HighContrast.theme.json": {
|
"HighContrast.theme.json": {
|
||||||
"name": "High contrast",
|
"name": "High contrast",
|
||||||
@@ -90,13 +104,6 @@
|
|||||||
"sourceCodeUrl": "https://github.com/OlyaB/HighContrastTheme",
|
"sourceCodeUrl": "https://github.com/OlyaB/HighContrastTheme",
|
||||||
"sourceCodePath": "blob/master/src/HighContrast.theme.json"
|
"sourceCodePath": "blob/master/src/HighContrast.theme.json"
|
||||||
},
|
},
|
||||||
"Light.theme.json": {
|
|
||||||
"name": "IntelliJ Light Preview",
|
|
||||||
"license": "MIT",
|
|
||||||
"licenseFile": "Light.LICENSE.txt",
|
|
||||||
"sourceCodeUrl": "https://github.com/OlyaB/IntelliJLightTheme",
|
|
||||||
"sourceCodePath": "blob/master/src/Light.theme.json"
|
|
||||||
},
|
|
||||||
"LightFlatTheme.theme.json": {
|
"LightFlatTheme.theme.json": {
|
||||||
"name": "Light Flat",
|
"name": "Light Flat",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|||||||
108
flatlaf-intellij-themes/README.md
Normal file
108
flatlaf-intellij-themes/README.md
Normal file
@@ -0,0 +1,108 @@
|
|||||||
|
FlatLaf IntelliJ Themes Pack
|
||||||
|
============================
|
||||||
|
|
||||||
|
This addon for FlatLaf bundles many popular open-source 3rd party themes from
|
||||||
|
JetBrains Plugins Repository into a JAR and provides Java classes to use them.
|
||||||
|
|
||||||
|
Use [FlatLaf Demo](https://github.com/JFormDesigner/FlatLaf#demo) to try them
|
||||||
|
out.
|
||||||
|
|
||||||
|
|
||||||
|
Download
|
||||||
|
--------
|
||||||
|
|
||||||
|
FlatLaf IntelliJ Themes Pack binaries are available on **JCenter** and **Maven
|
||||||
|
Central**.
|
||||||
|
|
||||||
|
If you use Maven or Gradle, add a dependency with following coordinates to your
|
||||||
|
build script:
|
||||||
|
|
||||||
|
groupId: com.formdev
|
||||||
|
artifactId: flatlaf-intellij-themes
|
||||||
|
version: (see button below)
|
||||||
|
|
||||||
|
Otherwise download `flatlaf-intellij-themes-<version>.jar` here:
|
||||||
|
|
||||||
|
[](https://bintray.com/jformdesigner/flatlaf/flatlaf-intellij-themes/_latestVersion)
|
||||||
|
|
||||||
|
You also need `flatlaf-<version>.jar`, which you can download here:
|
||||||
|
|
||||||
|
[](https://bintray.com/jformdesigner/flatlaf/flatlaf/_latestVersion)
|
||||||
|
|
||||||
|
|
||||||
|
How to use?
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Choose a theme (see list below) and invoke its `install` method. E.g.:
|
||||||
|
|
||||||
|
~~~java
|
||||||
|
FlatArcOrangeIJTheme.install();
|
||||||
|
~~~
|
||||||
|
|
||||||
|
|
||||||
|
Themes
|
||||||
|
------
|
||||||
|
|
||||||
|
This addon contains following themes.
|
||||||
|
|
||||||
|
Name | Class
|
||||||
|
-----|------
|
||||||
|
[Arc](https://gitlab.com/zlamalp/arc-theme-idea) | `com.formdev.flatlaf.intellijthemes.FlatArcIJTheme`
|
||||||
|
[Arc - Orange](https://gitlab.com/zlamalp/arc-theme-idea) | `com.formdev.flatlaf.intellijthemes.FlatArcOrangeIJTheme`
|
||||||
|
[Cyan light](https://github.com/OlyaB/CyanTheme) | `com.formdev.flatlaf.intellijthemes.FlatCyanLightIJTheme`
|
||||||
|
[Dark Flat](https://github.com/nerzhulart/DarkFlatTheme) | `com.formdev.flatlaf.intellijthemes.FlatDarkFlatIJTheme`
|
||||||
|
[Dark purple](https://github.com/OlyaB/DarkPurpleTheme) | `com.formdev.flatlaf.intellijthemes.FlatDarkPurpleIJTheme`
|
||||||
|
[Dracula](https://github.com/dracula/jetbrains) | `com.formdev.flatlaf.intellijthemes.FlatDraculaIJTheme`
|
||||||
|
[Gradianto Dark Fuchsia](https://github.com/thvardhan/Gradianto) | `com.formdev.flatlaf.intellijthemes.FlatGradiantoDarkFuchsiaIJTheme`
|
||||||
|
[Gradianto Deep Ocean](https://github.com/thvardhan/Gradianto) | `com.formdev.flatlaf.intellijthemes.FlatGradiantoDeepOceanIJTheme`
|
||||||
|
[Gradianto Midnight Blue](https://github.com/thvardhan/Gradianto) | `com.formdev.flatlaf.intellijthemes.FlatGradiantoMidnightBlueIJTheme`
|
||||||
|
[Gray](https://github.com/OlyaB/GreyTheme) | `com.formdev.flatlaf.intellijthemes.FlatGrayIJTheme`
|
||||||
|
[Gruvbox Dark Hard](https://github.com/Vincent-P/gruvbox-intellij-theme) | `com.formdev.flatlaf.intellijthemes.FlatGruvboxDarkHardIJTheme`
|
||||||
|
[Gruvbox Dark Medium](https://github.com/Vincent-P/gruvbox-intellij-theme) | `com.formdev.flatlaf.intellijthemes.FlatGruvboxDarkMediumIJTheme`
|
||||||
|
[Gruvbox Dark Soft](https://github.com/Vincent-P/gruvbox-intellij-theme) | `com.formdev.flatlaf.intellijthemes.FlatGruvboxDarkSoftIJTheme`
|
||||||
|
[Hiberbee Dark](https://github.com/Hiberbee/code-highlight-themes) | `com.formdev.flatlaf.intellijthemes.FlatHiberbeeDarkIJTheme`
|
||||||
|
[High contrast](https://github.com/OlyaB/HighContrastTheme) | `com.formdev.flatlaf.intellijthemes.FlatHighContrastIJTheme`
|
||||||
|
[Light Flat](https://github.com/nerzhulart/LightFlatTheme) | `com.formdev.flatlaf.intellijthemes.FlatLightFlatIJTheme`
|
||||||
|
[Material Design Dark](https://github.com/xinkunZ/NotReallyMDTheme) | `com.formdev.flatlaf.intellijthemes.FlatMaterialDesignDarkIJTheme`
|
||||||
|
[Monocai](https://github.com/bmikaili/intellij-monocai-theme) | `com.formdev.flatlaf.intellijthemes.FlatMonocaiIJTheme`
|
||||||
|
[Nord](https://github.com/arcticicestudio/nord-jetbrains) | `com.formdev.flatlaf.intellijthemes.FlatNordIJTheme`
|
||||||
|
[One Dark](https://github.com/one-dark/jetbrains-one-dark-theme) | `com.formdev.flatlaf.intellijthemes.FlatOneDarkIJTheme`
|
||||||
|
[Solarized Dark](https://github.com/snowe2010/solarized-jetbrains) | `com.formdev.flatlaf.intellijthemes.FlatSolarizedDarkIJTheme`
|
||||||
|
[Solarized Light](https://github.com/snowe2010/solarized-jetbrains) | `com.formdev.flatlaf.intellijthemes.FlatSolarizedLightIJTheme`
|
||||||
|
[Spacegray](https://github.com/mturlo/intellij-spacegray) | `com.formdev.flatlaf.intellijthemes.FlatSpacegrayIJTheme`
|
||||||
|
[Vuesion](https://github.com/vuesion/intellij-theme) | `com.formdev.flatlaf.intellijthemes.FlatVuesionIJTheme`
|
||||||
|
|
||||||
|
Material Theme UI Lite:
|
||||||
|
|
||||||
|
Name | Class
|
||||||
|
-----|------
|
||||||
|
[Arc Dark](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatArcDarkIJTheme`
|
||||||
|
[Arc Dark Contrast](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatArcDarkContrastIJTheme`
|
||||||
|
[Atom One Dark](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatAtomOneDarkIJTheme`
|
||||||
|
[Atom One Dark Contrast](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatAtomOneDarkContrastIJTheme`
|
||||||
|
[Atom One Light](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatAtomOneLightIJTheme`
|
||||||
|
[Atom One Light Contrast](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatAtomOneLightContrastIJTheme`
|
||||||
|
[Dracula](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatDraculaIJTheme`
|
||||||
|
[Dracula Contrast](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatDraculaContrastIJTheme`
|
||||||
|
[GitHub](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatGitHubIJTheme`
|
||||||
|
[GitHub Contrast](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatGitHubContrastIJTheme`
|
||||||
|
[Light Owl](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatLightOwlIJTheme`
|
||||||
|
[Light Owl Contrast](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatLightOwlContrastIJTheme`
|
||||||
|
[Material Darker](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialDarkerIJTheme`
|
||||||
|
[Material Darker Contrast](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialDarkerContrastIJTheme`
|
||||||
|
[Material Deep Ocean](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialDeepOceanIJTheme`
|
||||||
|
[Material Deep Ocean Contrast](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialDeepOceanContrastIJTheme`
|
||||||
|
[Material Lighter](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialLighterIJTheme`
|
||||||
|
[Material Lighter Contrast](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialLighterContrastIJTheme`
|
||||||
|
[Material Oceanic](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialOceanicIJTheme`
|
||||||
|
[Material Oceanic Contrast](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialOceanicContrastIJTheme`
|
||||||
|
[Material Palenight](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialPalenightIJTheme`
|
||||||
|
[Material Palenight Contrast](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialPalenightContrastIJTheme`
|
||||||
|
[Monokai Pro](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMonokaiProIJTheme`
|
||||||
|
[Monokai Pro Contrast](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMonokaiProContrastIJTheme`
|
||||||
|
[Night Owl](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatNightOwlIJTheme`
|
||||||
|
[Night Owl Contrast](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatNightOwlContrastIJTheme`
|
||||||
|
[Solarized Dark](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatSolarizedDarkIJTheme`
|
||||||
|
[Solarized Dark Contrast](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatSolarizedDarkContrastIJTheme`
|
||||||
|
[Solarized Light](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatSolarizedLightIJTheme`
|
||||||
|
[Solarized Light Contrast](https://github.com/mallowigi/material-theme-ui-lite) | `com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatSolarizedLightContrastIJTheme`
|
||||||
169
flatlaf-intellij-themes/build.gradle.kts
Normal file
169
flatlaf-intellij-themes/build.gradle.kts
Normal file
@@ -0,0 +1,169 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
`java-library`
|
||||||
|
`maven-publish`
|
||||||
|
id( "com.jfrog.bintray" )
|
||||||
|
id( "com.jfrog.artifactory" )
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation( project( ":flatlaf-core" ) )
|
||||||
|
}
|
||||||
|
|
||||||
|
if( JavaVersion.current() >= JavaVersion.VERSION_1_9 ) {
|
||||||
|
sourceSets {
|
||||||
|
create( "module-info" ) {
|
||||||
|
java {
|
||||||
|
// include "src/main/java" here to get compile errors if classes are
|
||||||
|
// used from other modules that are not specified in module dependencies
|
||||||
|
setSrcDirs( listOf( "src/main/module-info", "src/main/java" ) )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tasks {
|
||||||
|
assemble {
|
||||||
|
dependsOn(
|
||||||
|
"sourcesJar",
|
||||||
|
"javadocJar"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
if( JavaVersion.current() >= JavaVersion.VERSION_1_9 ) {
|
||||||
|
named<JavaCompile>( "compileModuleInfoJava" ) {
|
||||||
|
sourceCompatibility = "9"
|
||||||
|
targetCompatibility = "9"
|
||||||
|
|
||||||
|
dependsOn( ":flatlaf-core:jar" )
|
||||||
|
|
||||||
|
options.compilerArgs.add( "--module-path" )
|
||||||
|
options.compilerArgs.add( project( ":flatlaf-core" ).tasks["jar"].outputs.files.asPath )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
jar {
|
||||||
|
if( JavaVersion.current() >= JavaVersion.VERSION_1_9 ) {
|
||||||
|
from( sourceSets["module-info"].output ) {
|
||||||
|
include( "module-info.class" )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
javadoc {
|
||||||
|
options {
|
||||||
|
this as StandardJavadocDocletOptions
|
||||||
|
tags = listOf( "uiDefault", "clientProperty" )
|
||||||
|
}
|
||||||
|
isFailOnError = false
|
||||||
|
}
|
||||||
|
|
||||||
|
register( "sourcesJar", Jar::class ) {
|
||||||
|
archiveClassifier.set( "sources" )
|
||||||
|
|
||||||
|
from( sourceSets.main.get().allJava )
|
||||||
|
}
|
||||||
|
|
||||||
|
register( "javadocJar", Jar::class ) {
|
||||||
|
archiveClassifier.set( "javadoc" )
|
||||||
|
|
||||||
|
from( javadoc )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
publishing {
|
||||||
|
publications {
|
||||||
|
create<MavenPublication>( "maven" ) {
|
||||||
|
artifactId = "flatlaf-intellij-themes"
|
||||||
|
groupId = "com.formdev"
|
||||||
|
|
||||||
|
from( components["java"] )
|
||||||
|
|
||||||
|
artifact( tasks["sourcesJar"] )
|
||||||
|
artifact( tasks["javadocJar"] )
|
||||||
|
|
||||||
|
pom {
|
||||||
|
name.set( "FlatLaf IntelliJ Themes Pack" )
|
||||||
|
description.set( "Flat Look and Feel IntelliJ Themes Pack" )
|
||||||
|
url.set( "https://github.com/JFormDesigner/FlatLaf" )
|
||||||
|
|
||||||
|
licenses {
|
||||||
|
license {
|
||||||
|
name.set( "The Apache License, Version 2.0" )
|
||||||
|
url.set( "https://www.apache.org/licenses/LICENSE-2.0.txt" )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
developers {
|
||||||
|
developer {
|
||||||
|
name.set( "Karl Tauber" )
|
||||||
|
organization.set( "FormDev Software GmbH" )
|
||||||
|
organizationUrl.set( "https://www.formdev.com/" )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
scm {
|
||||||
|
url.set( "https://github.com/JFormDesigner/FlatLaf" )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bintray {
|
||||||
|
user = rootProject.extra["bintray.user"] as String?
|
||||||
|
key = rootProject.extra["bintray.key"] as String?
|
||||||
|
|
||||||
|
setPublications( "maven" )
|
||||||
|
|
||||||
|
with( pkg ) {
|
||||||
|
repo = "flatlaf"
|
||||||
|
name = "flatlaf-intellij-themes"
|
||||||
|
setLicenses( "Apache-2.0" )
|
||||||
|
vcsUrl = "https://github.com/JFormDesigner/FlatLaf"
|
||||||
|
|
||||||
|
with( version ) {
|
||||||
|
name = project.version.toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
publish = rootProject.extra["bintray.publish"] as Boolean
|
||||||
|
dryRun = rootProject.extra["bintray.dryRun"] as Boolean
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
artifactory {
|
||||||
|
setContextUrl( "https://oss.jfrog.org" )
|
||||||
|
|
||||||
|
publish( closureOf<org.jfrog.gradle.plugin.artifactory.dsl.PublisherConfig> {
|
||||||
|
repository( delegateClosureOf<groovy.lang.GroovyObject> {
|
||||||
|
setProperty( "repoKey", "oss-snapshot-local" )
|
||||||
|
setProperty( "username", rootProject.extra["bintray.user"] as String? )
|
||||||
|
setProperty( "password", rootProject.extra["bintray.key"] as String? )
|
||||||
|
} )
|
||||||
|
|
||||||
|
defaults( delegateClosureOf<groovy.lang.GroovyObject> {
|
||||||
|
invokeMethod( "publications", "maven" )
|
||||||
|
setProperty( "publishArtifacts", true )
|
||||||
|
setProperty( "publishPom", true )
|
||||||
|
} )
|
||||||
|
} )
|
||||||
|
|
||||||
|
resolve( delegateClosureOf<org.jfrog.gradle.plugin.artifactory.dsl.ResolverConfig> {
|
||||||
|
setProperty( "repoKey", "jcenter" )
|
||||||
|
} )
|
||||||
|
}
|
||||||
@@ -0,0 +1,82 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import javax.swing.UIManager.LookAndFeelInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatAllIJThemes
|
||||||
|
{
|
||||||
|
public static final LookAndFeelInfo[] INFOS = {
|
||||||
|
new LookAndFeelInfo( "Arc", "com.formdev.flatlaf.intellijthemes.FlatArcIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Arc - Orange", "com.formdev.flatlaf.intellijthemes.FlatArcOrangeIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Cyan light", "com.formdev.flatlaf.intellijthemes.FlatCyanLightIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Dark Flat", "com.formdev.flatlaf.intellijthemes.FlatDarkFlatIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Dark purple", "com.formdev.flatlaf.intellijthemes.FlatDarkPurpleIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Dracula", "com.formdev.flatlaf.intellijthemes.FlatDraculaIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Gradianto Dark Fuchsia", "com.formdev.flatlaf.intellijthemes.FlatGradiantoDarkFuchsiaIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Gradianto Deep Ocean", "com.formdev.flatlaf.intellijthemes.FlatGradiantoDeepOceanIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Gradianto Midnight Blue", "com.formdev.flatlaf.intellijthemes.FlatGradiantoMidnightBlueIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Gray", "com.formdev.flatlaf.intellijthemes.FlatGrayIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Gruvbox Dark Hard", "com.formdev.flatlaf.intellijthemes.FlatGruvboxDarkHardIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Gruvbox Dark Medium", "com.formdev.flatlaf.intellijthemes.FlatGruvboxDarkMediumIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Gruvbox Dark Soft", "com.formdev.flatlaf.intellijthemes.FlatGruvboxDarkSoftIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Hiberbee Dark", "com.formdev.flatlaf.intellijthemes.FlatHiberbeeDarkIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "High contrast", "com.formdev.flatlaf.intellijthemes.FlatHighContrastIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Light Flat", "com.formdev.flatlaf.intellijthemes.FlatLightFlatIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Material Design Dark", "com.formdev.flatlaf.intellijthemes.FlatMaterialDesignDarkIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Monocai", "com.formdev.flatlaf.intellijthemes.FlatMonocaiIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Nord", "com.formdev.flatlaf.intellijthemes.FlatNordIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "One Dark", "com.formdev.flatlaf.intellijthemes.FlatOneDarkIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Solarized Dark", "com.formdev.flatlaf.intellijthemes.FlatSolarizedDarkIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Solarized Light", "com.formdev.flatlaf.intellijthemes.FlatSolarizedLightIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Spacegray", "com.formdev.flatlaf.intellijthemes.FlatSpacegrayIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Vuesion", "com.formdev.flatlaf.intellijthemes.FlatVuesionIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Arc Dark", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatArcDarkIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Arc Dark Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatArcDarkContrastIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Atom One Dark", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatAtomOneDarkIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Atom One Dark Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatAtomOneDarkContrastIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Atom One Light", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatAtomOneLightIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Atom One Light Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatAtomOneLightContrastIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Dracula", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatDraculaIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Dracula Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatDraculaContrastIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "GitHub", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatGitHubIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "GitHub Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatGitHubContrastIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Light Owl", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatLightOwlIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Light Owl Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatLightOwlContrastIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Material Darker", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialDarkerIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Material Darker Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialDarkerContrastIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Material Deep Ocean", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialDeepOceanIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Material Deep Ocean Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialDeepOceanContrastIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Material Lighter", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialLighterIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Material Lighter Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialLighterContrastIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Material Oceanic", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialOceanicIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Material Oceanic Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialOceanicContrastIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Material Palenight", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialPalenightIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Material Palenight Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMaterialPalenightContrastIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Monokai Pro", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMonokaiProIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Monokai Pro Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatMonokaiProContrastIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Night Owl", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatNightOwlIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Night Owl Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatNightOwlContrastIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Solarized Dark", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatSolarizedDarkIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Solarized Dark Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatSolarizedDarkContrastIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Solarized Light", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatSolarizedLightIJTheme" ),
|
||||||
|
new LookAndFeelInfo( "Solarized Light Contrast", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatSolarizedLightContrastIJTheme" ),
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatArcIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatArcIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatArcIJTheme() {
|
||||||
|
super( Utils.loadTheme( "arc-theme.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatArcOrangeIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatArcOrangeIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatArcOrangeIJTheme() {
|
||||||
|
super( Utils.loadTheme( "arc-theme-orange.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatCyanLightIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatCyanLightIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatCyanLightIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Cyan.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatDarkFlatIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatDarkFlatIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatDarkFlatIJTheme() {
|
||||||
|
super( Utils.loadTheme( "DarkFlatTheme.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatDarkPurpleIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatDarkPurpleIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatDarkPurpleIJTheme() {
|
||||||
|
super( Utils.loadTheme( "DarkPurple.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatDraculaIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatDraculaIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatDraculaIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Dracula.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatGradiantoDarkFuchsiaIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatGradiantoDarkFuchsiaIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatGradiantoDarkFuchsiaIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Gradianto_dark_fuchsia.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatGradiantoDeepOceanIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatGradiantoDeepOceanIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatGradiantoDeepOceanIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Gradianto_deep_ocean.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatGradiantoMidnightBlueIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatGradiantoMidnightBlueIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatGradiantoMidnightBlueIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Gradianto_midnight_blue.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatGrayIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatGrayIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatGrayIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Gray.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatGruvboxDarkHardIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatGruvboxDarkHardIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatGruvboxDarkHardIJTheme() {
|
||||||
|
super( Utils.loadTheme( "gruvbox_dark_hard.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatGruvboxDarkMediumIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatGruvboxDarkMediumIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatGruvboxDarkMediumIJTheme() {
|
||||||
|
super( Utils.loadTheme( "gruvbox_dark_medium.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatGruvboxDarkSoftIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatGruvboxDarkSoftIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatGruvboxDarkSoftIJTheme() {
|
||||||
|
super( Utils.loadTheme( "gruvbox_dark_soft.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatHiberbeeDarkIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatHiberbeeDarkIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatHiberbeeDarkIJTheme() {
|
||||||
|
super( Utils.loadTheme( "HiberbeeDark.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatHighContrastIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatHighContrastIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatHighContrastIJTheme() {
|
||||||
|
super( Utils.loadTheme( "HighContrast.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatLightFlatIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatLightFlatIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatLightFlatIJTheme() {
|
||||||
|
super( Utils.loadTheme( "LightFlatTheme.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatMaterialDesignDarkIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatMaterialDesignDarkIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatMaterialDesignDarkIJTheme() {
|
||||||
|
super( Utils.loadTheme( "MaterialTheme.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatMonocaiIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatMonocaiIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatMonocaiIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Monocai.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatNordIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatNordIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatNordIJTheme() {
|
||||||
|
super( Utils.loadTheme( "nord.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatOneDarkIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatOneDarkIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatOneDarkIJTheme() {
|
||||||
|
super( Utils.loadTheme( "one_dark.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatSolarizedDarkIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatSolarizedDarkIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatSolarizedDarkIJTheme() {
|
||||||
|
super( Utils.loadTheme( "solarized_dark_theme.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatSolarizedLightIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatSolarizedLightIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatSolarizedLightIJTheme() {
|
||||||
|
super( Utils.loadTheme( "solarized_light_theme.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatSpacegrayIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatSpacegrayIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatSpacegrayIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Spacegray.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatVuesionIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatVuesionIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatVuesionIJTheme() {
|
||||||
|
super( Utils.loadTheme( "vuesion_theme.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
import com.formdev.flatlaf.FlatLaf;
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
class Utils
|
||||||
|
{
|
||||||
|
static final Logger LOG = Logger.getLogger( FlatLaf.class.getName() );
|
||||||
|
|
||||||
|
static IntelliJTheme loadTheme( String name ) {
|
||||||
|
try {
|
||||||
|
return new IntelliJTheme( Utils.class.getResourceAsStream(
|
||||||
|
"/com/formdev/flatlaf/intellijthemes/themes/" + name ) );
|
||||||
|
} catch( IOException ex ) {
|
||||||
|
String msg = "FlatLaf: Failed to load IntelliJ theme '" + name + "'";
|
||||||
|
LOG.log( Level.SEVERE, msg, ex );
|
||||||
|
throw new RuntimeException( msg, ex );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatArcDarkContrastIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatArcDarkContrastIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatArcDarkContrastIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Arc Dark Contrast.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatArcDarkIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatArcDarkIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatArcDarkIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Arc Dark.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatAtomOneDarkContrastIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatAtomOneDarkContrastIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatAtomOneDarkContrastIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Atom One Dark Contrast.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatAtomOneDarkIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatAtomOneDarkIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatAtomOneDarkIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Atom One Dark.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatAtomOneLightContrastIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatAtomOneLightContrastIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatAtomOneLightContrastIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Atom One Light Contrast.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatAtomOneLightIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatAtomOneLightIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatAtomOneLightIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Atom One Light.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatDraculaContrastIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatDraculaContrastIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatDraculaContrastIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Dracula Contrast.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatDraculaIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatDraculaIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatDraculaIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Dracula.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatGitHubContrastIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatGitHubContrastIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatGitHubContrastIJTheme() {
|
||||||
|
super( Utils.loadTheme( "GitHub Contrast.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatGitHubIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatGitHubIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatGitHubIJTheme() {
|
||||||
|
super( Utils.loadTheme( "GitHub.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatLightOwlContrastIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatLightOwlContrastIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatLightOwlContrastIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Light Owl Contrast.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatLightOwlIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatLightOwlIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatLightOwlIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Light Owl.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatMaterialDarkerContrastIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatMaterialDarkerContrastIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatMaterialDarkerContrastIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Material Darker Contrast.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatMaterialDarkerIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatMaterialDarkerIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatMaterialDarkerIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Material Darker.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatMaterialDeepOceanContrastIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatMaterialDeepOceanContrastIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatMaterialDeepOceanContrastIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Material Deep Ocean Contrast.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatMaterialDeepOceanIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatMaterialDeepOceanIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatMaterialDeepOceanIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Material Deep Ocean.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatMaterialLighterContrastIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatMaterialLighterContrastIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatMaterialLighterContrastIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Material Lighter Contrast.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatMaterialLighterIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatMaterialLighterIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatMaterialLighterIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Material Lighter.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatMaterialOceanicContrastIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatMaterialOceanicContrastIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatMaterialOceanicContrastIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Material Oceanic Contrast.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatMaterialOceanicIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatMaterialOceanicIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatMaterialOceanicIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Material Oceanic.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatMaterialPalenightContrastIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatMaterialPalenightContrastIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatMaterialPalenightContrastIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Material Palenight Contrast.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatMaterialPalenightIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatMaterialPalenightIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatMaterialPalenightIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Material Palenight.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatMonokaiProContrastIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatMonokaiProContrastIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatMonokaiProContrastIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Monokai Pro Contrast.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatMonokaiProIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatMonokaiProIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatMonokaiProIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Monokai Pro.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatNightOwlContrastIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatNightOwlContrastIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatNightOwlContrastIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Night Owl Contrast.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatNightOwlIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatNightOwlIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatNightOwlIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Night Owl.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatSolarizedDarkContrastIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatSolarizedDarkContrastIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatSolarizedDarkContrastIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Solarized Dark Contrast.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatSolarizedDarkIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatSolarizedDarkIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatSolarizedDarkIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Solarized Dark.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatSolarizedLightContrastIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatSolarizedLightContrastIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatSolarizedLightContrastIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Solarized Light Contrast.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
public class FlatSolarizedLightIJTheme
|
||||||
|
extends IntelliJTheme.ThemeLaf
|
||||||
|
{
|
||||||
|
public static boolean install( ) {
|
||||||
|
try {
|
||||||
|
return install( new FlatSolarizedLightIJTheme() );
|
||||||
|
} catch( RuntimeException ex ) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public FlatSolarizedLightIJTheme() {
|
||||||
|
super( Utils.loadTheme( "Solarized Light.theme.json" ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
import com.formdev.flatlaf.FlatLaf;
|
||||||
|
import com.formdev.flatlaf.IntelliJTheme;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
class Utils
|
||||||
|
{
|
||||||
|
static final Logger LOG = Logger.getLogger( FlatLaf.class.getName() );
|
||||||
|
|
||||||
|
static IntelliJTheme loadTheme( String name ) {
|
||||||
|
try {
|
||||||
|
return new IntelliJTheme( Utils.class.getResourceAsStream(
|
||||||
|
"/com/formdev/flatlaf/intellijthemes/themes/material-theme-ui-lite/" + name ) );
|
||||||
|
} catch( IOException ex ) {
|
||||||
|
String msg = "FlatLaf: Failed to load IntelliJ theme '" + name + "'";
|
||||||
|
LOG.log( Level.SEVERE, msg, ex );
|
||||||
|
throw new RuntimeException( msg, ex );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2020 FormDev Software GmbH
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Karl Tauber
|
||||||
|
*/
|
||||||
|
module com.formdev.flatlaf.intellijthemes {
|
||||||
|
requires java.desktop;
|
||||||
|
requires java.logging;
|
||||||
|
requires com.formdev.flatlaf;
|
||||||
|
|
||||||
|
exports com.formdev.flatlaf.intellijthemes;
|
||||||
|
exports com.formdev.flatlaf.intellijthemes.materialthemeuilite;
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user