Ubuntu Monospace font

This commit is contained in:
dotmg 2026-01-16 15:47:16 +01:00
parent 73981aca6f
commit 46338d2b93
6 changed files with 110 additions and 125 deletions

View file

@ -1,3 +1,4 @@
Manifest-Version: 1.0 Manifest-Version: 1.0
Main-Class: net.infordata.em.Main Main-Class: net.infordata.em.Main
Created-By: 17.0.13 (Debian)

View file

@ -3,7 +3,7 @@
# Let's go to the folder containing the build.sh file # Let's go to the folder containing the build.sh file
# We don't want to remove all .class files on the system should # We don't want to remove all .class files on the system should
# the script run on / # the script run on /
VERSION="0.1-1.19i" VERSION="0.2.1"
BASEDIR=$(dirname $0) BASEDIR=$(dirname $0)
echo $BASEDIR echo $BASEDIR
cd $BASEDIR cd $BASEDIR
@ -13,9 +13,10 @@ cd $BASEDIR
find . -name "*.class" | xargs rm -rf find . -name "*.class" | xargs rm -rf
find . -name "*.java" > .javasources.txt find . -name "*.java" > .javasources.txt
javac -target 7 -source 7 -encoding "ISO8859-1" @.javasources.txt javac -encoding "ISO8859-1" @.javasources.txt
#rm -f .javasources.txt #rm -f .javasources.txt
JARFILE="xtn5250mg-${VERSION}.jar" JARFILE="xtn5250mg-${VERSION}.jar"
rm -f $JARFILE rm -f $JARFILE
jar cvmf META-INF/MANIFEST.MF $JARFILE build.sh net README logging.properties -C res res jar cvmf META-INF/MANIFEST.MF $JARFILE build.sh net -C res res
find . -name "*.class" | xargs rm -rf

View file

@ -20,10 +20,10 @@ import net.infordata.em.crt5250.XI5250Field;
import net.infordata.em.crt5250.XIEbcdicTranslator; import net.infordata.em.crt5250.XIEbcdicTranslator;
import net.infordata.em.tn5250.XI5250Emulator; import net.infordata.em.tn5250.XI5250Emulator;
import net.infordata.em.tn5250.XI5250Frame; import net.infordata.em.tn5250.XI5250Frame;
import net.infordata.em.tn5250ext.PSHBTNCHCHandler; //import net.infordata.em.tn5250ext.PSHBTNCHCHandler;
import net.infordata.em.tn5250ext.XI5250EmulatorExt; //import net.infordata.em.tn5250ext.XI5250EmulatorExt;
import net.infordata.em.tn5250ext.XI5250PanelHandler; //import net.infordata.em.tn5250ext.XI5250PanelHandler;
import net.infordata.em.tn5250ext.XI5250PanelsDispatcher; //import net.infordata.em.tn5250ext.XI5250PanelsDispatcher;
import net.infordata.em.tn5250.XIImagesBdl; import net.infordata.em.tn5250.XIImagesBdl;
@ -41,7 +41,7 @@ public class Main {
private static void usageError(String msg) { private static void usageError(String msg) {
System.err.println(msg); System.err.println(msg);
System.err.println("Usage: [-3dFX] [-PSHBTNCHC] [-STRPCCMD] [-altFKeyRemap]" + System.err.println("Usage: [-3dFX] /*[-PSHBTNCHC]*/ [-STRPCCMD] [-altFKeyRemap]" +
" [-maximized] [-cp codepage] [-devName name]" + " [-maximized] [-cp codepage] [-devName name]" +
" [-autoLogon <fieldsCount>;<usrFieldLabel>;<pwdFieldLabel>;<user>;<passwd>]" + " [-autoLogon <fieldsCount>;<usrFieldLabel>;<pwdFieldLabel>;<user>;<passwd>]" +
" host-name"); " host-name");
@ -59,11 +59,7 @@ public class Main {
fntSize = fontSize; fntSize = fontSize;
} }
InputStream is = null; InputStream is = null;
try { is = theClass.getResourceAsStream("/res/ubuntu-mono-regular.ttf");
is = new FileInputStream("/tmp/Inconsolata.otf");
} catch (FileNotFoundException ex) {
System.err.println("file not found font : " + ex);
}
Font font = null; Font font = null;
try { try {
System.err.println(" createFont Testing res/" + fontFileName + " ... "); System.err.println(" createFont Testing res/" + fontFileName + " ... ");
@ -90,7 +86,7 @@ public class Main {
boolean pUse3dFX = false; boolean pUse3dFX = false;
boolean pAltFKeyRemap = false; boolean pAltFKeyRemap = false;
boolean pPSHBTNCHC = false; //boolean pPSHBTNCHC = false;
boolean pSTRPCCMD = false; boolean pSTRPCCMD = false;
boolean pMaximized = false; boolean pMaximized = false;
@ -107,8 +103,8 @@ public class Main {
if (arg.startsWith("-")) { if (arg.startsWith("-")) {
if ("-3dfx".equalsIgnoreCase(arg)) if ("-3dfx".equalsIgnoreCase(arg))
pUse3dFX = true; pUse3dFX = true;
else if ("-PSHBTNCHC".equalsIgnoreCase(arg)) // else if ("-PSHBTNCHC".equalsIgnoreCase(arg))
pPSHBTNCHC = true; // pPSHBTNCHC = true;
else if ("-STRPCCMD".equalsIgnoreCase(arg)) else if ("-STRPCCMD".equalsIgnoreCase(arg))
pSTRPCCMD = true; pSTRPCCMD = true;
else if ("-maximized".equalsIgnoreCase(arg)) else if ("-maximized".equalsIgnoreCase(arg))
@ -155,7 +151,7 @@ public class Main {
final boolean altFKeyRemap = pAltFKeyRemap; final boolean altFKeyRemap = pAltFKeyRemap;
final boolean use3dFX = pUse3dFX; final boolean use3dFX = pUse3dFX;
final boolean enablePSHBTNCHC = pPSHBTNCHC; // final boolean enablePSHBTNCHC = pPSHBTNCHC;
final boolean enableSTRPCCMD = pSTRPCCMD; final boolean enableSTRPCCMD = pSTRPCCMD;
final boolean maximized = pMaximized; final boolean maximized = pMaximized;
final String host = pHost; final String host = pHost;
@ -166,25 +162,26 @@ public class Main {
SwingUtilities.invokeAndWait(new Runnable() { SwingUtilities.invokeAndWait(new Runnable() {
public void run() { public void run() {
XI5250Emulator em; XI5250Emulator em;
if (enablePSHBTNCHC) { // if (enablePSHBTNCHC) {
XI5250EmulatorExt emext = new XI5250EmulatorExt(); // XI5250EmulatorExt emext = new XI5250EmulatorExt();
PanelsDispatcher disp = new PanelsDispatcher(); // PanelsDispatcher disp = new PanelsDispatcher();
disp.setEmulator(emext); // disp.setEmulator(emext);
new PSHBTNCHCHandler(disp); // new PSHBTNCHCHandler(disp);
if (autoLogonInfo != null) // if (autoLogonInfo != null)
new AutoLogonHandler(disp, autoLogonInfo); // new AutoLogonHandler(disp, autoLogonInfo);
em = emext; // em = emext;
} // }
else if (autoLogonInfo != null) { // else if (autoLogonInfo != null) {
XI5250EmulatorExt emext = new XI5250EmulatorExt(); // if (autoLogonInfo != null) {
PanelsDispatcher disp = new PanelsDispatcher(); // XI5250EmulatorExt emext = new XI5250EmulatorExt();
disp.setEmulator(emext); // PanelsDispatcher disp = new PanelsDispatcher();
new AutoLogonHandler(disp, autoLogonInfo); // disp.setEmulator(emext);
em = emext; // new AutoLogonHandler(disp, autoLogonInfo);
} // em = emext;
else { // }
// else {
em = new XI5250Emulator(); em = new XI5250Emulator();
} // }
em.setTerminalType("IBM-3477-FC"); em.setTerminalType("IBM-3477-FC");
em.setKeyboardQueue(true); em.setKeyboardQueue(true);
@ -200,11 +197,8 @@ public class Main {
em.setActive(true); em.setActive(true);
} }
Font mahefaFont = loadFontFromResource(Main.class, "MonoSpaced", 1);
em.setFont(mahefaFont);
XI5250Frame frm = new XI5250Frame("xtn5250mg" + " " + XI5250Frame frm = new XI5250Frame("xtn5250mg" + " " +
XI5250Emulator.VERSION, em); XI5250Emulator.VERSION, em);
frm.setFont(mahefaFont);
frm.setIconImage(cvImagesBdl.getImage("Logo")); frm.setIconImage(cvImagesBdl.getImage("Logo"));
frm.addWindowListener(new WindowAdapter() { frm.addWindowListener(new WindowAdapter() {
@ -240,36 +234,36 @@ public class Main {
////// //////
private static class PanelsDispatcher extends XI5250PanelsDispatcher { // private static class PanelsDispatcher extends XI5250PanelsDispatcher {
//
private AutoLogonHandler ivAutoLogonHandler; // private AutoLogonHandler ivAutoLogonHandler;
private XI5250PanelHandler ivHandler; // private XI5250PanelHandler ivHandler;
//
@Override // @Override
public synchronized void addPanelHandler(XI5250PanelHandler panel) { // public synchronized void addPanelHandler(XI5250PanelHandler panel) {
if (panel instanceof AutoLogonHandler) { // if (panel instanceof AutoLogonHandler) {
if (ivAutoLogonHandler != null) // if (ivAutoLogonHandler != null)
throw new IllegalArgumentException("Handler already setted"); // throw new IllegalArgumentException("Handler already setted");
ivAutoLogonHandler = (AutoLogonHandler)panel; // ivAutoLogonHandler = (AutoLogonHandler)panel;
return; // return;
} // }
if (ivHandler != null) // if (ivHandler != null)
throw new IllegalArgumentException("Handler already setted"); // throw new IllegalArgumentException("Handler already setted");
ivHandler = panel; // ivHandler = panel;
} // }
//
@Override // @Override
protected synchronized XI5250PanelHandler getCurrentPanelHandler() { // protected synchronized XI5250PanelHandler getCurrentPanelHandler() {
return (ivAutoLogonHandler != null && ivAutoLogonHandler.detailedTest()) ? ivAutoLogonHandler : ivHandler; // return (ivAutoLogonHandler != null && ivAutoLogonHandler.detailedTest()) ? ivAutoLogonHandler : ivHandler;
} // }
//
@Override // @Override
public synchronized void removePanelHandler(XI5250PanelHandler panel) { // public synchronized void removePanelHandler(XI5250PanelHandler panel) {
if (ivHandler != panel) // if (ivHandler != panel)
throw new IllegalArgumentException("Not the registered handler " + panel); // throw new IllegalArgumentException("Not the registered handler " + panel);
ivHandler = null; // ivHandler = null;
} // }
} // }
////// //////
@ -300,48 +294,48 @@ public class Main {
////// //////
private static class AutoLogonHandler extends XI5250PanelHandler { // private static class AutoLogonHandler extends XI5250PanelHandler {
//
private final LogonInfo ivLogonInfo; // private final LogonInfo ivLogonInfo;
private boolean ivLoggedOn; // private boolean ivLoggedOn;
//
public AutoLogonHandler(XI5250PanelsDispatcher aPanelDisp, LogonInfo info) { // public AutoLogonHandler(XI5250PanelsDispatcher aPanelDisp, LogonInfo info) {
super(aPanelDisp); // super(aPanelDisp);
ivLogonInfo = info; // ivLogonInfo = info;
} // }
//
@Override // @Override
protected boolean detailedTest() { // protected boolean detailedTest() {
if (ivLoggedOn) // if (ivLoggedOn)
return false; // return false;
// I'm expecting xx fields in the logon panel // // I'm expecting xx fields in the logon panel
if (getFields().size() != ivLogonInfo.fieldsCount) // if (getFields().size() != ivLogonInfo.fieldsCount)
return false; // return false;
// Is there the user id field ? // // Is there the user id field ?
if (!checkField(getFieldNextTo(ivLogonInfo.userLabel), 10)) // if (!checkField(getFieldNextTo(ivLogonInfo.userLabel), 10))
return false; // return false;
// Is there the password field ? // // Is there the password field ?
if (!checkField(getFieldNextTo(ivLogonInfo.passwdLabel), 10)) // if (!checkField(getFieldNextTo(ivLogonInfo.passwdLabel), 10))
return false; // return false;
return true; // return true;
} // }
//
@Override // @Override
protected void start() { // protected void start() {
ivLoggedOn = true; // ivLoggedOn = true;
// Start logon panel processing // // Start logon panel processing
XI5250Field userField = getFieldNextTo(ivLogonInfo.userLabel); // XI5250Field userField = getFieldNextTo(ivLogonInfo.userLabel);
XI5250Field passwdField = getFieldNextTo(ivLogonInfo.passwdLabel); // XI5250Field passwdField = getFieldNextTo(ivLogonInfo.passwdLabel);
userField.setString(ivLogonInfo.user); // Your user id // userField.setString(ivLogonInfo.user); // Your user id
passwdField.setString(ivLogonInfo.passwd); // Your password // passwdField.setString(ivLogonInfo.passwd); // Your password
// Simulate the user ENTER key pressed // // Simulate the user ENTER key pressed
getEmulator().processRawKeyEvent( // getEmulator().processRawKeyEvent(
new KeyEvent(getEmulator(), KeyEvent.KEY_PRESSED, // new KeyEvent(getEmulator(), KeyEvent.KEY_PRESSED,
0, 0, KeyEvent.VK_ENTER, KeyEvent.CHAR_UNDEFINED)); // 0, 0, KeyEvent.VK_ENTER, KeyEvent.CHAR_UNDEFINED));
} // }
//
@Override // @Override
protected void stop() { // protected void stop() {
} // }
} // }
} }

View file

@ -142,11 +142,7 @@ public class XICrt extends JComponent implements Serializable {
fntSize = fontSize; fntSize = fontSize;
} }
InputStream is = null; InputStream is = null;
try { is = theClass.getResourceAsStream("/res/ubuntu-mono-regular.ttf");
is = new FileInputStream("/tmp/x.ttf");
} catch (FileNotFoundException ex) {
System.err.println("file not found font : " + ex);
}
Font font = null; Font font = null;
try { try {
System.err.println(" createFont Testing res/" + fontFileName + " ... "); System.err.println(" createFont Testing res/" + fontFileName + " ... ");
@ -173,17 +169,11 @@ public class XICrt extends JComponent implements Serializable {
setFreeze(true); setFreeze(true);
setOpaque(true); setOpaque(true);
/*
if (XIUtil.is1dot2)
setFont(new Font("Monospaced", Font.PLAIN, MIN_FONT_SIZE));
else
*/
Font inconsolata = loadFontFromResource(XICrt.class, "MonoSpaced", MIN_FONT_SIZE); Font inconsolata = loadFontFromResource(XICrt.class, "MonoSpaced", MIN_FONT_SIZE);
setFont(inconsolata); setFont(inconsolata);
//setFont(new Font("Monospaced", Font.PLAIN, MIN_FONT_SIZE)); //setFont(new Font("Monospaced", Font.PLAIN, MIN_FONT_SIZE));
setLayout(null); setLayout(null);
setCrtBuffer(createCrtBuffer(80, 24)); setCrtBuffer(createCrtBuffer(80, 24));
setBackground(Color.red);
} }
@ -870,8 +860,7 @@ public class XICrt extends JComponent implements Serializable {
crt.drawString("eccome" + '!', 0, 1); crt.drawString("eccome" + '!', 0, 1);
crt.setBackground(Color.green); crt.setBackground(Color.yellow);
frm.getContentPane().add(crt); frm.getContentPane().add(crt);
frm.setBounds(0, 0, 600, 500); frm.setBounds(0, 0, 600, 500);

BIN
res/Monospaced Normal file

Binary file not shown.

BIN
res/ubuntu-mono-regular.ttf Normal file

Binary file not shown.