Theme Editor:

- use JetBrains Mono font for editor area
- added Inter font to allow using it in preview (Java 11+)
This commit is contained in:
Karl Tauber
2022-05-29 16:54:06 +02:00
parent e7d2b5cbb6
commit 92cd6f8f34
3 changed files with 29 additions and 4 deletions

View File

@@ -22,6 +22,8 @@ plugins {
dependencies {
implementation( project( ":flatlaf-core" ) )
implementation( project( ":flatlaf-extras" ) )
implementation( project( ":flatlaf-fonts-inter" ) )
implementation( project( ":flatlaf-fonts-jetbrains-mono" ) )
implementation( "com.miglayout:miglayout-swing:5.3" )
implementation( "com.fifesoft:rsyntaxtextarea:3.1.4" )
@@ -32,6 +34,8 @@ tasks {
jar {
dependsOn( ":flatlaf-core:jar" )
dependsOn( ":flatlaf-extras:jar" )
dependsOn( ":flatlaf-fonts-inter:jar" )
dependsOn( ":flatlaf-fonts-jetbrains-mono:jar" )
manifest {
attributes( "Main-Class" to "com.formdev.flatlaf.themeeditor.FlatLafThemeEditor" )

View File

@@ -34,6 +34,7 @@ import javax.swing.JPanel;
import javax.swing.KeyStroke;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.text.StyleContext;
import org.fife.ui.autocomplete.AutoCompletion;
import org.fife.ui.autocomplete.CompletionProvider;
import org.fife.ui.rsyntaxtextarea.AbstractTokenMakerFactory;
@@ -48,6 +49,7 @@ import org.fife.ui.rtextarea.Gutter;
import org.fife.ui.rtextarea.RTextArea;
import org.fife.ui.rtextarea.RTextScrollPane;
import org.fife.ui.rtextarea.SearchContext;
import com.formdev.flatlaf.fonts.jetbrains_mono.FlatJetBrainsMonoFont;
import com.formdev.flatlaf.util.UIScale;
/**
@@ -128,8 +130,7 @@ class FlatThemeEditorPane
}
void updateTheme() {
Font defaultFont = RTextArea.getDefaultFont();
Font font = defaultFont.deriveFont( (float) UIManager.getFont( "defaultFont" ).getSize() );
Font font = createEditorFont( 0 );
textArea.setFont( font );
textArea.setBackground( UIManager.getColor( "FlatThemeEditorPane.background" ) );
@@ -161,14 +162,28 @@ class FlatThemeEditorPane
}
void updateFontSize( int sizeIncr ) {
Font defaultFont = RTextArea.getDefaultFont();
Font font = defaultFont.deriveFont( (float) UIManager.getFont( "defaultFont" ).getSize() + sizeIncr );
Font font = createEditorFont( sizeIncr );
textArea.setFont( font );
textArea.setSyntaxScheme( new FlatSyntaxScheme( font ) );
scrollPane.getGutter().setLineNumberFont( font );
}
private static Font createEditorFont( int sizeIncr ) {
int size = UIManager.getFont( "defaultFont" ).getSize() + sizeIncr;
StyleContext sc = StyleContext.getDefaultStyleContext();
Font font = sc.getFont( FlatJetBrainsMonoFont.FAMILY, Font.PLAIN, size );
if( isFallbackFont( font ) ) {
Font defaultFont = RTextArea.getDefaultFont();
font = defaultFont.deriveFont( (float) size );
}
return font;
}
private static boolean isFallbackFont( Font font ) {
return Font.DIALOG.equalsIgnoreCase( font.getFamily() );
}
void selected() {
if( findReplaceVisible )
showFindReplaceBar( false );

View File

@@ -63,6 +63,8 @@ import com.formdev.flatlaf.extras.FlatSVGIcon;
import com.formdev.flatlaf.extras.FlatSVGUtils;
import com.formdev.flatlaf.extras.FlatUIDefaultsInspector;
import com.formdev.flatlaf.extras.components.*;
import com.formdev.flatlaf.fonts.inter.FlatInterFont;
import com.formdev.flatlaf.fonts.jetbrains_mono.FlatJetBrainsMonoFont;
import com.formdev.flatlaf.icons.FlatClearIcon;
import com.formdev.flatlaf.ui.FlatUIUtils;
import com.formdev.flatlaf.util.StringUtils;
@@ -105,6 +107,10 @@ class FlatThemeFileEditor
System.setProperty( "user.language", "en" );
SwingUtilities.invokeLater( () -> {
if( SystemInfo.isJava_11_orLater )
FlatInterFont.install();
FlatJetBrainsMonoFont.install();
FlatLaf.registerCustomDefaultsSource( "com.formdev.flatlaf.themeeditor" );
try {