X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTFontChooserWindow.java;fp=src%2Fjexer%2FTFontChooserWindow.java;h=0000000000000000000000000000000000000000;hb=36b0745bab5665306391440a531e1ee1c0625445;hp=62eabb632d4841acd354bb5e0901a8e4ff4a8a93;hpb=686d4da2d2ecc203d5f8b524225a4327777825be;p=fanfix.git diff --git a/src/jexer/TFontChooserWindow.java b/src/jexer/TFontChooserWindow.java deleted file mode 100644 index 62eabb6..0000000 --- a/src/jexer/TFontChooserWindow.java +++ /dev/null @@ -1,628 +0,0 @@ -/* - * Jexer - Java Text User Interface - * - * The MIT License (MIT) - * - * Copyright (C) 2019 Kevin Lamonte - * - * 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. - * - * @author Kevin Lamonte [kevin.lamonte@gmail.com] - * @version 1 - */ -package jexer; - -import java.awt.Font; -import java.awt.GraphicsEnvironment; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.ResourceBundle; - -import jexer.backend.ECMA48Terminal; -import jexer.backend.SwingTerminal; -import jexer.bits.CellAttributes; -import jexer.bits.GraphicsChars; -import jexer.event.TKeypressEvent; -import static jexer.TKeypress.*; - -/** - * TFontChooserWindow provides an easy UI for users to alter the running - * font. - * - */ -public class TFontChooserWindow extends TWindow { - - /** - * Translated strings. - */ - private static final ResourceBundle i18n = ResourceBundle.getBundle(TFontChooserWindow.class.getName()); - - // ------------------------------------------------------------------------ - // Variables -------------------------------------------------------------- - // ------------------------------------------------------------------------ - - /** - * The Swing screen. - */ - private SwingTerminal terminal = null; - - /** - * The ECMA48 screen. - */ - private ECMA48Terminal ecmaTerminal = null; - - /** - * The font name. - */ - private TComboBox fontName; - - /** - * The font size. - */ - private TField fontSize; - - /** - * The X text adjustment. - */ - private TField textAdjustX; - - /** - * The Y text adjustment. - */ - private TField textAdjustY; - - /** - * The height text adjustment. - */ - private TField textAdjustHeight; - - /** - * The width text adjustment. - */ - private TField textAdjustWidth; - - /** - * The sixel palette size. - */ - private TComboBox sixelPaletteSize; - - /** - * The original font size. - */ - private int oldFontSize = 20; - - /** - * The original font. - */ - private Font oldFont = null; - - /** - * The original text adjust X value. - */ - private int oldTextAdjustX = 0; - - /** - * The original text adjust Y value. - */ - private int oldTextAdjustY = 0; - - /** - * The original text adjust height value. - */ - private int oldTextAdjustHeight = 0; - - /** - * The original text adjust width value. - */ - private int oldTextAdjustWidth = 0; - - /** - * The original sixel palette (number of colors) value. - */ - private int oldSixelPaletteSize = 1024; - - // ------------------------------------------------------------------------ - // Constructors ----------------------------------------------------------- - // ------------------------------------------------------------------------ - - /** - * Public constructor. The window will be centered on screen. - * - * @param application the TApplication that manages this window - */ - public TFontChooserWindow(final TApplication application) { - - // Register with the TApplication - super(application, i18n.getString("windowTitle"), 0, 0, 60, 21, MODAL); - - // Add shortcut text - newStatusBar(i18n.getString("statusBar")); - - if (getScreen() instanceof SwingTerminal) { - terminal = (SwingTerminal) getScreen(); - } - if (getScreen() instanceof ECMA48Terminal) { - ecmaTerminal = (ECMA48Terminal) getScreen(); - } - - addLabel(i18n.getString("fontName"), 1, 1, "ttext", false); - addLabel(i18n.getString("fontSize"), 1, 2, "ttext", false); - addLabel(i18n.getString("textAdjustX"), 1, 4, "ttext", false); - addLabel(i18n.getString("textAdjustY"), 1, 5, "ttext", false); - addLabel(i18n.getString("textAdjustHeight"), 1, 6, "ttext", false); - addLabel(i18n.getString("textAdjustWidth"), 1, 7, "ttext", false); - addLabel(i18n.getString("sixelPaletteSize"), 1, 9, "ttext", false); - - int col = 21; - if (terminal == null) { - // Non-Swing case: we can't change anything - addLabel(i18n.getString("unavailable"), col, 1); - addLabel(i18n.getString("unavailable"), col, 2); - addLabel(i18n.getString("unavailable"), col, 4); - addLabel(i18n.getString("unavailable"), col, 5); - addLabel(i18n.getString("unavailable"), col, 6); - addLabel(i18n.getString("unavailable"), col, 7); - } - if (ecmaTerminal == null) { - addLabel(i18n.getString("unavailable"), col, 9); - } - if (ecmaTerminal != null) { - oldSixelPaletteSize = ecmaTerminal.getSixelPaletteSize(); - - String [] sixelSizes = { "2", "256", "512", "1024", "2048" }; - List sizes = new ArrayList(); - sizes.addAll(Arrays.asList(sixelSizes)); - sixelPaletteSize = addComboBox(col, 9, 10, sizes, 0, 6, - new TAction() { - public void DO() { - try { - ecmaTerminal.setSixelPaletteSize(Integer.parseInt( - sixelPaletteSize.getText())); - } catch (NumberFormatException e) { - // SQUASH - } - } - } - ); - sixelPaletteSize.setText(Integer.toString(oldSixelPaletteSize)); - } - - if (terminal != null) { - oldFont = terminal.getFont(); - oldFontSize = terminal.getFontSize(); - oldTextAdjustX = terminal.getTextAdjustX(); - oldTextAdjustY = terminal.getTextAdjustY(); - oldTextAdjustHeight = terminal.getTextAdjustHeight(); - oldTextAdjustWidth = terminal.getTextAdjustWidth(); - - String [] fontNames = GraphicsEnvironment. - getLocalGraphicsEnvironment().getAvailableFontFamilyNames(); - List fonts = new ArrayList(); - fonts.add(0, i18n.getString("builtInTerminus")); - fonts.addAll(Arrays.asList(fontNames)); - fontName = addComboBox(col, 1, 25, fonts, 0, 10, - new TAction() { - public void DO() { - if (fontName.getText().equals(i18n. - getString("builtInTerminus"))) { - - terminal.setDefaultFont(); - } else { - terminal.setFont(new Font(fontName.getText(), - Font.PLAIN, terminal.getFontSize())); - fontSize.setText(Integer.toString( - terminal.getFontSize())); - textAdjustX.setText(Integer.toString( - terminal.getTextAdjustX())); - textAdjustY.setText(Integer.toString( - terminal.getTextAdjustY())); - textAdjustHeight.setText(Integer.toString( - terminal.getTextAdjustHeight())); - textAdjustWidth.setText(Integer.toString( - terminal.getTextAdjustWidth())); - } - } - } - ); - - // Font size - fontSize = addField(col, 2, 3, true, - Integer.toString(terminal.getFontSize()), - new TAction() { - public void DO() { - int currentSize = terminal.getFontSize(); - int newSize = currentSize; - try { - newSize = Integer.parseInt(fontSize.getText()); - } catch (NumberFormatException e) { - fontSize.setText(Integer.toString(currentSize)); - } - if (newSize != currentSize) { - terminal.setFontSize(newSize); - textAdjustX.setText(Integer.toString( - terminal.getTextAdjustX())); - textAdjustY.setText(Integer.toString( - terminal.getTextAdjustY())); - textAdjustHeight.setText(Integer.toString( - terminal.getTextAdjustHeight())); - textAdjustWidth.setText(Integer.toString( - terminal.getTextAdjustWidth())); - } - } - }, - null); - - addSpinner(col + 3, 2, - new TAction() { - public void DO() { - int currentSize = terminal.getFontSize(); - int newSize = currentSize; - try { - newSize = Integer.parseInt(fontSize.getText()); - newSize++; - } catch (NumberFormatException e) { - fontSize.setText(Integer.toString(currentSize)); - } - fontSize.setText(Integer.toString(newSize)); - if (newSize != currentSize) { - terminal.setFontSize(newSize); - textAdjustX.setText(Integer.toString( - terminal.getTextAdjustX())); - textAdjustY.setText(Integer.toString( - terminal.getTextAdjustY())); - textAdjustHeight.setText(Integer.toString( - terminal.getTextAdjustHeight())); - textAdjustWidth.setText(Integer.toString( - terminal.getTextAdjustWidth())); - } - } - }, - new TAction() { - public void DO() { - int currentSize = terminal.getFontSize(); - int newSize = currentSize; - try { - newSize = Integer.parseInt(fontSize.getText()); - newSize--; - } catch (NumberFormatException e) { - fontSize.setText(Integer.toString(currentSize)); - } - fontSize.setText(Integer.toString(newSize)); - if (newSize != currentSize) { - terminal.setFontSize(newSize); - textAdjustX.setText(Integer.toString( - terminal.getTextAdjustX())); - textAdjustY.setText(Integer.toString( - terminal.getTextAdjustY())); - textAdjustHeight.setText(Integer.toString( - terminal.getTextAdjustHeight())); - textAdjustWidth.setText(Integer.toString( - terminal.getTextAdjustWidth())); - } - } - } - ); - - // textAdjustX - textAdjustX = addField(col, 4, 3, true, - Integer.toString(terminal.getTextAdjustX()), - new TAction() { - public void DO() { - int currentAdjust = terminal.getTextAdjustX(); - int newAdjust = currentAdjust; - try { - newAdjust = Integer.parseInt(textAdjustX.getText()); - } catch (NumberFormatException e) { - textAdjustX.setText(Integer.toString(currentAdjust)); - } - if (newAdjust != currentAdjust) { - terminal.setTextAdjustX(newAdjust); - } - } - }, - null); - - addSpinner(col + 3, 4, - new TAction() { - public void DO() { - int currentAdjust = terminal.getTextAdjustX(); - int newAdjust = currentAdjust; - try { - newAdjust = Integer.parseInt(textAdjustX.getText()); - newAdjust++; - } catch (NumberFormatException e) { - textAdjustX.setText(Integer.toString(currentAdjust)); - } - textAdjustX.setText(Integer.toString(newAdjust)); - if (newAdjust != currentAdjust) { - terminal.setTextAdjustX(newAdjust); - } - } - }, - new TAction() { - public void DO() { - int currentAdjust = terminal.getTextAdjustX(); - int newAdjust = currentAdjust; - try { - newAdjust = Integer.parseInt(textAdjustX.getText()); - newAdjust--; - } catch (NumberFormatException e) { - textAdjustX.setText(Integer.toString(currentAdjust)); - } - textAdjustX.setText(Integer.toString(newAdjust)); - if (newAdjust != currentAdjust) { - terminal.setTextAdjustX(newAdjust); - } - } - } - ); - - // textAdjustY - textAdjustY = addField(col, 5, 3, true, - Integer.toString(terminal.getTextAdjustY()), - new TAction() { - public void DO() { - int currentAdjust = terminal.getTextAdjustY(); - int newAdjust = currentAdjust; - try { - newAdjust = Integer.parseInt(textAdjustY.getText()); - } catch (NumberFormatException e) { - textAdjustY.setText(Integer.toString(currentAdjust)); - } - if (newAdjust != currentAdjust) { - terminal.setTextAdjustY(newAdjust); - } - } - }, - null); - - addSpinner(col + 3, 5, - new TAction() { - public void DO() { - int currentAdjust = terminal.getTextAdjustY(); - int newAdjust = currentAdjust; - try { - newAdjust = Integer.parseInt(textAdjustY.getText()); - newAdjust++; - } catch (NumberFormatException e) { - textAdjustY.setText(Integer.toString(currentAdjust)); - } - textAdjustY.setText(Integer.toString(newAdjust)); - if (newAdjust != currentAdjust) { - terminal.setTextAdjustY(newAdjust); - } - } - }, - new TAction() { - public void DO() { - int currentAdjust = terminal.getTextAdjustY(); - int newAdjust = currentAdjust; - try { - newAdjust = Integer.parseInt(textAdjustY.getText()); - newAdjust--; - } catch (NumberFormatException e) { - textAdjustY.setText(Integer.toString(currentAdjust)); - } - textAdjustY.setText(Integer.toString(newAdjust)); - if (newAdjust != currentAdjust) { - terminal.setTextAdjustY(newAdjust); - } - } - } - ); - - // textAdjustHeight - textAdjustHeight = addField(col, 6, 3, true, - Integer.toString(terminal.getTextAdjustHeight()), - new TAction() { - public void DO() { - int currentAdjust = terminal.getTextAdjustHeight(); - int newAdjust = currentAdjust; - try { - newAdjust = Integer.parseInt(textAdjustHeight.getText()); - } catch (NumberFormatException e) { - textAdjustHeight.setText(Integer.toString(currentAdjust)); - } - if (newAdjust != currentAdjust) { - terminal.setTextAdjustHeight(newAdjust); - } - } - }, - null); - - addSpinner(col + 3, 6, - new TAction() { - public void DO() { - int currentAdjust = terminal.getTextAdjustHeight(); - int newAdjust = currentAdjust; - try { - newAdjust = Integer.parseInt(textAdjustHeight.getText()); - newAdjust++; - } catch (NumberFormatException e) { - textAdjustHeight.setText(Integer.toString(currentAdjust)); - } - textAdjustHeight.setText(Integer.toString(newAdjust)); - if (newAdjust != currentAdjust) { - terminal.setTextAdjustHeight(newAdjust); - } - } - }, - new TAction() { - public void DO() { - int currentAdjust = terminal.getTextAdjustHeight(); - int newAdjust = currentAdjust; - try { - newAdjust = Integer.parseInt(textAdjustHeight.getText()); - newAdjust--; - } catch (NumberFormatException e) { - textAdjustHeight.setText(Integer.toString(currentAdjust)); - } - textAdjustHeight.setText(Integer.toString(newAdjust)); - if (newAdjust != currentAdjust) { - terminal.setTextAdjustHeight(newAdjust); - } - } - } - ); - - // textAdjustWidth - textAdjustWidth = addField(col, 7, 3, true, - Integer.toString(terminal.getTextAdjustWidth()), - new TAction() { - public void DO() { - int currentAdjust = terminal.getTextAdjustWidth(); - int newAdjust = currentAdjust; - try { - newAdjust = Integer.parseInt(textAdjustWidth.getText()); - } catch (NumberFormatException e) { - textAdjustWidth.setText(Integer.toString(currentAdjust)); - } - if (newAdjust != currentAdjust) { - terminal.setTextAdjustWidth(newAdjust); - } - } - }, - null); - - addSpinner(col + 3, 7, - new TAction() { - public void DO() { - int currentAdjust = terminal.getTextAdjustWidth(); - int newAdjust = currentAdjust; - try { - newAdjust = Integer.parseInt(textAdjustWidth.getText()); - newAdjust++; - } catch (NumberFormatException e) { - textAdjustWidth.setText(Integer.toString(currentAdjust)); - } - textAdjustWidth.setText(Integer.toString(newAdjust)); - if (newAdjust != currentAdjust) { - terminal.setTextAdjustWidth(newAdjust); - } - } - }, - new TAction() { - public void DO() { - int currentAdjust = terminal.getTextAdjustWidth(); - int newAdjust = currentAdjust; - try { - newAdjust = Integer.parseInt(textAdjustWidth.getText()); - newAdjust--; - } catch (NumberFormatException e) { - textAdjustWidth.setText(Integer.toString(currentAdjust)); - } - textAdjustWidth.setText(Integer.toString(newAdjust)); - if (newAdjust != currentAdjust) { - terminal.setTextAdjustWidth(newAdjust); - } - } - } - ); - - } - - addButton(i18n.getString("okButton"), 18, getHeight() - 4, - new TAction() { - public void DO() { - // Close window. - TFontChooserWindow.this.close(); - } - }); - - TButton cancelButton = addButton(i18n.getString("cancelButton"), - 30, getHeight() - 4, - new TAction() { - public void DO() { - // Restore old values, then close the window. - if (terminal != null) { - terminal.setFont(oldFont); - terminal.setFontSize(oldFontSize); - terminal.setTextAdjustX(oldTextAdjustX); - terminal.setTextAdjustY(oldTextAdjustY); - terminal.setTextAdjustHeight(oldTextAdjustHeight); - terminal.setTextAdjustWidth(oldTextAdjustWidth); - } - if (ecmaTerminal != null) { - ecmaTerminal.setSixelPaletteSize(oldSixelPaletteSize); - } - TFontChooserWindow.this.close(); - } - }); - - // Save this for last: make the cancel button default action. - activate(cancelButton); - - } - - // ------------------------------------------------------------------------ - // Event handlers --------------------------------------------------------- - // ------------------------------------------------------------------------ - - /** - * Handle keystrokes. - * - * @param keypress keystroke event - */ - @Override - public void onKeypress(final TKeypressEvent keypress) { - // Escape - behave like cancel - if (keypress.equals(kbEsc)) { - // Restore old values, then close the window. - if (terminal != null) { - terminal.setFont(oldFont); - terminal.setFontSize(oldFontSize); - } - if (ecmaTerminal != null) { - ecmaTerminal.setSixelPaletteSize(oldSixelPaletteSize); - } - getApplication().closeWindow(this); - return; - } - - // Pass to my parent - super.onKeypress(keypress); - } - - // ------------------------------------------------------------------------ - // TWindow ---------------------------------------------------------------- - // ------------------------------------------------------------------------ - - /** - * Draw me on screen. - */ - @Override - public void draw() { - super.draw(); - - int left = 34; - CellAttributes color = getTheme().getColor("ttext"); - drawBox(left, 6, left + 24, 14, color, color, 3, false); - putStringXY(left + 2, 6, i18n.getString("sample"), color); - for (int i = 7; i < 13; i++) { - hLineXY(left + 1, i, 22, GraphicsChars.HATCH, color); - } - - } - - // ------------------------------------------------------------------------ - // TFontChooserWindow ----------------------------------------------------- - // ------------------------------------------------------------------------ - -}