Compare commits

...

23 Commits
2.1 ... 2.2

Author SHA1 Message Date
Karl Tauber
024b6daaf6 release 2.2 2022-04-25 19:36:43 +02:00
Karl Tauber
bd5512c121 SplitPane: allow limiting one-touch expanding to a single side (issue #355) 2022-04-23 17:13:32 +02:00
Karl Tauber
9afce83a02 SplitPane: added missing BasicSplitPaneDivider properties to javadoc 2022-04-23 16:19:04 +02:00
Karl Tauber
07a8bd9486 ComboBox: added missing BasicComboPopup properties to javadoc 2022-04-22 10:55:25 +02:00
Karl Tauber
bcdc0a8fce IntelliJ Themes: added "Monokai Pro" and "Xcode-Dark" themes 2022-04-21 22:03:05 +02:00
Karl Tauber
b295809432 IntelliJ Themes: updated themes to newest versions (used IJThemesUpdater) 2022-04-21 22:02:09 +02:00
Karl Tauber
52763ab932 GitHub Actions:
- natives.yml: include core natives in artifacts
- updated versions of used actions
2022-04-21 14:18:27 +02:00
Karl Tauber
99666265c9 gradle:
- use gradle `cpp-library` plugin instead of 3rd party plugin
- build natives only via task `build-natives`
2022-04-21 12:58:16 +02:00
Karl Tauber
af3e280d74 Table: slightly changed grid colors to make grid better recognizable (issue #514) 2022-04-19 23:00:01 +02:00
Karl Tauber
b57e4c0565 TabbedPane: selected tab underline color now changes depending on whether the focus is within the tab content (issue #398) 2022-04-19 22:19:47 +02:00
Karl Tauber
aca9931560 IntelliJ Themes: TabbedPane: use DefaultTabs.underlinedTabBackground and DefaultTabs.underlinedTabForeground from JSON themes for selected tab background/foreground 2022-04-19 16:50:27 +02:00
Karl Tauber
d09e166e4a SplitPane: fixed StackOverflowError caused by layout loop that may occur under special circumstances (issue #513) 2022-04-12 13:47:04 +02:00
Karl Tauber
68a7a60ff2 FileChooser: enabled full row selection for details view to fix alternate row coloring (issue #512) 2022-04-12 13:28:39 +02:00
Karl Tauber
f21261914b gradle: build target flatlaf-natives-windows only on Windows
(to fix build error on macOS)
2022-04-09 18:34:36 +02:00
Karl Tauber
7b11339fdc update to Gradle 7.4.2
./gradlew wrapper --gradle-version=7.4.2
2022-04-09 18:18:45 +02:00
Karl Tauber
081fd43d98 IntelliJ Themes: Component.accentColor UI property now has useful theme specific values (issue #507) 2022-04-07 18:07:09 +02:00
Karl Tauber
ef2eedfc7c Button: fixed icon layout and preferred width of default buttons that use bold font (issue #506) 2022-04-06 23:36:58 +02:00
Karl Tauber
0dba9265be ToolBar: fixed endless loop in focus navigation that may occur under special circumstances (issue #505) 2022-04-06 18:53:45 +02:00
Karl Tauber
301aae9b8e NativeLibrary: use System.mapLibraryName() instead of own implementation 2022-03-19 11:07:46 +01:00
Karl Tauber
c63f4e9662 Window decorations on Linux: limit window resizing/moving to left mouse button (issue #482) 2022-03-18 00:05:15 +01:00
Karl Tauber
47508dc6ac Native window decorations: updated DLLs (issue #502)
built by GitHub Actions:
https://github.com/JFormDesigner/FlatLaf/actions/runs/2000978687
2022-03-17 22:48:01 +01:00
Karl Tauber
3a8879608a Native window decorations: fixed wrong window title character encoding used in Windows taskbar (issue #502) 2022-03-17 22:31:18 +01:00
Karl Tauber
b221889549 updated sigtest for FlatLaf 2.1
(generated in clean workspace with gradle task `sigtestGenerate`)
2022-03-17 18:34:44 +01:00
75 changed files with 15071 additions and 2938 deletions

View File

@@ -28,13 +28,13 @@ jobs:
- 17 # LTS
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: gradle/wrapper-validation-action@v1
if: matrix.java == '8'
- name: Setup Java ${{ matrix.java }}
uses: actions/setup-java@v2
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java }}
distribution: adopt # Java 8 and 11 are pre-installed on ubuntu-latest
@@ -44,7 +44,7 @@ jobs:
run: ./gradlew build
- name: Upload artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
if: matrix.java == '11'
with:
name: FlatLaf-build-artifacts
@@ -63,10 +63,10 @@ jobs:
github.repository == 'JFormDesigner/FlatLaf'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Setup Java 11
uses: actions/setup-java@v2
uses: actions/setup-java@v3
with:
java-version: 11
distribution: adopt # pre-installed on ubuntu-latest
@@ -99,10 +99,10 @@ jobs:
github.repository == 'JFormDesigner/FlatLaf'
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Setup Java 11
uses: actions/setup-java@v2
uses: actions/setup-java@v3
with:
java-version: 11
distribution: adopt # pre-installed on ubuntu-latest

View File

@@ -25,12 +25,12 @@ jobs:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- uses: gradle/wrapper-validation-action@v1
- name: Setup Java 11
uses: actions/setup-java@v2
uses: actions/setup-java@v3
with:
java-version: 11
distribution: adopt
@@ -39,11 +39,12 @@ jobs:
- name: Build with Gradle
# --no-daemon is necessary on Windows otherwise caching Gradle would fail with:
# tar.exe: Couldn't open ~/.gradle/caches/modules-2/modules-2.lock: Permission denied
run: ./gradlew :flatlaf-natives-windows:build --no-daemon
run: ./gradlew :flatlaf-natives-windows:build-natives --no-daemon
- name: Upload artifacts
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: FlatLaf-natives-windows-build-artifacts
path: |
flatlaf-core/src/main/resources/com/formdev/flatlaf/natives
flatlaf-natives/flatlaf-natives-windows/build

View File

@@ -1,6 +1,37 @@
FlatLaf Change Log
==================
## 2.2
#### New features and improvements
- SplitPane: Allow limiting one-touch expanding to a single side (set client
property `JSplitPane.expandableSide` to `"left"` or `"right"`). (issue #355)
- TabbedPane: Selected tab underline color now changes depending on whether the
focus is within the tab content. (issue #398)
- IntelliJ Themes:
- Added "Monokai Pro" and "Xcode-Dark" themes.
- TabbedPane now use different background color for selected tabs in all "Arc"
themes, in "Hiberbee Dark" and in all "Material UI Lite" themes.
#### Fixed bugs
- Native window decorations (Windows 10/11 only): Fixed wrong window title
character encoding used in Windows taskbar. (issue #502)
- Button: Fixed icon layout and preferred width of default buttons that use bold
font. (issue #506)
- FileChooser: Enabled full row selection for details view to fix alternate row
coloring. (issue #512)
- SplitPane: Fixed `StackOverflowError` caused by layout loop that may occur
under special circumstances. (issue #513)
- Table: Slightly changed grid colors to make grid better recognizable. (issue
#514)
- ToolBar: Fixed endless loop in focus navigation that may occur under special
circumstances. (issue #505)
- IntelliJ Themes: `Component.accentColor` UI property now has useful theme
specific values. (issue #507)
## 2.1
#### New features and improvements

View File

@@ -14,8 +14,8 @@
* limitations under the License.
*/
val releaseVersion = "2.1"
val developmentVersion = "2.2-SNAPSHOT"
val releaseVersion = "2.2"
val developmentVersion = "2.3-SNAPSHOT"
version = if( java.lang.Boolean.getBoolean( "release" ) ) releaseVersion else developmentVersion

View File

@@ -43,11 +43,6 @@ tasks {
options.headerOutputDirectory.set( buildDir.resolve( "generated/jni-headers" ) )
}
processResources {
// build native libraries
dependsOn( ":flatlaf-natives-windows:assemble" )
}
jar {
archiveBaseName.set( "flatlaf" )

View File

@@ -1,5 +1,5 @@
#Signature file v4.1
#Version 2.0
#Version 2.1
CLSS public abstract interface com.formdev.flatlaf.FlatClientProperties
fld public final static java.lang.String BUTTON_TYPE = "JButton.buttonType"
@@ -216,7 +216,7 @@ meth public void setExtraDefaults(java.util.Map<java.lang.String,java.lang.Strin
meth public void uninitialize()
meth public void unregisterUIDefaultsGetter(java.util.function.Function<java.lang.Object,java.lang.Object>)
supr javax.swing.plaf.basic.BasicLookAndFeel
hfds DESKTOPFONTHINTS,aquaLoaded,customDefaultsSources,desktopPropertyListener,desktopPropertyName,desktopPropertyName2,extraDefaults,globalExtraDefaults,mnemonicHandler,oldPopupFactory,postInitialization,uiDefaultsGetters,updateUIPending
hfds DESKTOPFONTHINTS,aquaLoaded,customDefaultsSources,desktopPropertyListener,desktopPropertyName,desktopPropertyName2,extraDefaults,globalExtraDefaults,mnemonicHandler,oldPopupFactory,postInitialization,subMenuUsabilityHelper,uiDefaultsGetters,updateUIPending
hcls ActiveFont,FlatUIDefaults,ImageIconUIResource
CLSS public abstract interface static com.formdev.flatlaf.FlatLaf$DisabledIconProvider

View File

@@ -391,6 +391,40 @@ public interface FlatClientProperties
*/
String SCROLL_PANE_SMOOTH_SCROLLING = "JScrollPane.smoothScrolling";
//---- JSplitPane ---------------------------------------------------------
/**
* Specifies what side of the spilt pane is allowed to expand
* via one-touch expanding arrow buttons.
* Requires that one-touch expanding is enabled with
* {@link javax.swing.JSplitPane#setOneTouchExpandable(boolean)}.
* <p>
* <strong>Component</strong> {@link javax.swing.JSplitPane}<br>
* <strong>Value type</strong> {@link java.lang.String}<br>
* <strong>Allowed Values</strong>
* {@link #SPLIT_PANE_EXPANDABLE_SIDE_LEFT} or
* {@link #SPLIT_PANE_EXPANDABLE_SIDE_RIGHT}
*
* @since 2.2
*/
String SPLIT_PANE_EXPANDABLE_SIDE = "JSplitPane.expandableSide";
/**
* Allow expanding only left/top side of the split pane.
*
* @see #SPLIT_PANE_EXPANDABLE_SIDE
* @since 2.2
*/
String SPLIT_PANE_EXPANDABLE_SIDE_LEFT = "left";
/**
* Allow expanding only right/bottom side of the split pane.
*
* @see #SPLIT_PANE_EXPANDABLE_SIDE
* @since 2.2
*/
String SPLIT_PANE_EXPANDABLE_SIDE_RIGHT = "right";
//---- JTabbedPane --------------------------------------------------------
/**

View File

@@ -37,6 +37,7 @@ import com.formdev.flatlaf.json.ParseException;
import com.formdev.flatlaf.util.ColorFunctions;
import com.formdev.flatlaf.util.LoggingFacade;
import com.formdev.flatlaf.util.StringUtils;
import com.formdev.flatlaf.util.SystemInfo;
/**
* This class supports loading IntelliJ .theme.json files and using them as a Laf.
@@ -162,8 +163,11 @@ public class IntelliJTheme
applyCheckBoxColors( defaults );
// copy values
for( Map.Entry<String, String> e : uiKeyCopying.entrySet() )
defaults.put( e.getKey(), defaults.get( e.getValue() ) );
for( Map.Entry<String, String> e : uiKeyCopying.entrySet() ) {
Object value = defaults.get( e.getValue() );
if( value != null )
defaults.put( e.getKey(), value );
}
// IDEA does not paint button background if disabled, but FlatLaf does
Object panelBackground = defaults.get( "Panel.background" );
@@ -311,8 +315,19 @@ public class IntelliJTheme
@SuppressWarnings( "unchecked" )
private void apply( String key, Object value, UIDefaults defaults, ArrayList<Object> defaultsKeysCache, Set<String> uiKeys ) {
if( value instanceof Map ) {
for( Map.Entry<String, Object> e : ((Map<String, Object>)value).entrySet() )
apply( key + '.' + e.getKey(), e.getValue(), defaults, defaultsKeysCache, uiKeys );
Map<String, Object> map = (Map<String, Object>)value;
if( map.containsKey( "os.default" ) || map.containsKey( "os.windows" ) || map.containsKey( "os.mac" ) || map.containsKey( "os.linux" ) ) {
String osKey = SystemInfo.isWindows ? "os.windows"
: SystemInfo.isMacOS ? "os.mac"
: SystemInfo.isLinux ? "os.linux" : null;
if( osKey != null && map.containsKey( osKey ) )
apply( key, map.get( osKey ), defaults, defaultsKeysCache, uiKeys );
else if( map.containsKey( "os.default" ) )
apply( key, map.get( "os.default" ), defaults, defaultsKeysCache, uiKeys );
} else {
for( Map.Entry<String, Object> e : map.entrySet() )
apply( key + '.' + e.getKey(), e.getValue(), defaults, defaultsKeysCache, uiKeys );
}
} else {
if( "".equals( value ) )
return; // ignore empty value
@@ -612,6 +627,11 @@ public class IntelliJTheme
uiKeyCopying.put( "Spinner.buttonSeparatorColor", "Component.borderColor" );
uiKeyCopying.put( "Spinner.buttonDisabledSeparatorColor", "Component.disabledBorderColor" );
// TabbedPane
uiKeyCopying.put( "TabbedPane.selectedBackground", "DefaultTabs.underlinedTabBackground" );
uiKeyCopying.put( "TabbedPane.selectedForeground", "DefaultTabs.underlinedTabForeground" );
uiKeyCopying.put( "TabbedPane.inactiveUnderlineColor", "DefaultTabs.inactiveUnderlineColor" );
// TitlePane
uiKeyCopying.put( "TitlePane.inactiveBackground", "TitlePane.background" );
uiKeyMapping.put( "TitlePane.infoForeground", "TitlePane.foreground" );

View File

@@ -42,6 +42,7 @@ import javax.swing.JTextField;
import javax.swing.JToggleButton;
import javax.swing.JToolBar;
import javax.swing.LookAndFeel;
import javax.swing.SwingConstants;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.plaf.ButtonUI;
@@ -494,6 +495,23 @@ public class FlatButtonUI
super.paint( FlatLabelUI.createGraphicsHTMLTextYCorrection( g, c ), c );
}
@Override
protected void paintIcon( Graphics g, JComponent c, Rectangle iconRect ) {
// correct icon location when using bold font for default button
int xOffset = defaultBoldPlainWidthDiff( c ) / 2;
if( xOffset > 0 ) {
boolean ltr = c.getComponentOrientation().isLeftToRight();
switch( ((AbstractButton)c).getHorizontalTextPosition() ) {
case SwingConstants.RIGHT: iconRect.x -= xOffset; break;
case SwingConstants.LEFT: iconRect.x += xOffset; break;
case SwingConstants.TRAILING: iconRect.x -= ltr ? xOffset : -xOffset; break;
case SwingConstants.LEADING: iconRect.x += ltr ? xOffset : -xOffset; break;
}
}
super.paintIcon( g, c, iconRect );
}
@Override
protected void paintText( Graphics g, AbstractButton b, Rectangle textRect, String text ) {
if( isHelpButton( b ) )
@@ -624,6 +642,9 @@ public class FlatButtonUI
if( prefSize == null )
return null;
// increase width when using bold font for default button
prefSize.width += defaultBoldPlainWidthDiff( c );
// make square or apply minimum width/height
boolean isIconOnlyOrSingleCharacter = isIconOnlyOrSingleCharacterButton( c );
if( clientPropertyBoolean( c, SQUARE_SIZE, squareSize ) ) {
@@ -644,6 +665,23 @@ public class FlatButtonUI
return prefSize;
}
private int defaultBoldPlainWidthDiff( JComponent c ) {
if( defaultBoldText && isDefaultButton( c ) && c.getFont() instanceof UIResource ) {
String text = ((AbstractButton)c).getText();
if( text == null || text.isEmpty() )
return 0;
Font font = c.getFont();
Font boldFont = font.deriveFont( Font.BOLD );
int boldWidth = c.getFontMetrics( boldFont ).stringWidth( text );
int plainWidth = c.getFontMetrics( font ).stringWidth( text );
if( boldWidth > plainWidth )
return boldWidth - plainWidth;
}
return 0;
}
private boolean hasDefaultMargins( JComponent c ) {
Insets margin = ((AbstractButton)c).getMargin();
return margin instanceof UIResource && Objects.equals( margin, defaultMargin );

View File

@@ -86,6 +86,11 @@ import com.formdev.flatlaf.util.SystemInfo;
* @uiDefault ComboBox.padding Insets
* @uiDefault ComboBox.squareButton boolean default is true
*
* <!-- BasicComboPopup -->
*
* @uiDefault ComboBox.selectionBackground Color
* @uiDefault ComboBox.selectionForeground Color
*
* <!-- FlatComboBoxUI -->
*
* @uiDefault ComboBox.minimumWidth int

View File

@@ -34,6 +34,7 @@ import javax.swing.UIManager;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicSplitPaneDivider;
import javax.swing.plaf.basic.BasicSplitPaneUI;
import com.formdev.flatlaf.FlatClientProperties;
import com.formdev.flatlaf.ui.FlatStylingSupport.Styleable;
import com.formdev.flatlaf.ui.FlatStylingSupport.StyleableUI;
import com.formdev.flatlaf.ui.FlatStylingSupport.UnknownStyleException;
@@ -52,6 +53,13 @@ import com.formdev.flatlaf.util.UIScale;
* @uiDefault SplitPaneDivider.border Border
* @uiDefault SplitPaneDivider.draggingColor Color only used if continuousLayout is false
*
* <!-- BasicSplitPaneDivider -->
*
* @uiDefault SplitPane.oneTouchButtonSize int
* @uiDefault SplitPane.oneTouchButtonOffset int
* @uiDefault SplitPane.centerOneTouchButtons boolean
* @uiDefault SplitPane.supportsOneTouchButtons boolean optional; default is true
*
* <!-- JSplitPane -->
*
* @uiDefault SplitPane.continuousLayout boolean
@@ -235,7 +243,7 @@ public class FlatSplitPaneUI
switch( e.getPropertyName() ) {
case JSplitPane.DIVIDER_LOCATION_PROPERTY:
// necessary to show/hide one-touch buttons on expand/collapse
revalidate();
doLayout();
break;
}
}
@@ -345,7 +353,7 @@ public class FlatSplitPaneUI
if( leftButton == null || rightButton == null || !splitPane.isOneTouchExpandable() )
return;
// increase side of buttons, which makes them easier to hit by the user
// increase size of buttons, which makes them easier to hit by the user
// and avoids cut arrows at small divider sizes
int extraSize = UIScale.scale( 4 );
if( orientation == JSplitPane.VERTICAL_SPLIT ) {
@@ -360,10 +368,19 @@ public class FlatSplitPaneUI
// hide buttons if not applicable
boolean leftCollapsed = isLeftCollapsed();
if( leftCollapsed )
boolean rightCollapsed = isRightCollapsed();
if( leftCollapsed || rightCollapsed ) {
leftButton.setVisible( !leftCollapsed );
rightButton.setVisible( !rightCollapsed );
} else {
Object expandableSide = splitPane.getClientProperty( FlatClientProperties.SPLIT_PANE_EXPANDABLE_SIDE );
leftButton.setVisible( expandableSide == null || !FlatClientProperties.SPLIT_PANE_EXPANDABLE_SIDE_LEFT.equals( expandableSide ) );
rightButton.setVisible( expandableSide == null || !FlatClientProperties.SPLIT_PANE_EXPANDABLE_SIDE_RIGHT.equals( expandableSide ) );
}
// move right button if left button is hidden
if( !leftButton.isVisible() )
rightButton.setLocation( leftButton.getLocation() );
leftButton.setVisible( !leftCollapsed );
rightButton.setVisible( !isRightCollapsed() );
}
}
}

View File

@@ -59,6 +59,7 @@ import java.util.Map;
import java.util.Set;
import java.util.function.BiConsumer;
import java.util.function.IntConsumer;
import java.util.function.Predicate;
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.swing.Action;
@@ -82,10 +83,12 @@ import javax.swing.event.ChangeListener;
import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.TabbedPaneUI;
import javax.swing.plaf.UIResource;
import javax.swing.plaf.basic.BasicTabbedPaneUI;
import javax.swing.text.JTextComponent;
import javax.swing.text.View;
import com.formdev.flatlaf.FlatClientProperties;
import com.formdev.flatlaf.FlatLaf;
import com.formdev.flatlaf.icons.FlatTabbedPaneCloseIcon;
import com.formdev.flatlaf.ui.FlatStylingSupport.Styleable;
@@ -127,6 +130,7 @@ import com.formdev.flatlaf.util.UIScale;
* @uiDefault TabbedPane.selectedBackground Color optional
* @uiDefault TabbedPane.selectedForeground Color
* @uiDefault TabbedPane.underlineColor Color
* @uiDefault TabbedPane.inactiveUnderlineColor Color
* @uiDefault TabbedPane.disabledUnderlineColor Color
* @uiDefault TabbedPane.hoverColor Color
* @uiDefault TabbedPane.focusColor Color
@@ -198,6 +202,7 @@ public class FlatTabbedPaneUI
@Styleable protected Color selectedBackground;
@Styleable protected Color selectedForeground;
@Styleable protected Color underlineColor;
/** @since 2.2 */ @Styleable protected Color inactiveUnderlineColor;
@Styleable protected Color disabledUnderlineColor;
@Styleable protected Color hoverColor;
@Styleable protected Color focusColor;
@@ -288,6 +293,7 @@ public class FlatTabbedPaneUI
super.installUI( c );
FlatSelectedTabRepainter.install();
installStyle();
}
@@ -318,6 +324,7 @@ public class FlatTabbedPaneUI
selectedBackground = UIManager.getColor( "TabbedPane.selectedBackground" );
selectedForeground = UIManager.getColor( "TabbedPane.selectedForeground" );
underlineColor = UIManager.getColor( "TabbedPane.underlineColor" );
inactiveUnderlineColor = FlatUIUtils.getUIColor( "TabbedPane.inactiveUnderlineColor", underlineColor );
disabledUnderlineColor = UIManager.getColor( "TabbedPane.disabledUnderlineColor" );
hoverColor = UIManager.getColor( "TabbedPane.hoverColor" );
focusColor = UIManager.getColor( "TabbedPane.focusColor" );
@@ -385,6 +392,7 @@ public class FlatTabbedPaneUI
selectedBackground = null;
selectedForeground = null;
underlineColor = null;
inactiveUnderlineColor = null;
disabledUnderlineColor = null;
hoverColor = null;
focusColor = null;
@@ -733,7 +741,6 @@ public class FlatTabbedPaneUI
// increase size of repaint region to include part of content border
if( contentSeparatorHeight > 0 &&
getTabType() == TAB_TYPE_CARD &&
clientPropertyBoolean( tabPane, TABBED_PANE_SHOW_CONTENT_SEPARATOR, true ) )
{
int sh = scale( contentSeparatorHeight );
@@ -1205,7 +1212,9 @@ public class FlatTabbedPaneUI
}
protected void paintTabSelection( Graphics g, int tabPlacement, int x, int y, int w, int h ) {
g.setColor( tabPane.isEnabled() ? underlineColor : disabledUnderlineColor );
g.setColor( tabPane.isEnabled()
? (isTabbedPaneOrChildFocused() ? underlineColor : inactiveUnderlineColor)
: disabledUnderlineColor );
// paint underline selection
boolean atBottom = (getTabType() != TAB_TYPE_CARD);
@@ -1236,6 +1245,23 @@ public class FlatTabbedPaneUI
}
}
/** @since 2.2 */
@SuppressWarnings( "unchecked" )
protected boolean isTabbedPaneOrChildFocused() {
KeyboardFocusManager keyboardFocusManager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
Object value = tabPane.getClientProperty( FlatClientProperties.COMPONENT_FOCUS_OWNER );
if( value instanceof Predicate ) {
return ((Predicate<JComponent>)value).test( tabPane ) &&
FlatUIUtils.isInActiveWindow( tabPane, keyboardFocusManager.getActiveWindow() );
}
Component focusOwner = keyboardFocusManager.getPermanentFocusOwner();
return focusOwner != null &&
SwingUtilities.isDescendingFrom( focusOwner, tabPane ) &&
FlatUIUtils.isInActiveWindow( focusOwner, keyboardFocusManager.getActiveWindow() );
}
/**
* Actually does nearly the same as super.paintContentBorder() but
* - not using UIManager.getColor("TabbedPane.contentAreaColor") to be GUI builder friendly
@@ -3341,4 +3367,77 @@ public class FlatTabbedPaneUI
delegate.actionPerformed( e );
}
}
//---- class FlatSelectedTabRepainter -------------------------------------
private static class FlatSelectedTabRepainter
implements PropertyChangeListener//, Runnable
{
private static FlatSelectedTabRepainter instance;
private KeyboardFocusManager keyboardFocusManager;
static void install() {
synchronized( FlatSelectedTabRepainter.class ) {
if( instance != null )
return;
instance = new FlatSelectedTabRepainter();
}
}
FlatSelectedTabRepainter() {
keyboardFocusManager = KeyboardFocusManager.getCurrentKeyboardFocusManager();
keyboardFocusManager.addPropertyChangeListener( this );
}
private void uninstall() {
synchronized( FlatSelectedTabRepainter.class ) {
if( instance == null )
return;
keyboardFocusManager.removePropertyChangeListener( this );
keyboardFocusManager = null;
instance = null;
}
}
@Override
public void propertyChange( PropertyChangeEvent e ) {
// uninstall if no longer using FlatLaf
if( !(UIManager.getLookAndFeel() instanceof FlatLaf) ) {
uninstall();
return;
}
switch( e.getPropertyName() ) {
case "permanentFocusOwner":
Object oldValue = e.getOldValue();
Object newValue = e.getNewValue();
if( oldValue instanceof Component )
repaintSelectedTabs( (Component) oldValue );
if( newValue instanceof Component )
repaintSelectedTabs( (Component) newValue );
break;
case "activeWindow":
repaintSelectedTabs( keyboardFocusManager.getPermanentFocusOwner() );
break;
}
}
private void repaintSelectedTabs( Component c ) {
if( c instanceof JTabbedPane )
repaintSelectedTab( (JTabbedPane) c );
while( (c = SwingUtilities.getAncestorOfClass( JTabbedPane.class, c )) != null )
repaintSelectedTab( (JTabbedPane) c );
}
private void repaintSelectedTab( JTabbedPane tabbedPane ) {
TabbedPaneUI ui = tabbedPane.getUI();
if( ui instanceof FlatTabbedPaneUI )
((FlatTabbedPaneUI) ui).repaintTab( tabbedPane.getSelectedIndex() );
}
}
}

View File

@@ -1016,6 +1016,9 @@ debug*/
if( window == null )
return; // should newer occur
if( !SwingUtilities.isLeftMouseButton( e ) )
return;
dragOffset = SwingUtilities.convertPoint( FlatTitlePane.this, e.getPoint(), window );
}
@@ -1030,6 +1033,9 @@ debug*/
if( window == null )
return; // should newer occur
if( !SwingUtilities.isLeftMouseButton( e ) )
return;
if( hasNativeCustomDecoration() )
return; // do nothing if having native window border

View File

@@ -256,11 +256,15 @@ public class FlatToolBarUI
default: return;
}
for( int i = focusedCompIndex + add; i != focusedCompIndex; i += add ) {
int i = focusedCompIndex;
for(;;) {
i += add;
if( i < 0 )
i = count - 1;
else if( i >= count )
i = 0;
if( i == focusedCompIndex )
break;
Component c = toolBar.getComponentAtIndex( i );
if( canBeFocusOwner( c ) ) {

View File

@@ -245,7 +245,7 @@ public class FlatUIUtils
isInActiveWindow( c, keyboardFocusManager.getActiveWindow() );
}
private static boolean isInActiveWindow( Component c, Window activeWindow ) {
static boolean isInActiveWindow( Component c, Window activeWindow ) {
Window window = SwingUtilities.windowForComponent( c );
return window == activeWindow ||
(window != null && window.getType() == Window.Type.POPUP && window.getOwner() == activeWindow);

View File

@@ -43,6 +43,7 @@ import javax.swing.JComponent;
import javax.swing.JInternalFrame;
import javax.swing.JLayeredPane;
import javax.swing.JRootPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import com.formdev.flatlaf.util.SystemInfo;
import com.formdev.flatlaf.util.UIScale;
@@ -521,7 +522,7 @@ debug*/
@Override
public void mousePressed( MouseEvent e ) {
if( !isWindowResizable() )
if( !SwingUtilities.isLeftMouseButton( e ) || !isWindowResizable() )
return;
int xOnScreen = e.getXOnScreen();
@@ -550,7 +551,7 @@ debug*/
@Override
public void mouseReleased( MouseEvent e ) {
if( !isWindowResizable() )
if( !SwingUtilities.isLeftMouseButton( e ) || !isWindowResizable() )
return;
dragLeftOffset = dragRightOffset = dragTopOffset = dragBottomOffset = 0;
@@ -576,7 +577,7 @@ debug*/
@Override
public void mouseDragged( MouseEvent e ) {
if( !isWindowResizable() )
if( !SwingUtilities.isLeftMouseButton( e ) || !isWindowResizable() )
return;
int xOnScreen = e.getXOnScreen();

View File

@@ -136,7 +136,7 @@ class FlatWindowsNativeWindowBorder
String libraryPath = System.getProperty( FlatSystemProperties.NATIVE_LIBRARY_PATH );
if( libraryPath != null ) {
File libraryFile = new File( libraryPath, libraryName + ".dll" );
File libraryFile = new File( libraryPath, System.mapLibraryName( libraryName ) );
if( libraryFile.exists() )
return new NativeLibrary( libraryFile, true );
else

View File

@@ -143,16 +143,19 @@ public class NativeLibrary
}
}
/**
* Add prefix and suffix to library name.
* <ul>
* <li>Windows: libraryName + ".dll"
* <li>macOS: "lib" + libraryName + ".dylib"
* <li>Linux: "lib" + libraryName + ".so"
* </ul>
*/
private static String decorateLibraryName( String libraryName ) {
if( SystemInfo.isWindows )
return libraryName.concat( ".dll" );
String suffix = SystemInfo.isMacOS ? ".dylib" : ".so";
int sep = libraryName.lastIndexOf( '/' );
return (sep >= 0)
? libraryName.substring( 0, sep + 1 ) + "lib" + libraryName.substring( sep + 1 ) + suffix
: "lib" + libraryName + suffix;
? libraryName.substring( 0, sep + 1 ) + System.mapLibraryName( libraryName.substring( sep + 1 ) )
: System.mapLibraryName( libraryName );
}
private static void log( String msg, Throwable thrown ) {

View File

@@ -306,6 +306,7 @@ SplitPaneDivider.draggingColor = $Component.borderColor
#---- TabbedPane ----
TabbedPane.underlineColor = @accentUnderlineColor
TabbedPane.inactiveUnderlineColor = mix(@accentUnderlineColor,$TabbedPane.background,60%)
TabbedPane.disabledUnderlineColor = lighten(@background,23%)
TabbedPane.hoverColor = darken($TabbedPane.background,5%,derived noAutoInverse)
TabbedPane.focusColor = mix(@selectionBackground,$TabbedPane.background,25%)
@@ -324,7 +325,7 @@ TabbedPane.closePressedForeground = $TabbedPane.closeHoverForeground
#---- Table ----
Table.gridColor = lighten($Table.background,5%)
Table.gridColor = lighten($Table.background,8%)
#---- TableHeader ----

View File

@@ -332,6 +332,7 @@ FileView.fileIcon = com.formdev.flatlaf.icons.FlatFileViewFileIcon
FileView.computerIcon = com.formdev.flatlaf.icons.FlatFileViewComputerIcon
FileView.hardDriveIcon = com.formdev.flatlaf.icons.FlatFileViewHardDriveIcon
FileView.floppyDriveIcon = com.formdev.flatlaf.icons.FlatFileViewFloppyDriveIcon
FileView.fullRowSelection = true
#---- FormattedTextField ----

View File

@@ -313,6 +313,7 @@ SplitPaneDivider.draggingColor = $Component.borderColor
#---- TabbedPane ----
TabbedPane.underlineColor = @accentUnderlineColor
TabbedPane.inactiveUnderlineColor = mix(@accentUnderlineColor,$TabbedPane.background,50%)
TabbedPane.disabledUnderlineColor = darken(@background,28%)
TabbedPane.hoverColor = darken($TabbedPane.background,7%,derived)
TabbedPane.focusColor = mix(@selectionBackground,$TabbedPane.background,10%)
@@ -331,7 +332,7 @@ TabbedPane.closePressedForeground = $TabbedPane.closeHoverForeground
#---- Table ----
Table.gridColor = darken($Table.background,5%)
Table.gridColor = darken($Table.background,8%)
#---- TableHeader ----

View File

@@ -67,6 +67,11 @@ Button.default.hoverBorderColor = null
[dark]CheckBoxMenuItem.icon.checkmarkColor=#fff9
#---- Component ----
Component.accentColor = lazy(ProgressBar.foreground)
#---- HelpButton ----
HelpButton.hoverBorderColor = null
@@ -77,6 +82,13 @@ HelpButton.hoverBorderColor = null
Slider.focusedColor = fade($Component.focusColor,40%,derived)
#---- TabbedPane ----
# colors from JBUI.CurrentTheme.DefaultTabs.inactiveUnderlineColor()
[light]TabbedPane.inactiveUnderlineColor = #9ca7b8
[dark]TabbedPane.inactiveUnderlineColor = #747a80
#---- ToggleButton ----
ToggleButton.startBackground = $ToggleButton.background
@@ -121,6 +133,7 @@ ToggleButton.endBackground = $ToggleButton.background
[Arc_Theme_Dark_-_Orange]ProgressBar.selectionBackground = #ddd
[Arc_Theme_Dark_-_Orange]ProgressBar.selectionForeground = #fff
[Cobalt_2]Component.accentColor = lazy(Component.focusColor)
[Cobalt_2]CheckBox.icon.background = #002946
[Cobalt_2]CheckBox.icon.checkmarkColor = #002946
[Cobalt_2]MenuItem.checkBackground = @ijMenuCheckBackgroundL10
@@ -129,31 +142,39 @@ ToggleButton.endBackground = $ToggleButton.background
[Cyan_light]MenuItem.checkBackground = @ijMenuCheckBackgroundL20
[Cyan_light]MenuItem.underlineSelectionCheckBackground = @ijMenuCheckBackgroundL20
[Dark_Flat_Theme]Component.accentColor = lazy(List.selectionBackground)
[Dark_Flat_Theme]TableHeader.background = #3B3B3B
[Dark_purple]Slider.focusedColor = fade($Component.focusColor,70%,derived)
[Dracula---Zihan_Ma]Component.accentColor = lazy(Component.focusColor)
[Dracula---Zihan_Ma]ProgressBar.selectionBackground = #fff
[Dracula---Zihan_Ma]ProgressBar.selectionForeground = #fff
[Gradianto_Dark_Fuchsia]MenuItem.checkBackground = @ijMenuCheckBackgroundL10
[Gradianto_Dark_Fuchsia]MenuItem.underlineSelectionCheckBackground = @ijMenuCheckBackgroundL10
[Gruvbox_Dark_Hard]Component.accentColor = lazy(TabbedPane.underlineColor)
[Gruvbox_Dark_Hard]ToggleButton.selectedBackground = $ToggleButton.selectedBackground
[Gruvbox_Dark_Hard]ToggleButton.toolbar.selectedBackground = $ToggleButton.toolbar.selectedBackground
[Gruvbox_Dark_Medium]Component.accentColor = lazy(TabbedPane.underlineColor)
[Gruvbox_Dark_Medium]ToggleButton.selectedBackground = $ToggleButton.selectedBackground
[Gruvbox_Dark_Medium]ToggleButton.toolbar.selectedBackground = $ToggleButton.toolbar.selectedBackground
[Gruvbox_Dark_Soft]Component.accentColor = lazy(TabbedPane.underlineColor)
[Gruvbox_Dark_Soft]MenuItem.checkBackground = @ijMenuCheckBackgroundL10
[Gruvbox_Dark_Soft]MenuItem.underlineSelectionCheckBackground = @ijMenuCheckBackgroundL10
[Gruvbox_Dark_Soft]ToggleButton.selectedBackground = $ToggleButton.selectedBackground
[Gruvbox_Dark_Soft]ToggleButton.toolbar.selectedBackground = $ToggleButton.toolbar.selectedBackground
[Hiberbee_Dark]TabbedPane.focusColor = #5A5A5A
[Hiberbee_Dark]TabbedPane.selectedBackground = #434241
[Hiberbee_Dark]TabbedPane.selectedForeground = #70D7FF
[Hiberbee_Dark]ToggleButton.selectedBackground = $ToggleButton.selectedBackground
[Hiberbee_Dark]ToggleButton.toolbar.selectedBackground = $ToggleButton.toolbar.selectedBackground
[High_contrast]Component.accentColor = lazy(Component.focusColor)
[High_contrast]ToggleButton.selectedBackground = #fff
[High_contrast]ToggleButton.selectedForeground = #000
[High_contrast]ToggleButton.disabledSelectedBackground = #444
@@ -164,6 +185,7 @@ ToggleButton.endBackground = $ToggleButton.background
toolbar.selectedBackground: #fff
[High_contrast][style]ToggleButton.inTextField = $[High_contrast][style]Button.inTextField
[Light_Flat]Component.accentColor = lazy(TabbedPane.underlineColor)
[Light_Flat]TableHeader.background = #E5E5E9
[Monocai]MenuItem.checkBackground = @ijMenuCheckBackgroundL10
@@ -186,8 +208,12 @@ ToggleButton.endBackground = $ToggleButton.background
[One_Dark]MenuItem.underlineSelectionCheckBackground = @ijMenuCheckBackgroundL10
[One_Dark]Slider.focusedColor = fade(#568af2,40%)
[Solarized_Dark---4lex4]Component.accentColor = lazy(TabbedPane.underlineColor)
[Solarized_Dark---4lex4]Slider.focusedColor = fade($Component.focusColor,80%,derived)
[Solarized_Light---4lex4]Component.accentColor = lazy(TabbedPane.underlineColor)
[vuesion-theme]Component.accentColor = lazy(Button.default.endBackground)
[vuesion-theme]MenuItem.checkBackground = @ijMenuCheckBackgroundL10
[vuesion-theme]MenuItem.underlineSelectionCheckBackground = @ijMenuCheckBackgroundL10
[vuesion-theme]Slider.trackValueColor = #ececee

View File

@@ -693,6 +693,7 @@ public class TestFlatStyleableInfo
"selectedBackground", Color.class,
"selectedForeground", Color.class,
"underlineColor", Color.class,
"inactiveUnderlineColor", Color.class,
"disabledUnderlineColor", Color.class,
"hoverColor", Color.class,
"focusColor", Color.class,

View File

@@ -862,6 +862,7 @@ public class TestFlatStyling
ui.applyStyle( "selectedBackground: #fff" );
ui.applyStyle( "selectedForeground: #fff" );
ui.applyStyle( "underlineColor: #fff" );
ui.applyStyle( "inactiveUnderlineColor: #fff" );
ui.applyStyle( "disabledUnderlineColor: #fff" );
ui.applyStyle( "hoverColor: #fff" );
ui.applyStyle( "focusColor: #fff" );

View File

@@ -43,7 +43,7 @@ public class IJThemesClassGenerator
markdownTable.append( "-----|------\n" );
for( IJThemeInfo ti : themesManager.bundledThemes ) {
if( ti.sourceCodeUrl == null || ti.sourceCodePath == null )
if( ti.sourceCodeUrl == null )
continue;
generateClass( ti, toPath, allInfos, markdownTable );
@@ -77,7 +77,7 @@ public class IJThemesClassGenerator
themeName += " (Material)";
StringBuilder buf = new StringBuilder();
for( String n : name.split( " " ) ) {
for( String n : name.split( "[ \\-]" ) ) {
if( n.length() == 0 || n.equals( "-" ) )
continue;

View File

@@ -178,6 +178,13 @@
"sourceCodeUrl": "https://github.com/bmikaili/intellij-monocai-theme",
"sourceCodePath": "blob/master/resources/Monocai.theme.json"
},
"Monokai_Pro.default.theme.json": {
"name": "Monokai Pro",
"dark": true,
"license": "MIT",
"licenseFile": "Monokai_Pro.LICENSE.txt",
"sourceCodeUrl": "https://github.com/subtheme-dev/monokai-pro"
},
"nord.theme.json": {
"name": "Nord",
"dark": true,
@@ -225,6 +232,14 @@
"sourceCodeUrl": "https://github.com/vuesion/intellij-theme",
"sourceCodePath": "blob/master/resources/META-INF/vuesion_theme.theme.json"
},
"Xcode-Dark.theme.json": {
"name": "Xcode-Dark",
"dark": true,
"license": "MIT",
"licenseFile": "Xcode-Dark.LICENSE.txt",
"sourceCodeUrl": "https://github.com/antelle/intellij-xcode-dark-theme",
"sourceCodePath": "blob/master/resources/Xcode-Dark.theme.json"
},
"material-theme-ui-lite/Arc Dark.theme.json": {
"name": "Material Theme UI Lite / Arc Dark",

View File

@@ -65,12 +65,14 @@ Name | Class
[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`
[Monokai Pro](https://github.com/subtheme-dev/monokai-pro) | `com.formdev.flatlaf.intellijthemes.FlatMonokaiProIJTheme`
[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/4lex4/intellij-platform-solarized) | `com.formdev.flatlaf.intellijthemes.FlatSolarizedDarkIJTheme`
[Solarized Light](https://github.com/4lex4/intellij-platform-solarized) | `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`
[Xcode-Dark](https://github.com/antelle/intellij-xcode-dark-theme) | `com.formdev.flatlaf.intellijthemes.FlatXcodeDarkIJTheme`
Material Theme UI Lite:

View File

@@ -52,12 +52,14 @@ public class FlatAllIJThemes
new FlatIJLookAndFeelInfo( "Light Flat", "com.formdev.flatlaf.intellijthemes.FlatLightFlatIJTheme", false ),
new FlatIJLookAndFeelInfo( "Material Design Dark", "com.formdev.flatlaf.intellijthemes.FlatMaterialDesignDarkIJTheme", true ),
new FlatIJLookAndFeelInfo( "Monocai", "com.formdev.flatlaf.intellijthemes.FlatMonocaiIJTheme", true ),
new FlatIJLookAndFeelInfo( "Monokai Pro", "com.formdev.flatlaf.intellijthemes.FlatMonokaiProIJTheme", true ),
new FlatIJLookAndFeelInfo( "Nord", "com.formdev.flatlaf.intellijthemes.FlatNordIJTheme", true ),
new FlatIJLookAndFeelInfo( "One Dark", "com.formdev.flatlaf.intellijthemes.FlatOneDarkIJTheme", true ),
new FlatIJLookAndFeelInfo( "Solarized Dark", "com.formdev.flatlaf.intellijthemes.FlatSolarizedDarkIJTheme", true ),
new FlatIJLookAndFeelInfo( "Solarized Light", "com.formdev.flatlaf.intellijthemes.FlatSolarizedLightIJTheme", false ),
new FlatIJLookAndFeelInfo( "Spacegray", "com.formdev.flatlaf.intellijthemes.FlatSpacegrayIJTheme", true ),
new FlatIJLookAndFeelInfo( "Vuesion", "com.formdev.flatlaf.intellijthemes.FlatVuesionIJTheme", true ),
new FlatIJLookAndFeelInfo( "Xcode-Dark", "com.formdev.flatlaf.intellijthemes.FlatXcodeDarkIJTheme", true ),
new FlatIJLookAndFeelInfo( "Arc Dark (Material)", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatArcDarkIJTheme", true ),
new FlatIJLookAndFeelInfo( "Arc Dark Contrast (Material)", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatArcDarkContrastIJTheme", true ),
new FlatIJLookAndFeelInfo( "Atom One Dark (Material)", "com.formdev.flatlaf.intellijthemes.materialthemeuilite.FlatAtomOneDarkIJTheme", true ),

View File

@@ -0,0 +1,54 @@
/*
* 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;
//
// DO NOT MODIFY
// Generated with com.formdev.flatlaf.demo.intellijthemes.IJThemesClassGenerator
//
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatMonokaiProIJTheme
extends IntelliJTheme.ThemeLaf
{
public static final String NAME = "Monokai Pro";
public static boolean setup() {
try {
return setup( new FlatMonokaiProIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public static void installLafInfo() {
installLafInfo( NAME, FlatMonokaiProIJTheme.class );
}
public FlatMonokaiProIJTheme() {
super( Utils.loadTheme( "Monokai_Pro.default.theme.json" ) );
}
@Override
public String getName() {
return NAME;
}
}

View File

@@ -0,0 +1,54 @@
/*
* 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;
//
// DO NOT MODIFY
// Generated with com.formdev.flatlaf.demo.intellijthemes.IJThemesClassGenerator
//
import com.formdev.flatlaf.IntelliJTheme;
/**
* @author Karl Tauber
*/
public class FlatXcodeDarkIJTheme
extends IntelliJTheme.ThemeLaf
{
public static final String NAME = "Xcode-Dark";
public static boolean setup() {
try {
return setup( new FlatXcodeDarkIJTheme() );
} catch( RuntimeException ex ) {
return false;
}
}
public static void installLafInfo() {
installLafInfo( NAME, FlatXcodeDarkIJTheme.class );
}
public FlatXcodeDarkIJTheme() {
super( Utils.loadTheme( "Xcode-Dark.theme.json" ) );
}
@Override
public String getName() {
return NAME;
}
}

View File

@@ -127,7 +127,11 @@
"secondaryForeground": "#7ac2cc"
},
"List.background": "#eef0f4",
"List": {
"background": "#eef0f4",
"hoverBackground": "#dae6eb",
"hoverInactiveBackground": "#dae6eb"
},
"Notification": {
"MoreButton.innerBorderColor": "#bec5cd",
@@ -143,6 +147,12 @@
}
},
"NotificationsToolwindow": {
"newNotification.background": "#dae6ebB3",
"newNotification.hoverBackground": "#dae6eb",
"Notification.hoverBackground": "#dae6eb"
},
"PasswordField.background": "#FFFFFF",
"Plugins": {
@@ -151,7 +161,8 @@
"SectionHeader.foreground": "#808080",
"SectionHeader.background": "#edeef2",
"Tab.selectedBackground": "#cacccf",
"Tab.hoverBackground": "#cacccf"
"Tab.hoverBackground": "#cacccf",
"hoverBackground": "#e6eef2"
},
"Popup": {
@@ -249,7 +260,12 @@
}
},
"Tree.background": "#eef0f4",
"Tree": {
"background": "#eef0f4",
"hoverBackground": "#dae6eb",
"hoverInactiveBackground": "#dae6eb",
"hash": "#d0d5db"
},
"WelcomeScreen": {
"Details.background": "#eef0f4",

View File

@@ -120,7 +120,8 @@
"DefaultTabs": {
"underlineColor": "#9649cc",
"inactiveUnderlineColor": "#877399",
"hoverBackground": "#dfb3ff1a"
"hoverBackground": "#dfb3ff1a",
"borderColor": "#1a1721"
},
"DragAndDrop": {
@@ -168,6 +169,11 @@
"visitedForeground": "#7094FF"
},
"List": {
"hoverBackground": "#00000033",
"hoverInactiveBackground": "#00000033"
},
"MenuBar.borderColor": "#1a1721",
"NavBar.borderColor": "#1a1721",
@@ -197,6 +203,12 @@
}
},
"NotificationsToolwindow": {
"newNotification.background": "#3D3952B3",
"newNotification.hoverBackground": "#3D3952",
"Notification.hoverBackground": "#3D3952"
},
"MemoryIndicator": {
"allocatedBackground": "#352140",
"usedBackground": "#533473"
@@ -211,6 +223,8 @@
},
"Plugins": {
"hoverBackground": "#00000022",
"Tab": {
"selectedForeground": "#D0D0D9",
"selectedBackground": "#593f73",
@@ -284,6 +298,13 @@
"SearchOption.selectedBackground": "#424885",
"SegmentedButton": {
"selectedButtonColor": "#45405C",
"focusedSelectedButtonColor": "#693687",
"selectedStartBorderColor": "#4E4C63",
"selectedEndBorderColor": "#4E4C63"
},
"SpeedSearch": {
"foreground": "#D0D0D9",
"borderColor": "#69418c",
@@ -310,7 +331,8 @@
"Table": {
"stripeColor": "#323242",
"hoverBackground": "#00000028"
"hoverBackground": "#00000028",
"gridColor": "#1a1721"
},
"TextArea": {
@@ -360,7 +382,12 @@
}
},
"Tree.rowHeight": 20,
"Tree": {
"rowHeight": 20,
"hash": "#4E4C63",
"hoverBackground": "#00000033",
"hoverInactiveBackground": "#00000033"
},
"ValidationTooltip": {
"errorBackground": "#802d43",

View File

@@ -38,6 +38,26 @@
"pressedBackground": "hoverBackground",
"pressedBorderColor": "hoverBackground"
},
"Bookmark": {
"iconBackground": "accentColor",
"Mnemonic": {
"iconForeground": "primaryForeground",
"iconBackground": "#8d6b81",
"iconBorderColor": "accentColor"
}
},
"BookmarkMnemonicAssigned": {
"foreground": "primaryForeground",
"background": "#786299",
"borderColor": "secondaryAccentColor"
},
"BookmarkMnemonicAvailable": {
},
"BookmarkMnemonicCurrent": {
"foreground": "primaryForeground",
"background": "#8d6b81",
"borderColor": "accentColor"
},
"Button": {
"foreground": "primaryForeground",
"startBorderColor": "selectionBackground",
@@ -90,7 +110,7 @@
"inactiveWarningFocusColor": "#f1fa8c"
},
"DragAndDrop": {
"areaBorderColor": "selectionBackground"
"borderColor": "selectionBackground"
},
"Editor": {
"background": "secondaryBackground",

View File

@@ -111,6 +111,11 @@
"secondaryForeground": "#77a8d9"
},
"List": {
"hoverBackground": "#00000010",
"hoverInactiveBackground": "#00000010"
},
"Notification": {
"background": "#f7f8fa",
"borderColor": "#D4D6D9",
@@ -131,6 +136,12 @@
}
},
"NotificationsToolwindow": {
"newNotification.background": "#dae9f7B3",
"newNotification.hoverBackground": "#00000009",
"Notification.hoverBackground": "#00000009"
},
"PasswordField.background": "#FFFFFF",
"Plugins": {
@@ -140,7 +151,7 @@
"Tab.selectedBackground": "#D5D6D7",
"Tab.hoverBackground": "#D5D6D7",
"lightSelectionBackground": "#E9EFF7",
"hoverBackground": "#f7faff"
"hoverBackground": "#F8F8F8"
},
"Popup": {
@@ -225,7 +236,11 @@
}
},
"Tree.rowHeight": 22,
"Tree": {
"rowHeight": 22,
"hoverBackground": "#00000010",
"hoverInactiveBackground": "#00000010"
},
"VersionControl": {
"Log.Commit.currentBranchBackground": "#e6f0f2",

View File

@@ -0,0 +1,19 @@
The MIT License (MIT)
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.

View File

@@ -0,0 +1,684 @@
{
"name": "Monokai Pro",
"dark": true,
"author": "Subtheme",
"editorScheme": "/schemes/default.xml",
"ui": {
"*": {
"acceleratorSelectionForeground": "#ffd866",
"background": "#2d2a2e",
"borderColor": "#363337",
"disabledBackground": "#221f22",
"disabledForeground": "#5b595c",
"disabledText": "#5b595c",
"focusColor": "#5b595c",
"focusedBorderColor": "#ffd866",
"foreground": "#fcfcfa",
"inactiveBackground": "#221f22",
"inactiveForeground": "#939293",
"infoForeground": "#939293",
"selectionBackground": "#403e41",
"selectionBackgroundInactive": "#403e41",
"selectionForeground": "#ffd866",
"selectionInactiveBackground": "#403e41",
"selectionInactiveForeground": "#ffd866",
"separatorColor": "#2d2a2e"
},
"ActionButton": {
"hoverBackground": "#363337",
"hoverBorderColor": "#363337",
"pressedBackground": "#363337",
"pressedBorderColor": "#363337"
},
"Borders": {
"ContrastBorderColor": "#363337",
"color": "#363337"
},
"Button": {
"arc": 0,
"background": "#403e41",
"default": {
"endBackground": "#403e41",
"endBorderColor": "#403e41",
"foreground": "#ffd866",
"focusColor": "#ffd866",
"focusedBorderColor": "#403e41",
"shadowColor": "#403e41",
"startBackground": "#403e41",
"startBorderColor": "#403e41"
},
"disabledBorderColor": "#403e41",
"disabledText": "#5b595c",
"endBackground": "#403e41",
"endBorderColor": "#403e41",
"focusedBorderColor": "#403e41",
"foreground": "#fcfcfa",
"shadowColor": "#403e41",
"shadowWidth": 0,
"startBackground": "#403e41",
"startBorderColor": "#403e41"
},
"CheckBox": {
"background": "#2d2a2e",
"disabledText": "#5b595c",
"foreground": "#fcfcfa",
"select": "#ffd866"
},
"CheckBoxMenuItem": {
"acceleratorForeground": "#939293",
"acceleratorSelectionForeground": "#939293",
"background": "#2d2a2e",
"disabledBackground": "#2d2a2e",
"disabledForeground": "#5b595c",
"foreground": "#fcfcfa",
"selectionBackground": "#403e41",
"selectionForeground": "#ffd866"
},
"ColorChooser": {
"background": "#2d2a2e",
"foreground": "#fcfcfa",
"swatchesDefaultRecentColor": "#fcfcfa"
},
"ComboBoxButton": {
"background": "#363337"
},
"ComboBox": {
"ArrowButton": {
"background": "#403e41",
"disabledIconColor": "#5b595c",
"iconColor": "#fcfcfa",
"nonEditableBackground": "#2d2a2e"
},
"background": "#363337",
"disabledBackground": "#221f22",
"disabledForeground": "#5b595c",
"foreground": "#fcfcfa",
"modifiedItemForeground": "#ffd866",
"nonEditableBackground": "#363337",
"selectionBackground": "#2d2a2e",
"selectionForeground": "#ffd866"
},
"ComboPopup": {
"border": "#2d2a2e"
},
"CompletionPopup": {
"foreground": "#fcfcfa",
"matchForeground": "#ffd866",
"selectionInactiveBackground": "#2d2a2e",
"selectionBackground": "#2d2a2e"
},
"Component": {
"arc": 4,
"borderColor": "#363337",
"disabledBorderColor": "#363337",
"focusColor": "#ffd866",
"focusedBorderColor": "#ffd866",
"hoverIconColor": "#ffd866",
"infoForeground": "#939293",
"iconColor": "#fcfcfa"
},
"Counter": {
"background": "#ffd866",
"foreground": "#19181a"
},
"Debugger": {
"Variables": {
"collectingDataForeground": "#939293",
"changedValueForeground": "#ffd866",
"errorMessageForeground": "#ff6188",
"evaluatingExpressionForeground": "#939293",
"exceptionForeground": "#78dce8",
"modifyingValueForeground": "#ffd866",
"valueForeground": "#ffd866"
}
},
"DebuggerTabs": {
"underlinedTabBackground": "#5b595c"
},
"DebuggerPopup": {
"borderColor": "#5b595c"
},
"DefaultTabs": {
"background": "#2d2a2e",
"borderColor": "#2d2a2e",
"hoverBackground": "#363337",
"inactiveUnderlineColor": "#ffd866",
"underlineColor": "#ffd866",
"underlinedTabBackground": "#2d2a2e",
"underlineHeight": 2
},
"DragAndDrop": {
"areaBackground": "#2d2a2e",
"areaBorderColor": "#2d2a2e",
"areaForeground": "#fcfcfa"
},
"Editor": {
"background": "#221f22",
"foreground": "#fcfcfa",
"shortcutForeground": "#939293"
},
"EditorPane": {
"background": "#221f22",
"caretForeground": "#ffd866",
"foreground": "#fcfcfa",
"inactiveBackground": "#2d2a2e",
"inactiveForeground": "#5b595c",
"selectionBackground": "#403e41",
"selectionForeground": "#ffd866"
},
"EditorTabs": {
"borderColor": "#363337",
"inactiveUnderlineColor": "#ffd866",
"underlineColor": "#ffd866",
"underlinedTabBackground": "#363337",
"underlinedTabForeground": "#c1c0c0"
},
"FileColor": {
"Yellow": "00000000"
},
"FormattedTextField": {
"background": "#363337",
"caretForeground": "#ffd866",
"foreground": "#fcfcfa",
"inactiveBackground": "#403e41",
"inactiveForeground": "#5b595c",
"selectionForeground": "#ffd866",
"selectionBackground": "#403e41"
},
"Group": {
"disabledSeparatorColor": "#2d2a2e",
"separatorColor": "#2d2a2e"
},
"GutterTooltip": {
"infoForeground": "#fcfcfa",
"lineSeparatorColor": "#2d2a2e"
},
"HelpTooltip": {
"borderColor": "#2d2a2e",
"infoForeground": "#939293"
},
"InformationHint": {
"borderColor": "#2d2a2e"
},
"InplaceRefactoringPopup": {
"borderColor": "#2d2a2e"
},
"Label": {
"background": "#2d2a2e",
"disabledForeground": "#5b595c",
"disabledText": "#5b595c",
"foreground": "#939293",
"infoForeground": "#939293",
"selectedForeground": "#ffd866"
},
"Link": {
"activeForeground": "#ffd866",
"hoverForeground": "#ffd866",
"pressedForeground": "#ffd866",
"secondaryForeground": "#939293",
"visitedForeground": "#ffd866"
},
"List": {
"background": "#221f22",
"foreground": "#fcfcfa",
"selectionBackground": "#363337",
"selectionForeground": "#ffd866",
"selectionInactiveBackground": "#363337",
"selectionInactiveForeground": "#ffd866"
},
"MemoryIndicator": {
"allocatedBackground": "#403e41",
"usedBackground": "#5b595c"
},
"Menu": {
"acceleratorForeground": "#939293",
"acceleratorSelectionForeground": "#fcfcfa",
"background": "#2d2a2e",
"borderColor": "#363337",
"disabledBackground": "#403e41",
"disabledForeground": "#5b595c",
"foreground": "#fcfcfa",
"separatorColor": "#2d2a2e",
"selectionForeground": "#ffd866"
},
"MenuBar": {
"borderColor": "#363337",
"disabledBackground": "#2d2a2e",
"disabledForeground": "#5b595c",
"foreground": "#fcfcfa",
"highlight": "#2d2a2e",
"selectionBackground": "#403e41",
"selectionForeground": "#ffd866",
"shadow": "#221f22"
},
"MenuItem": {
"acceleratorForeground": "#939293",
"background": "#2d2a2e",
"disabledBackground": "#2d2a2e",
"disabledForeground": "#5b595c",
"foreground": "#fcfcfa",
"selectionBackground": "#403e41",
"selectionForeground": "#ffd866"
},
"NavBar": {
"borderColor": "#363337"
},
"Notification": {
"background": "#363337",
"borderColor": "#221f22",
"errorBackground": "#221f22",
"errorBorderColor": "#221f22",
"foreground": "#fcfcfa",
"MoreButton": {
"background": "#403e41",
"foreground": "#fcfcfa",
"innerBorderColor": "#363337"
},
"ToolWindow": {
"errorBackground": "#363337",
"errorBorderColor": "#363337",
"informativeBackground": "#363337",
"informativeBorderColor": "#363337",
"warningBackground": "#363337",
"warningBorderColor": "#363337"
}
},
"OptionPane": {
"background": "#2d2a2e",
"foreground": "#fcfcfa",
"messageForeground": "#fcfcfa"
},
"Panel": {
"background": "#2d2a2e",
"foreground": "#939293"
},
"ParameterInfo": {
"background": "#403e41",
"borderColor": "#363337",
"currentOverloadBackground": "#403e41",
"currentParameterForeground": "#ffd866",
"disabledForeground": "#5b595c",
"foreground": "#fcfcfa",
"infoForeground": "#939293",
"lineSeparatorColor": "#363337"
},
"PasswordField": {
"background": "#403e41",
"capsLockIconColor": "#ffd866",
"caretForeground": "#ffd866",
"foreground": "#fcfcfa",
"inactiveForeground": "#5b595c",
"selectionBackground": "#5b595c",
"selectionForeground": "#ffd866"
},
"Plugins": {
"background": "#2d2a2e",
"disabledForeground": "#939293",
"eapTagBackground": "#5b595c",
"lightSelectionBackground": "#363337",
"hoverBackground": "#363337",
"tagForeground": "#ffd866",
"tagBackground": "#5b595c",
"Button": {
"installBackground": "#221f22",
"installBorderColor": "#221f22",
"installForeground": "#fcfcfa",
"installFocusedBackground": "#221f22",
"installFillForeground": "#939293",
"installFillBackground": "#221f22",
"updateBackground": "#221f22",
"updateBorderColor": "#221f22",
"updateForeground": "#fcfcfa"
},
"SearchField": {
"background": "#363337",
"borderColor": "#363337"
},
"SectionHeader": {
"background": "#2d2a2e",
"foreground": "#939293"
},
"Tab": {
"hoverBackground": "#363337",
"selectedForeground": "#fcfcfa",
"selectedBackground": "#363337"
}
},
"Popup": {
"Advertiser": {
"background": "#2d2a2e",
"borderColor": "#2d2a2e",
"foreground": "#ffd866"
},
"borderColor": "#221f22",
"inactiveBorderColor": "#2d2a2e",
"innerBorderColor": "#2d2a2e",
"Header": {
"activeBackground": "#2d2a2e",
"inactiveBackground": "#221f22"
},
"paintBorder": true,
"separatorForeground": "#fcfcfa",
"separatorColor": "#2d2a2e",
"Toolbar": {
"background": "#221f22",
"borderColor": "#363337"
}
},
"PopupMenu": {
"background": "#2d2a2e",
"foreground": "#fcfcfa",
"translucentBackground": "#2d2a2e",
"selectionBackground": "#403e41"
},
"PopupMenuSeparator": {
"height": 10,
"stripeIndent": 5
},
"ProgressBar": {
"background": "#2d2a2e",
"foreground": "#ffd866",
"indeterminateEndColor": "#ffd866",
"indeterminateStartColor": "#ffd866",
"progressColor": "#ffd866",
"selectionBackground": "#5b595c",
"trackColor": "#5b595c"
},
"RadioButton": {
"background": "#2d2a2e",
"disabledText": "#5b595c",
"foreground": "#fcfcfa"
},
"RadioButtonMenuItem": {
"acceleratorForeground": "#939293",
"acceleratorSelectionForeground": "#939293",
"background": "#2d2a2e",
"disabledBackground": "#2d2a2e",
"disabledForeground": "#5b595c",
"foreground": "#fcfcfa",
"selectionBackground": "#403e41",
"selectionForeground": "#ffd866"
},
"SearchEverywhere": {
"Advertiser": {
"background": "#221f22",
"foreground": "#939293"
},
"Header": {
"background": "#2d2a2e"
},
"List": {
"separatorColor": "#2d2a2e",
"separatorForeground": "#939293"
},
"SearchField": {
"background": "#2d2a2e",
"borderColor": "#221f22",
"infoForeground": "#939293"
},
"Tab": {
"selectedForeground": "#ffd866",
"selectedBackground": "#5b595c"
}
},
"SearchMatch": {
"endBackground": "#ffd866",
"startBackground": "#ffd866"
},
"Separator": {
"separatorColor": "#363337"
},
"SidePanel": {
"background": "#221f22"
},
"Slider": {
"background": "#2d2a2e",
"buttonBorderColor": "#ffd866",
"buttonColor": "#ffd866",
"foreground": "#fcfcfa",
"tickColor": "#403e41",
"trackColor": "#403e41"
},
"SpeedSearch": {
"background": "#5b595c",
"borderColor": "#2d2a2e",
"errorForeground": "#fcfcfa",
"foreground": "#fcfcfa"
},
"Spinner": {
"background": "#2d2a2e"
},
"SplitPane": {
"background": "#2d2a2e",
"highlight": "#221f22"
},
"SplitPaneDivider": {
"draggingColor": "#403e41"
},
"StatusBar": {
"borderColor": "#363337",
"hoverBackground": "#363337"
},
"TabbedPane": {
"background": "#2d2a2e",
"contentAreaColor": "#5b595c",
"disabledForeground": "#5b595c",
"disabledUnderlineColor": "#5b595c",
"focus": "#403e41",
"focusColor": "#403e41",
"foreground": "#fcfcfa",
"hoverColor": "#363337",
"tabSelectionHeight": 2,
"underlineColor": "#ffd866"
},
"Table": {
"background": "#221f22",
"dropLineColor": "#ffd866",
"dropLineShortColor": "#ffd866",
"focusCellBackground": "#221f22",
"focusCellForeground": "#ffd866",
"foreground": "#fcfcfa",
"gridColor": "#221f22",
"lightSelectionForeground": "#ffd866",
"lightSelectionInactiveForeground": "#fcfcfa",
"lightSelectionInactiveBackground": "#363337",
"selectionBackground": "#363337",
"selectionForeground": "#ffd866",
"selectionInactiveBackground": "#363337",
"selectionInactiveForeground": "#fcfcfa",
"sortIconColor": "#fcfcfa",
"stripeColor": "#221f22"
},
"TableHeader": {
"background": "#2d2a2e",
"bottomSeparatorColor": "#363337",
"cellBorder": "4,0,4,0",
"foreground": "#fcfcfa",
"focusCellBackground": "#403e41",
"separatorColor": "#363337"
},
"textText": "#939293",
"TextArea": {
"background": "#363337",
"caretForeground": "#ffd866",
"foreground": "#fcfcfa",
"inactiveForeground": "#5b595c",
"selectionBackground": "#5b595c",
"selectionForeground": "#ffd866"
},
"TextField": {
"background": "#363337",
"caretForeground": "#ffd866",
"foreground": "#fcfcfa",
"inactiveForeground": "#5b595c",
"selectionBackground": "#5b595c",
"selectionForeground": "#ffd866"
},
"TextPane": {
"background": "#363337",
"caretForeground": "#ffd866",
"foreground": "#fcfcfa",
"inactiveForeground": "#5b595c",
"selectionBackground": "#5b595c",
"selectionForeground": "#ffd866"
},
"TitlePane": {
"background": "#221f22",
"Button.hoverBackground": "#5b595c",
"inactiveBackground": "#2d2a2e",
"infoForeground": "#939293",
"inactiveInfoForeground": "#939293"
},
"TitledBorder": {
"titleColor": "#2d2a2e"
},
"ToggleButton": {
"borderColor": "#403e41",
"buttonColor": "#fcfcfa",
"disabledText": "#5b595c",
"foreground": "#939293",
"offForeground": "#2d2a2e",
"offBackground": "#2d2a2e",
"onBackground": "#ffd866",
"onForeground": "#ffd866"
},
"ToolBar": {
"background": "#221f22",
"borderHandleColor": "#939293",
"floatingForeground": "#939293",
"foreground": "#fcfcfa"
},
"ToolTip": {
"Actions": {
"background": "#2d2a2e",
"infoForeground": "#939293"
},
"background": "#2d2a2e",
"borderColor": "#5b595c",
"foreground": "#fcfcfa",
"infoForeground": "#939293",
"shortcutForeground": "#939293"
},
"ToolWindow": {
"Button": {
"hoverBackground": "#363337",
"selectedForeground": "#ffd866",
"selectedBackground": "#363337"
},
"Header": {
"background": "#2d2a2e",
"borderColor": "#363337",
"inactiveBackground": "#2d2a2e"
},
"HeaderCloseButton": {
"background": "#2d2a2e"
},
"HeaderTab": {
"hoverBackground": "#363337",
"hoverInactiveBackground": "#363337",
"inactiveUnderlineColor": "#ffd866",
"selectedInactiveBackground": "#2d2a2e",
"underlineColor": "#ffd866",
"underlinedTabBackground": "#363337",
"underlinedTabInactiveBackground": "#363337"
}
},
"Tree": {
"background": "#221f22",
"foreground": "#939293",
"hash": "#2d2a2e",
"modifiedItemForeground": "#ffd866",
"rowHeight": 22,
"selectionBackground": "#2d2a2e",
"selectionForeground": "#ffd866",
"selectionInactiveBackground": "#2d2a2e"
},
"UiDesigner": {
"Panel": {
"background": "#2d2a2e"
},
"Preview": {
"background": "#2d2a2e"
}
},
"ValidationTooltip": {
"errorBackground": "#363337",
"errorBorderColor": "#363337",
"warningBackground": "#363337",
"warningBorderColor": "#363337"
},
"VersionControl": {
"FileHistory": {
"Commit": {
"selectedBranchBackground": "#2d2a2e"
}
},
"GitLog": {
"localBranchIconColor": "#ffd866",
"otherIconColor": "#939293",
"remoteBranchIconColor": "#fcfcfa",
"tagIconColor": "#939293"
},
"HgLog": {
"branchIconColor": "#ffd866",
"bookmarkIconColor": "#ffd866",
"closedBranchIconColor": "#5b595c",
"localTagIconColor": "#939293",
"mqTagIconColor": "#939293",
"tagIconColor": "#939293",
"tipIconColor": "#939293"
},
"Log": {
"Commit": {
"unmatchedForeground": "#939293",
"currentBranchBackground": "#363337"
}
},
"RefLabel": {
"foreground": "#ffd866",
"backgroundBase": "#5b595c"
}
},
"Viewport": {
"background": "#221f22",
"foreground": "#fcfcfa"
},
"WelcomeScreen": {
"background": "#2d2a2e",
"borderColor": "#363337",
"captionBackground": "#221f22",
"captionForeground": "#fcfcfa",
"footerBackground": "#221f22",
"footerForeground": "#fcfcfa",
"headerBackground": "#2d2a2e",
"headerForeground": "#fcfcfa",
"Projects": {
"background": "#221f22",
"selectionBackground": "#2d2a2e",
"selectionInactiveBackground": "#2d2a2e"
},
"separatorColor": "#363337"
},
"window": "#2d2a2e",
"Window": {
"border": "0,0,0,0,#363337"
},
"windowBorder": "#363337",
"windowText": "#939293"
},
"icons": {
"ColorPalette": {
"Checkbox.Background.Default.Dark": "##403e41",
"Checkbox.Background.Disabled.Dark": "##221f22",
"Checkbox.Background.Selected.Dark": "##403e41",
"Checkbox.Border.Default.Dark": "##403e41",
"Checkbox.Border.Disabled.Dark": "##221f22",
"Checkbox.Border.Selected.Dark": "##403e41",
"Checkbox.Focus.Thin.Default.Dark": "##403e41",
"Checkbox.Focus.Thin.Selected.Dark": "##221f22",
"Checkbox.Focus.Wide.Dark": "##403e41",
"Checkbox.Foreground.Disabled.Dark": "##939293",
"Checkbox.Foreground.Selected.Dark": "##fcfcfa"
}
}
}

View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2019 Antelle
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.

View File

@@ -0,0 +1,232 @@
{
"name": "Xcode-Dark",
"dark": true,
"author": "Antelle",
"editorScheme": "/Xcode-Dark.xml",
"ui": {
"*": {
"background": "#323333",
"foreground": "#DFDFE0",
"infoForeground": "#A9A9AA",
"selectionBackground": "#1D7BED",
"selectionForeground": "#F9FCFF",
"selectionInactiveBackground": "#555657",
"selectionBackgroundInactive": "#555657",
"lightSelectionBackground": "#2B4059",
"lightSelectionForeground": "#FFFFFF",
"lightSelectionInactiveBackground": "#555657",
"lightSelectionInactiveForeground": "#DFDFE0",
"disabledBackground": "#323333",
"inactiveBackground": "#313233",
"disabledForeground": "#737374",
"disabledText": "#737374",
"inactiveForeground": "#737374",
"acceleratorForeground": "#D0D0D9",
"acceleratorSelectionForeground": "#D0D0D9",
"errorForeground": "#843937",
"borderColor": "#414141",
"disabledBorderColor": "#414141",
"focusColor": "#24648D",
"focusedBorderColor": "#4C8CB5",
"separatorForeground": "#5A5B5C",
"separatorColor": "#5A5B5C",
"lineSeparatorColor": "#5A5B5C",
"modifiedItemForeground": "#1E4D86"
},
"ActionButton": {
"hoverBackground": "#5A5B5C",
"hoverBorderColor": "#5A5B5C",
"pressedBackground": "#414141",
"pressedBorderColor": "#414141"
},
"Button": {
"startBackground": "#424242",
"endBackground": "#424242",
"startBorderColor": "#525252",
"endBorderColor": "#525252",
"shadowColor": "#363636",
"default": {
"foreground": "#DDE9FA",
"startBackground": "#206DE3",
"endBackground": "#1C61CA",
"startBorderColor": "#6099EC",
"endBorderColor": "#1C61CA",
"focusedBorderColor": "#45A1F4",
"focusColor": "#245F84",
"shadowColor": "#363636"
}
},
"Borders": {
"color": "#393A3B",
"ContrastBorderColor": "#4b4c4d"
},
"ComboBox": {
"nonEditableBackground": "#4f5051",
"background": "#414141",
"ArrowButton": {
"iconColor": "#DBDBDB",
"background": "#1E67D7",
"disabledIconColor": "#6B6B6C",
"nonEditableBackground": "#4f5051"
}
},
"ComboPopup.border": "1,1,1,1,3F3F3F",
"Component": {
"errorFocusColor": "#843937",
"inactiveErrorFocusColor": "#433239",
"warningFocusColor": "#8F7B2E",
"inactiveWarningFocusColor": "#434136",
"iconColor": "#DFDFE0",
"hoverIconColor": "#FFFFFF"
},
"Counter": {
"background": "#909090",
"foreground": "#000000"
},
"DebuggerPopup.borderColor": "#414141",
"DefaultTabs": {
"borderColor": "#484949",
"background": "#2A2B2B",
"inactiveUnderlineColor": "#24648D",
"hoverBackground": "#262727",
"underlineColor": "#1D7BED",
"underlineHeight": 2,
"underlinedTabBackground": "#3D3E3F"
},
"DragAndDrop": {
"areaForeground": "#DFDFE0",
"areaBackground": "#363737",
"areaBorderColor": "#414141"
},
"EditorTabs": {
"inactiveColoredFileBackground": "#2d281d"
},
"FileColor": {
"Yellow": "#3D3B37",
"Green": "#383C38",
"Blue": "#343A3E",
"Violet": "#3C3A3D",
"Orange": "#3D3A36",
"Rose": "#3D383B"
},
"Link": {
"activeForeground": "#428EE1",
"hoverForeground": "#7094FF",
"pressedForeground": "#FC4741",
"visitedForeground": "#7094FF"
},
"Notification": {
"errorForeground": "#DFDFE0",
"errorBackground": "#843937",
"errorBorderColor": "#982B31",
"MoreButton.innerBorderColor": "#4b4c4d",
"ToolWindow": {
"informativeForeground": "#DFDFE0",
"informativeBackground": "#225DA1",
"informativeBorderColor": "#1C61CA",
"warningForeground": "#DFDFE0",
"warningBackground": "#A98938",
"warningBorderColor": "#FEC42E",
"errorForeground": "#DFDFE0",
"errorBackground": "#843937",
"errorBorderColor": "#982B31"
}
},
"ProgressBar": {
"trackColor": "#252525",
"progressColor": "#CDCCCC",
"indeterminateStartColor": "#CDCCCC",
"indeterminateEndColor": "#B4B3B3",
"failedColor": "#DF1A21",
"failedEndColor": "#982B31",
"passedColor": "#3AA87B",
"passedEndColor": "#368E68"
},
"SearchMatch": {
"startBackground": "#f5bc2d",
"endBackground": "#e9b32b"
},
"SpeedSearch": {
"errorForeground": "#DF1A21"
},
"ToggleButton": {
"onBackground": "#1D7BED"
},
"CompletionPopup": {
"matchForeground": "#FDA14F",
"selectionBackground": "#1D7BED"
},
"Popup": {
"Header": {
"activeBackground": "#4A4E52",
"inactiveBackground": "#4A4E52"
}
},
"SearchEverywhere": {
"Tab": {
"selectedForeground": "#F9FCFF",
"selectedBackground": "#555A5E"
}
},
"icons": {
"ColorPalette": {
"Actions.Grey": "#969798",
"Actions.Red": "#FC545B",
"Actions.Yellow": "#e0c24c",
"Actions.Green": "#71bf47",
"Actions.Blue": "#3062d1",
"Actions.GreyInline.Dark": "#6F6F70",
"Objects.Grey": "#6F6F70",
"Objects.RedStatus": "#FC4741",
"Objects.Red": "#FC545B",
"Objects.Pink": "#F5539E",
"Objects.Yellow": "#e0c24c",
"Objects.Green": "#71bf47",
"Objects.Blue": "#3062d1",
"Objects.Purple": "#A453A5",
"Objects.BlackText": "#000000",
"Objects.YellowDark": "#89744D",
"Objects.GreenAndroid": "#5D7554"
}
}
}
}

View File

@@ -164,6 +164,10 @@
"background": "#323846",
"selectionInactiveForeground": "#e5e9f0"
},
"MemoryIndicator": {
"allocatedBackground": "#81a1c1",
"usedBackground": "#5e81ac"
},
"Menu": {
"background": "#323846",
"borderColor": "#3b4252",
@@ -231,6 +235,9 @@
"activeBackground": "#434c5e"
}
},
"PopupMenu": {
"background": "#323846"
},
"ProgressBar": {
"background": "#88c0d0",
"failedColor": "#bf616a",

View File

@@ -8,7 +8,10 @@
"backgroundColor": "#21252b",
"borderColor": "#333841",
"infoForeground": "#7e8491",
"foregroundColor": "#abb2bf"
"foregroundColor": "#abb2bf",
"notificationBackground": "#3d424b",
"selectionBackground": "#323844",
"selectionForeground": "#d7dae0"
},
"ui": {
"*": {
@@ -17,10 +20,18 @@
"infoForeground": "#5c6370",
"selectionBackground": "#323844",
"selectionBackground": {
"os.default": "selectionBackground",
"os.windows": "selectionBackground",
"os.mac": "selectionBackground"
},
"selectionForeground": {
"os.default": "selectionForeground",
"os.windows": "selectionForeground",
"os.mac": "selectionForeground"
},
"selectionInactiveBackground": "#2c313a",
"selectionBackgroundInactive": "#2c313a",
"selectionForeground": "#d7dae0",
"disabledBackground": "backgroundColor",
"inactiveBackground": "backgroundColor",
@@ -142,6 +153,9 @@
"Editor": {
"background": "#282c34",
"foreground": "#abb2bf",
"SearchField": {
"background": "#282c34"
},
"shortcutForeground": "accentColor"
},
@@ -192,7 +206,7 @@
},
"Notification": {
"background": "#3d424b",
"background": "notificationBackground",
"borderColor": "#53565f",
"errorForeground": "#abb2bf",
@@ -219,6 +233,10 @@
}
},
"NotificationsToolwindow.newNotification.background" : "notificationBackground",
"NotificationsToolwindow.newNotification.hoverBackground" : "#3d424b",
"NotificationsToolwindow.Notification.hoverBackground" : "#3d424b",
"Panel.background": "backgroundColor",
"ParameterInfo": {
@@ -314,6 +332,8 @@
"Settings.Spotlight.borderColor": "accentColor",
"StatusBar.background": "baseBackground",
"TabbedPane": {
"underlineColor": "accentColor",
"contentAreaColor": "#323844",
@@ -362,6 +382,7 @@
},
"ToolWindow": {
"background": "backgroundColor",
"Button": {
"hoverBackground": "#323844",
"selectedBackground": "#3d424b",

View File

@@ -15,84 +15,101 @@
*/
plugins {
id( "dev.nokee.jni-library" ) version "0.4.0"
id( "dev.nokee.cpp-language" ) version "0.4.0"
`cpp-library`
}
library {
targetMachines.set( listOf( machines.windows.x86, machines.windows.x86_64 ) )
variants.configureEach {
sharedLibrary {
compileTasks.configureEach {
onlyIf { isBuildable }
// disable debuggable for release builds to make shared libraries smaller
binaries.configureEach( CppSharedLibrary::class ) {
with( compileTask.get() ) {
if( name.contains( "Release" ) )
isDebuggable = false
}
with( linkTask.get() ) {
if( name.contains( "Release" ) )
debuggable.set( false )
}
}
}
// depend on :flatlaf-core:compileJava because it generates the JNI headers
dependsOn( ":flatlaf-core:compileJava" )
var javaHome = System.getProperty( "java.home" )
if( javaHome.endsWith( "jre" ) )
javaHome += "/.."
doFirst {
println( "Used Tool Chain:" )
println( " - ${toolChain.get()}" )
println( "Available Tool Chains:" )
toolChains.forEach {
println( " - $it" )
}
tasks {
register( "build-natives" ) {
group = "build"
description = "Builds natives"
// copy needed JNI headers
copy {
from( project( ":flatlaf-core" ).buildDir.resolve( "generated/jni-headers" ) )
into( "src/main/headers" )
include(
"com_formdev_flatlaf_ui_FlatWindowsNativeWindowBorder.h",
"com_formdev_flatlaf_ui_FlatWindowsNativeWindowBorder_WndProc.h"
)
filter<org.apache.tools.ant.filters.FixCrLfFilter>(
"eol" to org.apache.tools.ant.filters.FixCrLfFilter.CrLf.newInstance( "lf" )
)
}
}
dependsOn( "linkReleaseX86", "linkReleaseX86-64" )
}
compilerArgs.addAll( toolChain.map {
when( it ) {
is Gcc, is Clang -> listOf( "-O2" )
is VisualCpp -> listOf( "/O2", "/Zl", "/GS-" )
else -> emptyList()
}
} )
withType<CppCompile>().configureEach {
onlyIf { name.contains( "Release" ) }
// depend on :flatlaf-core:compileJava because it generates the JNI headers
dependsOn( ":flatlaf-core:compileJava" )
doFirst {
println( "Used Tool Chain:" )
println( " - ${toolChain.get()}" )
println( "Available Tool Chains:" )
toolChains.forEach {
println( " - $it" )
}
linkTask.configure {
onlyIf { isBuildable }
val nativesDir = project( ":flatlaf-core" ).projectDir.resolve( "src/main/resources/com/formdev/flatlaf/natives" )
val is64Bit = targetMachine.architecture.is64Bit
val libraryName = if( is64Bit ) "flatlaf-windows-x86_64.dll" else "flatlaf-windows-x86.dll"
val jawt = if( is64Bit ) "lib/jawt-x86_64" else "lib/jawt-x86"
outputs.file( "$nativesDir/$libraryName" )
linkerArgs.addAll( toolChain.map {
when( it ) {
is Gcc, is Clang -> listOf( "-l${jawt}", "-lUser32", "-lGdi32", "-lshell32", "-lAdvAPI32", "-lKernel32" )
is VisualCpp -> listOf( "${jawt}.lib", "User32.lib", "Gdi32.lib", "shell32.lib", "AdvAPI32.lib", "Kernel32.lib", "/NODEFAULTLIB" )
else -> emptyList()
}
} )
doLast {
// copy shared library to flatlaf-core resources
copy {
from( linkedFile )
into( nativesDir )
rename( "flatlaf-natives-windows.dll", libraryName )
}
}
// copy needed JNI headers
copy {
from( project( ":flatlaf-core" ).buildDir.resolve( "generated/jni-headers" ) )
into( "src/main/headers" )
include(
"com_formdev_flatlaf_ui_FlatWindowsNativeWindowBorder.h",
"com_formdev_flatlaf_ui_FlatWindowsNativeWindowBorder_WndProc.h"
)
filter<org.apache.tools.ant.filters.FixCrLfFilter>(
"eol" to org.apache.tools.ant.filters.FixCrLfFilter.CrLf.newInstance( "lf" )
)
}
}
for( taskName in listOf( "jarX86", "jarX86-64" ) ) {
tasks.named( taskName ) {
onlyIf { false }
}
includes.from(
"${javaHome}/include",
"${javaHome}/include/win32"
)
compilerArgs.addAll( toolChain.map {
when( it ) {
is Gcc, is Clang -> listOf( "-O2", "-DUNICODE" )
is VisualCpp -> listOf( "/O2", "/Zl", "/GS-", "/DUNICODE" )
else -> emptyList()
}
} )
}
withType<LinkSharedLibrary>().configureEach {
onlyIf { name.contains( "Release" ) }
val nativesDir = project( ":flatlaf-core" ).projectDir.resolve( "src/main/resources/com/formdev/flatlaf/natives" )
val is64Bit = name.contains( "64" )
val libraryName = if( is64Bit ) "flatlaf-windows-x86_64.dll" else "flatlaf-windows-x86.dll"
val jawt = if( is64Bit ) "lib/jawt-x86_64" else "lib/jawt-x86"
linkerArgs.addAll( toolChain.map {
when( it ) {
is Gcc, is Clang -> listOf( "-l${jawt}", "-lUser32", "-lGdi32", "-lshell32", "-lAdvAPI32", "-lKernel32" )
is VisualCpp -> listOf( "${jawt}.lib", "User32.lib", "Gdi32.lib", "shell32.lib", "AdvAPI32.lib", "Kernel32.lib", "/NODEFAULTLIB" )
else -> emptyList()
}
} )
doLast {
// copy shared library to flatlaf-core resources
copy {
from( linkedFile )
into( nativesDir )
rename( "flatlaf-natives-windows.dll", libraryName )
}
}
}

View File

@@ -313,6 +313,7 @@ FileView.computerIcon [lazy] 16,16 com.formdev.flatlaf.icons.FlatFil
FileView.directoryIcon [lazy] 16,16 com.formdev.flatlaf.icons.FlatFileViewDirectoryIcon [UI]
FileView.fileIcon [lazy] 16,16 com.formdev.flatlaf.icons.FlatFileViewFileIcon [UI]
FileView.floppyDriveIcon [lazy] 16,16 com.formdev.flatlaf.icons.FlatFileViewFloppyDriveIcon [UI]
FileView.fullRowSelection true
FileView.hardDriveIcon [lazy] 16,16 com.formdev.flatlaf.icons.FlatFileViewHardDriveIcon [UI]
@@ -1044,6 +1045,7 @@ TabbedPane.hasFullBorder false
TabbedPane.hiddenTabsNavigation moreTabsButton
TabbedPane.highlight #232324 HSL 240 1 14 javax.swing.plaf.ColorUIResource [UI]
TabbedPane.hoverColor #303234 HSL 210 4 20 com.formdev.flatlaf.util.DerivedColor [UI] darken(5%)
TabbedPane.inactiveUnderlineColor #466a92 HSL 212 35 42 javax.swing.plaf.ColorUIResource [UI]
TabbedPane.labelShift 1
TabbedPane.light #2f3031 HSL 210 2 19 javax.swing.plaf.ColorUIResource [UI]
TabbedPane.scrollButtonsPlacement both
@@ -1090,7 +1092,7 @@ Table.focusCellHighlightBorder [lazy] 2,3,2,3 false com.formdev.flatlaf.ui.F
Table.focusSelectedCellHighlightBorder [lazy] 2,3,2,3 false com.formdev.flatlaf.ui.FlatTableCellBorder$Selected [UI] lineColor=#000000 HSL 0 0 0 javax.swing.plaf.ColorUIResource [UI] lineThickness=1.000000
Table.font [active] $defaultFont [UI]
Table.foreground #bbbbbb HSL 0 0 73 javax.swing.plaf.ColorUIResource [UI]
Table.gridColor #525658 HSL 200 4 33 javax.swing.plaf.ColorUIResource [UI]
Table.gridColor #5a5e60 HSL 200 3 36 javax.swing.plaf.ColorUIResource [UI]
Table.intercellSpacing 0,0 javax.swing.plaf.DimensionUIResource [UI]
Table.rowHeight 20
Table.scrollPaneBorder [lazy] 1,1,1,1 false com.formdev.flatlaf.ui.FlatBorder [UI]

View File

@@ -317,6 +317,7 @@ FileView.computerIcon [lazy] 16,16 com.formdev.flatlaf.icons.FlatFil
FileView.directoryIcon [lazy] 16,16 com.formdev.flatlaf.icons.FlatFileViewDirectoryIcon [UI]
FileView.fileIcon [lazy] 16,16 com.formdev.flatlaf.icons.FlatFileViewFileIcon [UI]
FileView.floppyDriveIcon [lazy] 16,16 com.formdev.flatlaf.icons.FlatFileViewFloppyDriveIcon [UI]
FileView.fullRowSelection true
FileView.hardDriveIcon [lazy] 16,16 com.formdev.flatlaf.icons.FlatFileViewHardDriveIcon [UI]
@@ -1049,6 +1050,7 @@ TabbedPane.hasFullBorder false
TabbedPane.hiddenTabsNavigation moreTabsButton
TabbedPane.highlight #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
TabbedPane.hoverColor #e0e0e0 HSL 0 0 88 com.formdev.flatlaf.util.DerivedColor [UI] darken(7% autoInverse)
TabbedPane.inactiveUnderlineColor #97bbdc HSL 209 50 73 javax.swing.plaf.ColorUIResource [UI]
TabbedPane.labelShift 1
TabbedPane.light #e1e1e1 HSL 0 0 88 javax.swing.plaf.ColorUIResource [UI]
TabbedPane.scrollButtonsPlacement both
@@ -1095,7 +1097,7 @@ Table.focusCellHighlightBorder [lazy] 2,3,2,3 false com.formdev.flatlaf.ui.F
Table.focusSelectedCellHighlightBorder [lazy] 2,3,2,3 false com.formdev.flatlaf.ui.FlatTableCellBorder$Selected [UI] lineColor=#000000 HSL 0 0 0 javax.swing.plaf.ColorUIResource [UI] lineThickness=1.000000
Table.font [active] $defaultFont [UI]
Table.foreground #000000 HSL 0 0 0 javax.swing.plaf.ColorUIResource [UI]
Table.gridColor #f2f2f2 HSL 0 0 95 javax.swing.plaf.ColorUIResource [UI]
Table.gridColor #ebebeb HSL 0 0 92 javax.swing.plaf.ColorUIResource [UI]
Table.intercellSpacing 0,0 javax.swing.plaf.DimensionUIResource [UI]
Table.rowHeight 20
Table.scrollPaneBorder [lazy] 1,1,1,1 false com.formdev.flatlaf.ui.FlatBorder [UI]

View File

@@ -318,6 +318,7 @@ FileView.computerIcon [lazy] 16,16 com.formdev.flatlaf.icons.FlatFil
FileView.directoryIcon [lazy] 16,16 com.formdev.flatlaf.icons.FlatFileViewDirectoryIcon [UI]
FileView.fileIcon [lazy] 16,16 com.formdev.flatlaf.icons.FlatFileViewFileIcon [UI]
FileView.floppyDriveIcon [lazy] 16,16 com.formdev.flatlaf.icons.FlatFileViewFloppyDriveIcon [UI]
FileView.fullRowSelection true
FileView.hardDriveIcon [lazy] 16,16 com.formdev.flatlaf.icons.FlatFileViewHardDriveIcon [UI]
@@ -1059,6 +1060,7 @@ TabbedPane.hasFullBorder false
TabbedPane.hiddenTabsNavigation moreTabsButton
TabbedPane.highlight #ffffff HSL 0 0 100 javax.swing.plaf.ColorUIResource [UI]
TabbedPane.hoverColor #eeeeee HSL 0 0 93 javax.swing.plaf.ColorUIResource [UI]
TabbedPane.inactiveUnderlineColor #ff00ff HSL 300 100 50 javax.swing.plaf.ColorUIResource [UI]
TabbedPane.labelShift 1
TabbedPane.light #e3e3e3 HSL 0 0 89 javax.swing.plaf.ColorUIResource [UI]
TabbedPane.scrollButtonsPlacement both

View File

@@ -347,6 +347,7 @@ TabbedPane.disabledForeground = #777
TabbedPane.selectedBackground = #0f0
TabbedPane.selectedForeground = #00f
TabbedPane.underlineColor = #ff0
TabbedPane.inactiveUnderlineColor = #f0f
TabbedPane.disabledUnderlineColor = #7a7a7a
TabbedPane.hoverColor = #eee
TabbedPane.focusColor = #ddd

View File

@@ -260,6 +260,7 @@ FileView.computerIcon
FileView.directoryIcon
FileView.fileIcon
FileView.floppyDriveIcon
FileView.fullRowSelection
FileView.hardDriveIcon
FormattedTextField.background
FormattedTextField.border
@@ -820,6 +821,7 @@ TabbedPane.hasFullBorder
TabbedPane.hiddenTabsNavigation
TabbedPane.highlight
TabbedPane.hoverColor
TabbedPane.inactiveUnderlineColor
TabbedPane.labelShift
TabbedPane.light
TabbedPane.scrollButtonsPlacement
@@ -848,6 +850,7 @@ TabbedPane.tabsPopupPolicy
TabbedPane.textIconGap
TabbedPane.underlineColor
TabbedPaneUI
Table.alternateRowColor
Table.ancestorInputMap
Table.ancestorInputMap.RightToLeft
Table.ascendingSortIcon

Binary file not shown.

View File

@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

View File

@@ -26,8 +26,8 @@ include( "flatlaf-testing" )
include( "flatlaf-theme-editor" )
includeProject( "flatlaf-natives-windows", "flatlaf-natives/flatlaf-natives-windows" )
includeProject( "flatlaf-natives-jna", "flatlaf-natives/flatlaf-natives-jna" )
includeProject( "flatlaf-testing-modular-app", "flatlaf-testing/flatlaf-testing-modular-app" )
includeProject( "flatlaf-natives-jna", "flatlaf-natives/flatlaf-natives-jna" )
includeProject( "flatlaf-testing-modular-app", "flatlaf-testing/flatlaf-testing-modular-app" )
fun includeProject( projectPath: String, projectDir: String ) {
include( projectPath )