in progress
[jalview.git] / forester / java / src / org / forester / archaeopteryx / TreeFontSet.java
index 95730b8..0a1c59d 100644 (file)
@@ -36,30 +36,29 @@ import java.awt.FontMetrics;
  */
 public final class TreeFontSet {
 
+    static final int            BOLD_AND_ITALIC           = Font.BOLD + Font.ITALIC;
+    final static float          FONT_SIZE_CHANGE_STEP     = 1.0f;
     final static float          SMALL_FONTS_BASE          = 8;
     private final static String DEFAULT_FONT              = "Verdana";
-    final static float          FONT_SIZE_CHANGE_STEP     = 1.0f;
-    static final int            BOLD_AND_ITALIC           = Font.BOLD + Font.ITALIC;
+    private Font                _base_font;
+    private boolean             _decreased_size_by_system = false;
+    private FontMetrics         _fm_large;
+    // Handy holders for font metrics
+    private FontMetrics         _fm_small;
+    private Font                _large_font;
+    private Font                _large_font_memory;
+    private Font                _large_font_system;
+    private final int           _max;
+    private final int           _min;
     // the owner (needed to get font metrics)
     private final MainPanel     _owner;
     // The fonts
     private Font                _small_font;
-    private Font                _large_font;
-    private Font                _base_font;
-    private Font                _small_font_system;
-    private Font                _large_font_system;
     private Font                _small_font_memory;
-    private Font                _large_font_memory;
-    // Handy holders for font metrics
-    public FontMetrics          _fm_small;
-    FontMetrics                 _fm_large;
-    FontMetrics                 _fm_large_bold;
+    private Font                _small_font_system;
+    private int                 _small_max_ascent         = 0;
     // hold font measurements
-    int                         _small_max_descent        = 0;
-    int                         _small_max_ascent         = 0;
-    private final int           _min;
-    private final int           _max;
-    private boolean             _decreased_size_by_system = false;
+    private int                 _small_max_descent        = 0;
 
     TreeFontSet( final MainPanel owner ) {
         _owner = owner;
@@ -68,10 +67,26 @@ public final class TreeFontSet {
         setBaseFont( new Font( DEFAULT_FONT, Font.PLAIN, 10 ) );
     }
 
+    public FontMetrics getFontMetricsLarge() {
+        return _fm_large;
+    }
+
+    public FontMetrics getFontMetricsSmall() {
+        return _fm_small;
+    }
+
     public Font getSmallFont() {
         return _small_font;
     }
 
+    public int getSmallMaxAscent() {
+        return _small_max_ascent;
+    }
+
+    public int getSmallMaxDescent() {
+        return _small_max_descent;
+    }
+
     void decreaseFontSize( final int min, final boolean decreased_size_by_system ) {
         if ( decreased_size_by_system && !isDecreasedSizeBySystem() ) {
             _small_font_memory = _small_font;
@@ -85,10 +100,6 @@ public final class TreeFontSet {
         }
     }
 
-    Font getLargeFontMemory() {
-        return _large_font_memory;
-    }
-
     Font getBaseFont() {
         return _base_font;
     }
@@ -97,6 +108,10 @@ public final class TreeFontSet {
         return _large_font;
     }
 
+    Font getLargeFontMemory() {
+        return _large_font_memory;
+    }
+
     Font getSmallFontSystem() {
         return _small_font_system;
     }
@@ -136,7 +151,7 @@ public final class TreeFontSet {
 
     void smallFonts() {
         setDecreasedSizeBySystem( false );
-        _small_font = _small_font.deriveFont( SMALL_FONTS_BASE - 1 );
+        _small_font = _small_font.deriveFont( SMALL_FONTS_BASE - 2 );
         _large_font = _large_font.deriveFont( SMALL_FONTS_BASE );
         setupFontMetrics();
     }
@@ -144,13 +159,13 @@ public final class TreeFontSet {
     void superTinyFonts() {
         setDecreasedSizeBySystem( false );
         _small_font = _small_font.deriveFont( 2f );
-        _large_font = _large_font.deriveFont( 3f );
+        _large_font = _large_font.deriveFont( 4f );
         setupFontMetrics();
     }
 
     void tinyFonts() {
         setDecreasedSizeBySystem( false );
-        _small_font = _small_font.deriveFont( 5f );
+        _small_font = _small_font.deriveFont( 4f );
         _large_font = _large_font.deriveFont( 6f );
         setupFontMetrics();
     }
@@ -160,7 +175,7 @@ public final class TreeFontSet {
     }
 
     private void intializeFonts() {
-        final int small_size = getBaseFont().getSize() - 1;
+        final int small_size = getBaseFont().getSize() - 2;
         int italic = Font.ITALIC;
         if ( getBaseFont().getStyle() == Font.BOLD ) {
             italic = italic + Font.BOLD;
@@ -181,7 +196,6 @@ public final class TreeFontSet {
     private void setupFontMetrics() {
         _fm_small = _owner.getFontMetrics( _small_font );
         _fm_large = _owner.getFontMetrics( _large_font );
-        _fm_large_bold = _owner.getFontMetrics( _large_font.deriveFont( Font.BOLD ) );
         _small_max_descent = _fm_small.getMaxDescent();
         _small_max_ascent = _fm_small.getMaxAscent() + 1;
     }