Actually get everything working with user-agent, remove gson.

This commit is contained in:
jw
2016-10-09 19:46:40 -07:00
parent 858cbbf886
commit 9d499cd3e8
37 changed files with 1031 additions and 131 deletions
+21 -21
View File
@@ -1,21 +1,21 @@
# LightWallet GUI
This is a GUI frontend that runs on top of simplewallet (in RPC mode). It is designed to work with a remote bitmonerod node by default, so that it can function as a lightweight wallet for most users. By default it uses Atrides open node at http://node.moneroworld.com:18081, but you can change the node it uses to a local node during setup or at any launch; to use a local bitmonerod instance set it as http://localhost:18081.
**This program is an alpha version, and although I don't think there is really any way to screw up your wallet, please exercise some modicum of caution.**
## Installation
### Windows, Linux, and Mac
The requirements for running the program using the jar file release is a java virtual machine installed v1.7+, and monero-wallet-cli v0.10+ in the same directory. If you also want to run a local daemon you'll monerod.exe/monerod binary. The wallet and daemon files can be downloaded here: https://github.com/monero-project/bitmonero/releases
If you're using the binary LightWallet.exe, you still need to have monero-wallet-cli.exe in the same directory.
## Running
It should be OK to launch the program with an instance of monerod and/or monero-wallet-cli running.
On the initial run, it will prompt you to create a new wallet or to import one by typing/copying in the path of the keys file or importing a 25 word mnemonic seed. This will create several files in the same directory as LightWallet and monero-wallet-cli, including lightwallet.conf. If you ever want to create or import a new wallet, simply delete lightwallet.conf.
## Known issues
If you manage to crash the program, you will probably get an instance of monero-wallet-cli(.exe) hanging around, so to get rid of it you will need to go into the task manager processes tab and end the monero-wallet-cli process on windows, "ps -A | grep monero-wallet-cli" to get PID and then "kill PID" or "killall monero-wallet-cli" on linux, or restart your computer.
## Future Work
Transaction history has been disabled for the time being. If you want to parse your tx history check monero-wallet-cli.log in the same directory.
# LightWallet GUI
This is a GUI frontend that runs on top of simplewallet (in RPC mode). It is designed to work with a remote bitmonerod node by default, so that it can function as a lightweight wallet for most users. By default it uses Atrides open node at http://node.moneroworld.com:18081, but you can change the node it uses to a local node during setup or at any launch; to use a local bitmonerod instance set it as http://localhost:18081.
**This program is an alpha version, and although I don't think there is really any way to screw up your wallet, please exercise some modicum of caution.**
## Installation
### Windows, Linux, and Mac
The requirements for running the program using the jar file release is a java virtual machine installed v1.7+, and monero-wallet-cli v0.10+ in the same directory. If you also want to run a local daemon you'll monerod.exe/monerod binary. The wallet and daemon files can be downloaded here: https://github.com/monero-project/bitmonero/releases
If you're using the binary LightWallet.exe, you still need to have monero-wallet-cli.exe in the same directory.
## Running
It should be OK to launch the program with an instance of monerod and/or monero-wallet-cli running.
On the initial run, it will prompt you to create a new wallet or to import one by typing/copying in the path of the keys file or importing a 25 word mnemonic seed. This will create several files in the same directory as LightWallet and monero-wallet-cli, including lightwallet.conf. If you ever want to create or import a new wallet, simply delete lightwallet.conf.
## Known issues
If you manage to crash the program, you will probably get an instance of monero-wallet-cli(.exe) hanging around, so to get rid of it you will need to go into the task manager processes tab and end the monero-wallet-cli process on windows, "ps -A | grep monero-wallet-cli" to get PID and then "kill PID" or "killall monero-wallet-cli" on linux, or restart your computer.
## Future Work
Transaction history has been disabled for the time being. If you want to parse your tx history check monero-wallet-cli.log in the same directory.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 315 KiB

+13 -4
View File
@@ -1,5 +1,5 @@
android {
buildToolsVersion "23.0.2"
buildToolsVersion "24.0.3"
compileSdkVersion 23
sourceSets {
main {
@@ -14,6 +14,11 @@ android {
instrumentTest.setRoot('tests')
}
defaultConfig {
applicationId "com.jw.lightwallet"
minSdkVersion 8
targetSdkVersion 23
}
}
@@ -23,12 +28,16 @@ android {
task copyAndroidNatives() {
file("libs/armeabi/").mkdirs();
file("libs/armeabi-v7a/").mkdirs();
file("libs/arm64-v8a/").mkdirs();
file("libs/x86_64/").mkdirs();
file("libs/x86/").mkdirs();
configurations.natives.files.each { jar ->
def outputDir = null
if(jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
if(jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a")
if(jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a")
if(jar.name.endsWith("natives-armeabi.jar")) outputDir = file("libs/armeabi")
if(jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64")
if(jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86")
if(outputDir != null) {
copy {
@@ -59,12 +68,12 @@ task run(type: Exec) {
}
def adb = path + "/platform-tools/adb"
commandLine "$adb", 'shell', 'am', 'start', '-n', 'com.jw.lightwallet.android/com.jw.lightwallet.android.AndroidLauncher'
commandLine "$adb", 'shell', 'am', 'start', '-n', 'com.jw.lightwallet/com.jw.lightwallet.AndroidLauncher'
}
// sets up the Android Eclipse project, using the old Ant based build.
eclipse {
// need to specify Java source sets explicitely, SpringSource Gradle Eclipse plugin
// need to specify Java source sets explicitly, SpringSource Gradle Eclipse plugin
// ignores any nodes added in classpath.file.withXml
sourceSets {
main {
+4 -2
View File
@@ -35,12 +35,14 @@ public class LightWallet extends Game {
if (os.contains("Windows")) {
simplewalletloc = dir + "\\" + "monero-wallet-cli.exe";
System.out.println(simplewalletloc);
} else {
simplewalletloc = dir + "/" + "monero-wallet-cli";
}
System.out.println(simplewalletloc);
// Initialize logger and user interface skin
Gdx.app.log(LightWallet.LOG, "Launching application in " + dir + " on " + os);
uiSkin = new Skin(Gdx.files.internal("skin/uiskin.json"));
uiSkin = new Skin(Gdx.files.internal("assets/skin/uiskin.json"));
// Check if config file exists, if not launch setup wizard
File f = new File("lightwallet.conf");
@@ -25,6 +25,7 @@ public class BlockHeader {
return difficulty;
}
public void setDifficulty(int difficulty) {
System.out.println("Diff is now" + difficulty);
this.difficulty = difficulty;
}
public String getHash() {
@@ -13,6 +13,8 @@ public class DaemonRPC {
public String address;
String response;
String getlastblock;
Gson gson;
DaemonResponse daemonresponse = new DaemonResponse();
public DaemonRPC () {
// address = "http://node.moneroclub.com:8880/json_rpc";
@@ -28,19 +30,17 @@ public class DaemonRPC {
Gdx.net.sendHttpRequest (httpGet, new HttpResponseListener() {
public void handleHttpResponse(HttpResponse httpResponse) {
response = httpResponse.getResultAsString();
//System.out.print("1st time response" + response);
DaemonResponse daemonresponse = new Gson().fromJson(response, DaemonResponse.class);
//System.out.print("GSON response is" + daemonresponse.getId());
daemonvalues.setBlockheight(daemonresponse.getResult().getBlock_header().getHeight());
daemonvalues.setDiff((daemonresponse.getResult().getBlock_header().getDifficulty()));
daemonvalues.setLastblocktime(daemonresponse.getResult().getBlock_header().getTimestamp());
daemonvalues.setLastblockreward(daemonresponse.getResult().getBlock_header().getReward());
daemonvalues.setStatus(daemonresponse.getResult().getStatus());
// System.out.println("1st time response" + response);
daemonvalues.setBlockheight(Integer.parseInt(response.split("height\": ")[1].split(",")[0]));
daemonvalues.setDiff(Long.parseLong(response.split("difficulty\": ")[1].split(",")[0]));
daemonvalues.setLastblocktime(Long.parseLong(response.split("difficulty\": ")[1].split(",")[0]));
daemonvalues.setLastblockreward(Long.parseLong(response.split("reward\": ")[1].split(",")[0]));
daemonvalues.setStatus("OK");
}
public void failed(Throwable t) {
response = "failed";
//System.out.print("Failed response status is: " + response);
System.out.print("Failed response status is: " + response);
//do stuff here based on the failed attempt
}
@@ -6,6 +6,7 @@ public class DaemonResponse {
String jsonrpc;
DaemonResult result;
public String getId() {
return id;
}
@@ -4,7 +4,7 @@ public class DaemonResult {
BlockHeader block_header;
String status;
public BlockHeader getBlock_header() {
return block_header;
@@ -18,7 +18,7 @@ public class AbstractScreen implements Screen {
public AbstractScreen (final LightWallet game) {
this.game = game;
this.font = new BitmapFont(Gdx.files.internal("fonts/bauchaomaicha.fnt"));
this.font = new BitmapFont(Gdx.files.internal("assets/fonts/bauchaomaicha.fnt"));
this.w = Gdx.graphics.getWidth();
this.h = Gdx.graphics.getHeight();
this.aspect = w/h;
@@ -61,7 +61,7 @@ public class CreateScreen extends AbstractScreen {
super(game);
System.out.print("CreateScreen creating.");
uiSkin = new Skin(Gdx.files.internal("skin/uiskin.json"));
uiSkin = new Skin(Gdx.files.internal("assets/skin/uiskin.json"));
padvalue = 20;
stage = new Stage();
@@ -69,14 +69,14 @@ public class CreateScreen extends AbstractScreen {
screenlayout = new Table();
logo = new Image(new Texture(Gdx.files.internal("logo.png")));
logo = new Image(new Texture(Gdx.files.internal("assets/logo.png")));
//logo.scaleBy(0.02f);
instruction = "Please enter a name for your wallet in the \"Wallet name\" field. This is typically wallet.bin, "
+ "but you can make it whatever you like (as long as it is alphanumberic and periods only). "
+ "Then please enter a strong password for your wallet that you will use to unlock, and then repeat it to ensure it is correct. "
+ "Your password can be any combination of characters and symbols on your keyboard (I think). "
+ "The default bitmonerod node is set for moneroclub, if you want to run a local daemon change the node field to http://localhost:18081.";
+ "The default bitmonerod node is set for moneroworld, if you want to run a local daemon change the node field to http://localhost:18081.";
instructionlabel= new Label(instruction, uiSkin);
instructionlabel.setWrap(true);
@@ -195,7 +195,7 @@ public class CreateScreen extends AbstractScreen {
System.out.println("Starting creator");
try {
Process wp = Runtime.getRuntime().exec("monero-wallet-cli --generate-new-wallet " + name + " --password " + pw);
Process wp = Runtime.getRuntime().exec(simplewalletloc + " --generate-new-wallet " + name + " --password " + pw);
Writer wr = new OutputStreamWriter( wp.getOutputStream() );
BufferedReader rd = new BufferedReader( new InputStreamReader( wp.getInputStream() ) );
@@ -75,7 +75,7 @@ public class DaemonView {
public void Update(DaemonValues daemonvalues) {
nodevalue.setText(game.walletvalues.getNode());
statusvalue.setText(daemonvalues.getStatus());
// Gdx.app.log(LightWallet.LOG, "Status value is: " + statusvalue.getText());
Gdx.app.log(LightWallet.LOG, "Status value is: " + statusvalue.getText());
if (statusvalue.getText().toString().equals("OK")) {statusvalue.setStyle(game.uiSkin.get("greenlabel", LabelStyle.class));}
heightvalue.setText(String.valueOf(daemonvalues.getBlockheight()));
hashratevalue.setText(new DecimalFormat("##.##").format(daemonvalues.getHashrate()) + " Mh/s");
@@ -66,14 +66,14 @@ public class ImportKeysScreen extends AbstractScreen {
screenlayout = new Table();
logo = new Image(new Texture(Gdx.files.internal("logo.png")));
logo = new Image(new Texture(Gdx.files.internal("assets/logo.png")));
//logo.scaleBy(0.02f);
instruction = "Please enter the full path location of your .keys file to import in the file location field; , "
+ "for instance: C:\\Users\\jw\\secretstuff\\wallet.keys or /home/jw/secretstuff/wallet.keys. "
+ "Then please enter your password to unlock the wallet. "
+ "The wallet keys file will be copied to the local directory and a new binary file will be created. "
+ "The default bitmonerod node is set for moneroclub, if you want to run a local daemon change the node field to http://localhost:18081.";
+ "The default bitmonerod node is set for moneroworld, if you want to run a local daemon change the node field to http://localhost:18081.";
instructionlabel= new Label(instruction, game.uiSkin);
instructionlabel.setWrap(true);
@@ -222,7 +222,7 @@ public class ImportKeysScreen extends AbstractScreen {
try {
Process wp = Runtime.getRuntime().exec("monero-wallet-cli --wallet-file " + name + " --password " + pw + " --daemon-address http://localhost:66666");
Process wp = Runtime.getRuntime().exec(simplewalletloc + " --wallet-file " + name + " --password " + pw + " --daemon-address http://localhost:66666");
Writer wr = new OutputStreamWriter( wp.getOutputStream() );
BufferedReader rd = new BufferedReader( new InputStreamReader( wp.getInputStream() ) );
@@ -234,25 +234,37 @@ public class ImportKeysScreen extends AbstractScreen {
game.walletvalues.setAddress(str.split("wallet: ")[1]);
}
i += 1;
if (i > 5 && str.contains("****")) {
if (i > 3 && str.contains("****")) {
break;
}
}
str = rd.readLine();
str = rd.readLine();
str = rd.readLine();
str = rd.readLine();
str = rd.readLine();
wr.write( "viewkey\n" );
wr.flush();
str = rd.readLine();
System.out.println(i + " " + str.split(": ")[1]);
// str = rd.readLine();
// System.out.println(i + " " + str.split(": ")[1]);
System.out.println(i + " " + str);
i += 1;
game.walletvalues.setViewkey(str.split(": ")[1]);
// game.walletvalues.setViewkey(str.split(": ")[1]);
game.walletvalues.setViewkey(str);
str = rd.readLine();
wr.write( "seed\n" );
wr.flush();
str = rd.readLine();
System.out.println(i + " " + str.substring(str.indexOf(":"), str.length()));
// str = rd.readLine();
// System.out.println(i + " " + str.substring(str.indexOf(":"), str.length()));
System.out.println(i + " " + str);
i += 1;
game.walletvalues.setSeed(str.substring(str.indexOf(":"), str.length()));
// game.walletvalues.setSeed(str.substring(str.indexOf(":"), str.length()));
game.walletvalues.setSeed(str);
wr.write( "exit\n" );
wr.flush();
@@ -70,13 +70,13 @@ public class ImportSeedScreen extends AbstractScreen {
screenlayout = new Table();
logo = new Image(new Texture(Gdx.files.internal("logo.png")));
logo = new Image(new Texture(Gdx.files.internal("assets/logo.png")));
//logo.scaleBy(0.02f);
instruction = "Please enter a name for your wallet, the 25 word mnemonic seed to import in the seed field, "
+ " a password to unlock the wallet in the password field, "
+ "and then repeat the password to make sure you have it correct, this will be used to encrypt your newly restored wallet files. "
+ "The default bitmonerod node is set for moneroclub, if you want to run a local daemon change the node field to http://localhost:18081.";
+ "The default bitmonerod node is set for moneroworld, if you want to run a local daemon change the node field to http://localhost:18081.";
instructionlabel= new Label(instruction, game.uiSkin);
instructionlabel.setWrap(true);
@@ -233,7 +233,7 @@ public class ImportSeedScreen extends AbstractScreen {
try {
Process wp = Runtime.getRuntime().exec("monero-wallet-cli --restore-deterministic-wallet --daemon-address http://localhost:66666");
Process wp = Runtime.getRuntime().exec(simplewalletloc + " --restore-deterministic-wallet --wallet-file " + name + " --password " + pw + " --daemon-address http://localhost:66666");
Writer wr = new OutputStreamWriter( wp.getOutputStream() );
BufferedReader rd = new BufferedReader( new InputStreamReader( wp.getInputStream() ) );
@@ -243,35 +243,16 @@ public class ImportSeedScreen extends AbstractScreen {
str = rd.readLine();
System.out.println(i + " " + str);
i += 1;
if (i > 1 && str.contains("Wallet")) {
if (i > 0 && str.contains("Logging at")) {
break;
}
}
wr.write( name + "\n" );
wr.flush();
wr.write( pw + "\n" );
wr.flush();
wr.write( seed + "\n" );
wr.flush();
MessageDigest md = null;
String rando = name + Double.toString(Math.random());
try {
md = MessageDigest.getInstance("SHA-256");
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
md.update(rando.getBytes("UTF-8")); // Change this to "UTF-16" if needed
byte[] digest = md.digest();
game.walletvalues.setName(name);
game.walletvalues.setPw(pw);
game.walletvalues.setSeed(seed);
game.walletvalues.setNode(nodetext.getText());
game.walletvalues.setUserAgent(digest.toString());
wr.write("0\n" );
wr.flush();
while (true) {
@@ -294,6 +275,23 @@ public class ImportSeedScreen extends AbstractScreen {
wr.write( "exit\n" );
wr.flush();
MessageDigest md = null;
String rando = name + Double.toString(Math.random());
try {
md = MessageDigest.getInstance("SHA-256");
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
md.update(rando.getBytes("UTF-8")); // Change this to "UTF-16" if needed
byte[] digest = md.digest();
game.walletvalues.setName(name);
game.walletvalues.setPw(pw);
game.walletvalues.setSeed(seed);
game.walletvalues.setNode(nodetext.getText());
game.walletvalues.setUserAgent(digest.toString());
PrintWriter infowriter = new PrintWriter(name + "info.txt", "UTF-8");
@@ -95,12 +95,12 @@ public class MainScreen extends AbstractScreen {
df = new DecimalFormat("#.############");
height = "";
Skin uiSkin = new Skin(Gdx.files.internal("skin/uiskin.json"));
Skin uiSkin = new Skin(Gdx.files.internal("assets/skin/uiskin.json"));
daemonrpc = new DaemonRPC();
daemonvalues = new DaemonValues();
balancerpc = new BalanceRPC();
balancerpc = new BalanceRPC(game);
balancevalues = new BalanceValues();
walletsaverpc = new WalletSaveRPC(game);
@@ -112,7 +112,7 @@ public class MainScreen extends AbstractScreen {
screenlayout = new Table();
viewcontainer = new Table();
logo = new Image(new Texture(Gdx.files.internal("logo.png")));
logo = new Image(new Texture(Gdx.files.internal("assets/logo.png")));
buttonrow = new Table();
daemonbutton = new TextButton("Daemon", uiSkin);
@@ -216,16 +216,19 @@ public class MainScreen extends AbstractScreen {
if (fivesectimer == true) {
// Timer task to check balance from simplewallet
balancerpc.getinfo(balancevalues);
// Gdx.app.log(LightWallet.LOG, "Checked: " + balancevalues.getChecked());
walletview.balancevalue.setText(df.format(balancevalues.getBalance()/1e12) + " XMR");
walletview.unlockedvalue.setText(df.format(balancevalues.getUnlockedbalance()/1e12) + " XMR");
if (balancevalues.isChecked()) {
if (balancevalues.getChecked()) {
// Gdx.app.log(LightWallet.LOG, "Balance is checked.");
walletview.balancevalue.setStyle(game.uiSkin.get("greenlabel", LabelStyle.class));
walletview.unlockedvalue.setStyle(game.uiSkin.get("greenlabel", LabelStyle.class));
} else {
// Gdx.app.log(LightWallet.LOG, "Balance is NOT checked.");
walletview.balancevalue.setStyle(game.uiSkin.get("redlabel", LabelStyle.class));
walletview.unlockedvalue.setStyle(game.uiSkin.get("redlabel", LabelStyle.class));
}
Gdx.app.log(LightWallet.LOG, "Height is at: " + height);
// Gdx.app.log(LightWallet.LOG, "Height is at: " + height);
walletview.syncvalue.setText(height + " / " + daemonvalues.getBlockheight());
if (height.equals(Integer.toString(daemonvalues.getBlockheight()))) {
walletview.syncvalue.setStyle(game.uiSkin.get("greenlabel", LabelStyle.class));
@@ -263,7 +266,7 @@ public class MainScreen extends AbstractScreen {
Gdx.app.log(LightWallet.LOG, "Command is: " + "monero-wallet-cli --wallet-file " + game.walletvalues.getName()
+ " --password " + game.walletvalues.getPw() + " --daemon-address " + game.walletvalues.getNode()
+ " --rpc-bind-port 19091 --user-agent " + game.walletvalues.getUserAgent() + " --log-level 2");
wp = Runtime.getRuntime().exec("monero-wallet-cli --wallet-file " + game.walletvalues.getName()
wp = Runtime.getRuntime().exec(game.simplewalletloc + " --wallet-file " + game.walletvalues.getName()
+ " --password " + game.walletvalues.getPw() + " --daemon-address " + game.walletvalues.getNode()
+ " --rpc-bind-port 19091 --user-agent " + game.walletvalues.getUserAgent() + " --log-level 2");
wr = new BufferedReader(new InputStreamReader(wp.getInputStream()));
@@ -292,6 +295,9 @@ public class MainScreen extends AbstractScreen {
// Poll wallet thread and check block height and if transaction data is in output
String queuepoll = wq.poll();
try{
if (queuepoll != null) {
Gdx.app.log(LightWallet.LOG, queuepoll);
}
// If the string contains "height" then update the daemon and wallet screen blockheight
if (queuepoll != null && queuepoll.contains("height:")) {
height = queuepoll.split("height: ")[1].split(",")[0];
@@ -326,6 +332,32 @@ public class MainScreen extends AbstractScreen {
failuredialog.key(Keys.ENTER, true); //sends "true" when the ENTER key is pressed
failuredialog.show(stage);
}
else if (queuepoll != null && queuepoll.contains("Transaction successfully sent.")) {
// Setup popup for successful tx
final String txid = queuepoll.split("<<")[1].split(">>")[0];
final Dialog goodtxpopup = new Dialog("Succcessful transaction!", game.uiSkin, "dialog") {
public void result(Object obj) {
System.out.println("result "+obj);
}
};
Label goodtxpopuplabel = new Label("Successfully completed tx with tx is:\n" + txid, game.uiSkin);
goodtxpopuplabel.setWrap(true);
goodtxpopup.add(goodtxpopuplabel).width(400).row();
goodtxpopup.button("Copy tx id", true).addListener(new ClickListener() {
@Override
public void clicked (InputEvent event, float x, float y) {
Gdx.app.getClipboard().setContents(txid);
}
});
goodtxpopup.button("Continue", true).addListener(new ClickListener() {
@Override
public void clicked (InputEvent event, float x, float y) {
goodtxpopup.remove();
}
});
goodtxpopup.key(Keys.ENTER, true); //sends "true" when the ENTER key is pressed
goodtxpopup.show(stage);
}
} catch (NullPointerException e){e.printStackTrace();}
}
@@ -45,7 +45,7 @@ public class PasswordScreen extends AbstractScreen {
super(game);
System.out.print("CreateScreen creating.");
uiSkin = new Skin(Gdx.files.internal("skin/uiskin.json"));
uiSkin = new Skin(Gdx.files.internal("assets/skin/uiskin.json"));
padvalue = 20;
stage = new Stage();
@@ -53,7 +53,7 @@ public class PasswordScreen extends AbstractScreen {
screenlayout = new Table();
logo = new Image(new Texture(Gdx.files.internal("logo.png")));
logo = new Image(new Texture(Gdx.files.internal("assets/logo.png")));
//logo.scaleBy(0.02f);
instruction = "Please enter your password in the password field below for the wallet" + game.walletvalues.getName() + ". "
@@ -212,6 +212,8 @@ public class TransactionView {
httpGet.setUrl(swaddress);
httpGet.setContent(getbalance);
httpGet.setTimeOut(2500);
httpGet.setHeader("User-Agent", game.walletvalues.getUserAgent());
Gdx.net.sendHttpRequest (httpGet, new HttpResponseListener() {
public void handleHttpResponse(HttpResponse httpResponse) {
@@ -222,36 +224,7 @@ public class TransactionView {
System.out.println(txresponse.getResult().getTx_hash());
String txid = txresponse.getResult().getTx_hash().substring(1, txresponse.getResult().getTx_hash().length()-1);;
System.out.println("Tx id is: " + txid);
System.out.println("Tx id length is: " + txid.length());
if (txid.length() == 64) {
// Setup popup for successful tx
final String finaltxid = txid;
final Dialog goodtxpopup = new Dialog("Succcessful transaction!", game.uiSkin, "dialog") {
public void result(Object obj) {
System.out.println("result "+obj);
}
};
Label goodtxpopuplabel = new Label("Successfully completed tx with tx is:\n" + txid, game.uiSkin);
goodtxpopuplabel.setWrap(true);
goodtxpopup.add(goodtxpopuplabel).width(400).row();
goodtxpopup.button("Copy tx id", true).addListener(new ClickListener() {
@Override
public void clicked (InputEvent event, float x, float y) {
Gdx.app.getClipboard().setContents(finaltxid);
}
});
goodtxpopup.button("Continue", true).addListener(new ClickListener() {
@Override
public void clicked (InputEvent event, float x, float y) {
goodtxpopup.remove();
}
});
goodtxpopup.key(Keys.ENTER, true); //sends "true" when the ENTER key is pressed
goodtxpopup.show(stage);
}
}
public void failed(Throwable t) {
@@ -36,7 +36,7 @@ public class WizardScreen extends AbstractScreen {
public WizardScreen(final LightWallet game) {
super(game);
uiSkin = new Skin(Gdx.files.internal("skin/uiskin.json"));
uiSkin = new Skin(Gdx.files.internal("assets/skin/uiskin.json"));
padvalue = 20;
stage = new Stage();
@@ -44,10 +44,11 @@ public class WizardScreen extends AbstractScreen {
screenlayout = new Table();
logo = new Image(new Texture(Gdx.files.internal("logo.png")));
logo = new Image(new Texture(Gdx.files.internal("assets/logo.png")));
wizardtext = "Hello. It seems this is the either the first time you are launching LightWallet or you have deleted your lightwallet.conf file. "
+ "You must have a copy of monero-wallet-cli executable in the same directory as the LightWallet executable. "
+ "Please select from the options below whether you would like to create a new wallet, import a wallet from a .keys file, "
+ "or import a wallet using your 25-word mnemonic seed.";
@@ -6,7 +6,7 @@ public class BalanceValues {
long balance;
boolean checked;
public boolean isChecked() {
public boolean getChecked() {
return checked;
}
public void setChecked(boolean checked) {
@@ -7,14 +7,18 @@ import com.badlogic.gdx.Net.HttpResponse;
import com.badlogic.gdx.Net.HttpResponseListener;
import com.google.gson.Gson;
import com.jw.lightwallet.utils.BalanceValues;
import com.jw.lightwallet.LightWallet;
public class BalanceRPC {
LightWallet game;
public String swaddress;
String response;
String getbalance;
public BalanceRPC () {
public BalanceRPC (LightWallet game) {
this.game = game;
swaddress = "http://localhost:19091/json_rpc";
getbalance = "{\"jsonrpc\":\"2.0\",\"id\":\"test\",\"method\":\"getbalance\",\"params\":[]}";
}
@@ -22,19 +26,29 @@ public class BalanceRPC {
public void getinfo (final BalanceValues balancevalues) {
HttpRequest httpGet = new HttpRequest(HttpMethods.POST);
httpGet.setUrl(swaddress);
httpGet.setContent(getbalance);
httpGet.setContent(getbalance);
httpGet.setHeader("User-Agent", game.walletvalues.getUserAgent());
Gdx.net.sendHttpRequest (httpGet, new HttpResponseListener() {
public void handleHttpResponse(HttpResponse httpResponse) {
response = httpResponse.getResultAsString();
BalanceResponse balanceresponse = new Gson().fromJson(response, BalanceResponse.class);
balancevalues.setBalance(balanceresponse.getResult().getBalance());
balancevalues.setUnlockedbalance(balanceresponse.getResult().getUnlockedbalance());
// Gdx.app.log(LightWallet.LOG, "Checked: " + balancevalues.getChecked());
// Gdx.app.log(LightWallet.LOG, "Balance is: " + response);
// BalanceResponse balanceresponse = new Gson().fromJson(response, BalanceResponse.class);
// balancevalues.setBalance(balanceresponse.getResult().getBalance());
// balancevalues.setUnlockedbalance(balanceresponse.getResult().getUnlockedbalance());
// Gdx.app.log(LightWallet.LOG, response.split("\"balance\": ")[1].split(",")[0]);
balancevalues.setBalance(Long.parseLong(response.split("\"balance\": ")[1].split(",")[0]));
// Gdx.app.log(LightWallet.LOG, response.split("unlocked_balance\": ")[1].split("}")[0].replaceAll("\\s+",""));
balancevalues.setUnlockedbalance(Long.parseLong(response.split("unlocked_balance\": ")[1].split("}")[0].replaceAll("\\s+","")));
Gdx.app.log(LightWallet.LOG, "Setting checked true.");
balancevalues.setChecked(true);
}
public void failed(Throwable t) {
response = "failed";
Gdx.app.log(LightWallet.LOG, "Failed - setting checked false.");
Gdx.app.log(LightWallet.LOG, t.getMessage());
balancevalues.setChecked(false);
}
@@ -20,17 +20,19 @@ public class WalletSaveRPC {
this.game = game;
swaddress = "http://localhost:19091/json_rpc";
store = "{\"jsonrpc\":\"2.0\",\"id\":\"test\",\"method\":\"store\",\"params\":[]}";
// store = "{\"jsonrpc\":\"2.0\",\"id\":\"test\",\"user-agent\":" + game.walletvalues.getUserAgent() + ",\"method\":\"store\",\"params\":[]}";
}
public void trysave (final Label savestatuslabel) {
HttpRequest httpGet = new HttpRequest(HttpMethods.POST);
httpGet.setUrl(swaddress);
httpGet.setContent(store);
httpGet.setContent(store);
httpGet.setHeader("User-Agent", game.walletvalues.getUserAgent());
Gdx.net.sendHttpRequest (httpGet, new HttpResponseListener() {
public void handleHttpResponse(HttpResponse httpResponse) {
response = httpResponse.getResultAsString();
//System.out.print("Balance response: " + response);
// System.out.print("Save response: " + response);
savestatuslabel.setText("Successfully saved");
savestatuslabel.setStyle(game.uiSkin.get("greenlabel", LabelStyle.class));
}
+101
View File
@@ -0,0 +1,101 @@
info face="Bauchaomaicha Regular" size=32 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=0,0
common lineHeight=20 base=16 scaleW=512 scaleH=512 pages=1 packed=0
page id=0 file="bauchaomaicha.png"
chars count=95
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=16 xadvance=4 page=0 chnl=0
char id=35 x=0 y=0 width=26 height=20 xoffset=0 yoffset=-1 xadvance=28 page=0 chnl=0
char id=36 x=26 y=0 width=10 height=20 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=0
char id=92 x=36 y=0 width=12 height=20 xoffset=1 yoffset=-1 xadvance=14 page=0 chnl=0
char id=64 x=48 y=0 width=18 height=20 xoffset=0 yoffset=-1 xadvance=18 page=0 chnl=0
char id=47 x=66 y=0 width=12 height=20 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=0
char id=125 x=78 y=0 width=9 height=20 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=0
char id=123 x=87 y=0 width=9 height=20 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=0
char id=93 x=96 y=0 width=6 height=20 xoffset=0 yoffset=-1 xadvance=6 page=0 chnl=0
char id=91 x=102 y=0 width=6 height=20 xoffset=0 yoffset=-1 xadvance=6 page=0 chnl=0
char id=41 x=108 y=0 width=6 height=20 xoffset=0 yoffset=-1 xadvance=6 page=0 chnl=0
char id=40 x=114 y=0 width=5 height=20 xoffset=0 yoffset=-1 xadvance=6 page=0 chnl=0
char id=124 x=119 y=0 width=4 height=19 xoffset=2 yoffset=0 xadvance=6 page=0 chnl=0
char id=106 x=123 y=0 width=12 height=19 xoffset=-4 yoffset=2 xadvance=4 page=0 chnl=0
char id=38 x=135 y=0 width=14 height=18 xoffset=0 yoffset=1 xadvance=12 page=0 chnl=0
char id=81 x=149 y=0 width=14 height=18 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=127 x=163 y=0 width=18 height=16 xoffset=0 yoffset=1 xadvance=12 page=0 chnl=0
char id=37 x=181 y=0 width=18 height=16 xoffset=0 yoffset=1 xadvance=18 page=0 chnl=0
char id=63 x=199 y=0 width=10 height=16 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0
char id=33 x=209 y=0 width=4 height=16 xoffset=0 yoffset=1 xadvance=4 page=0 chnl=0
char id=48 x=213 y=0 width=10 height=16 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0
char id=57 x=223 y=0 width=10 height=16 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0
char id=56 x=233 y=0 width=10 height=16 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0
char id=55 x=243 y=0 width=10 height=16 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0
char id=54 x=253 y=0 width=10 height=16 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0
char id=53 x=263 y=0 width=10 height=16 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0
char id=52 x=273 y=0 width=10 height=16 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0
char id=51 x=283 y=0 width=10 height=16 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0
char id=50 x=293 y=0 width=10 height=16 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0
char id=121 x=303 y=0 width=14 height=16 xoffset=-2 yoffset=5 xadvance=10 page=0 chnl=0
char id=116 x=317 y=0 width=11 height=16 xoffset=-2 yoffset=1 xadvance=8 page=0 chnl=0
char id=113 x=328 y=0 width=14 height=16 xoffset=-2 yoffset=5 xadvance=10 page=0 chnl=0
char id=112 x=342 y=0 width=14 height=16 xoffset=-2 yoffset=5 xadvance=10 page=0 chnl=0
char id=108 x=356 y=0 width=8 height=16 xoffset=-2 yoffset=1 xadvance=4 page=0 chnl=0
char id=107 x=364 y=0 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=104 x=378 y=0 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=103 x=392 y=0 width=14 height=16 xoffset=-2 yoffset=5 xadvance=10 page=0 chnl=0
char id=102 x=406 y=0 width=14 height=16 xoffset=-2 yoffset=5 xadvance=10 page=0 chnl=0
char id=100 x=420 y=0 width=10 height=16 xoffset=0 yoffset=1 xadvance=10 page=0 chnl=0
char id=98 x=430 y=0 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=90 x=444 y=0 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=89 x=458 y=0 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=88 x=472 y=0 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=87 x=486 y=0 width=16 height=16 xoffset=-2 yoffset=1 xadvance=12 page=0 chnl=0
char id=86 x=0 y=20 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=85 x=14 y=20 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=84 x=28 y=20 width=13 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=83 x=41 y=20 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=82 x=55 y=20 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=80 x=69 y=20 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=79 x=83 y=20 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=78 x=97 y=20 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=77 x=111 y=20 width=16 height=16 xoffset=-2 yoffset=1 xadvance=12 page=0 chnl=0
char id=76 x=127 y=20 width=13 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=75 x=140 y=20 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=74 x=154 y=20 width=8 height=16 xoffset=0 yoffset=1 xadvance=8 page=0 chnl=0
char id=73 x=162 y=20 width=8 height=16 xoffset=-2 yoffset=1 xadvance=4 page=0 chnl=0
char id=72 x=170 y=20 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=71 x=184 y=20 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=70 x=198 y=20 width=13 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=69 x=211 y=20 width=13 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=68 x=224 y=20 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=67 x=238 y=20 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=66 x=252 y=20 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=65 x=266 y=20 width=14 height=16 xoffset=-2 yoffset=1 xadvance=10 page=0 chnl=0
char id=49 x=280 y=20 width=6 height=15 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0
char id=105 x=286 y=20 width=8 height=15 xoffset=-2 yoffset=2 xadvance=4 page=0 chnl=0
char id=42 x=294 y=20 width=11 height=14 xoffset=0 yoffset=-1 xadvance=12 page=0 chnl=0
char id=43 x=305 y=20 width=12 height=12 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0
char id=59 x=317 y=20 width=4 height=12 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=0
char id=122 x=321 y=20 width=9 height=12 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=0
char id=120 x=330 y=20 width=14 height=12 xoffset=-2 yoffset=5 xadvance=10 page=0 chnl=0
char id=119 x=344 y=20 width=16 height=12 xoffset=-2 yoffset=5 xadvance=12 page=0 chnl=0
char id=118 x=360 y=20 width=14 height=12 xoffset=-2 yoffset=5 xadvance=10 page=0 chnl=0
char id=117 x=374 y=20 width=14 height=12 xoffset=-2 yoffset=5 xadvance=10 page=0 chnl=0
char id=115 x=388 y=20 width=14 height=12 xoffset=-2 yoffset=5 xadvance=10 page=0 chnl=0
char id=114 x=402 y=20 width=14 height=12 xoffset=-2 yoffset=5 xadvance=10 page=0 chnl=0
char id=111 x=416 y=20 width=14 height=12 xoffset=-2 yoffset=5 xadvance=10 page=0 chnl=0
char id=110 x=430 y=20 width=14 height=12 xoffset=-2 yoffset=5 xadvance=10 page=0 chnl=0
char id=109 x=444 y=20 width=16 height=12 xoffset=-2 yoffset=5 xadvance=12 page=0 chnl=0
char id=101 x=460 y=20 width=14 height=12 xoffset=-2 yoffset=5 xadvance=10 page=0 chnl=0
char id=99 x=474 y=20 width=14 height=12 xoffset=-2 yoffset=5 xadvance=10 page=0 chnl=0
char id=97 x=488 y=20 width=10 height=12 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=0
char id=62 x=498 y=20 width=7 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
char id=60 x=0 y=36 width=7 height=10 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0
char id=58 x=7 y=36 width=4 height=10 xoffset=0 yoffset=5 xadvance=4 page=0 chnl=0
char id=126 x=11 y=36 width=11 height=8 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=0
char id=61 x=22 y=36 width=12 height=8 xoffset=0 yoffset=5 xadvance=12 page=0 chnl=0
char id=44 x=34 y=36 width=4 height=6 xoffset=0 yoffset=13 xadvance=4 page=0 chnl=0
char id=39 x=38 y=36 width=4 height=6 xoffset=0 yoffset=-1 xadvance=6 page=0 chnl=0
char id=96 x=42 y=36 width=7 height=6 xoffset=0 yoffset=-1 xadvance=8 page=0 chnl=0
char id=34 x=49 y=36 width=8 height=6 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=0
char id=94 x=57 y=36 width=9 height=5 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0
char id=95 x=66 y=36 width=14 height=4 xoffset=0 yoffset=13 xadvance=14 page=0 chnl=0
char id=45 x=80 y=36 width=12 height=4 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=0
char id=46 x=92 y=36 width=4 height=4 xoffset=0 yoffset=13 xadvance=4 page=0 chnl=0
kernings count=-1
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

+275
View File
@@ -0,0 +1,275 @@
info face="QuigleyWiggly" size=32 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=0,0
common lineHeight=40 base=30 scaleW=512 scaleH=512 pages=1 packed=0
page id=0 file="quigleyw.png"
chars count=81
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=30 xadvance=6 page=0 chnl=0
char id=41 x=0 y=0 width=10 height=32 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=0
char id=40 x=10 y=0 width=10 height=32 xoffset=0 yoffset=6 xadvance=9 page=0 chnl=0
char id=74 x=20 y=0 width=17 height=32 xoffset=0 yoffset=4 xadvance=15 page=0 chnl=0
char id=102 x=37 y=0 width=11 height=30 xoffset=0 yoffset=8 xadvance=9 page=0 chnl=0
char id=90 x=48 y=0 width=27 height=28 xoffset=0 yoffset=7 xadvance=25 page=0 chnl=0
char id=89 x=75 y=0 width=21 height=28 xoffset=0 yoffset=9 xadvance=19 page=0 chnl=0
char id=84 x=96 y=0 width=24 height=28 xoffset=0 yoffset=4 xadvance=23 page=0 chnl=0
char id=82 x=120 y=0 width=27 height=28 xoffset=0 yoffset=8 xadvance=26 page=0 chnl=0
char id=71 x=147 y=0 width=26 height=28 xoffset=-1 yoffset=7 xadvance=24 page=0 chnl=0
char id=92 x=173 y=0 width=7 height=27 xoffset=0 yoffset=9 xadvance=5 page=0 chnl=0
char id=47 x=180 y=0 width=7 height=27 xoffset=0 yoffset=7 xadvance=5 page=0 chnl=0
char id=78 x=187 y=0 width=23 height=27 xoffset=-1 yoffset=8 xadvance=21 page=0 chnl=0
char id=75 x=210 y=0 width=25 height=27 xoffset=0 yoffset=7 xadvance=24 page=0 chnl=0
char id=80 x=235 y=0 width=30 height=26 xoffset=-1 yoffset=7 xadvance=27 page=0 chnl=0
char id=77 x=265 y=0 width=28 height=26 xoffset=-1 yoffset=7 xadvance=26 page=0 chnl=0
char id=76 x=293 y=0 width=27 height=26 xoffset=0 yoffset=5 xadvance=26 page=0 chnl=0
char id=72 x=320 y=0 width=25 height=26 xoffset=-1 yoffset=8 xadvance=23 page=0 chnl=0
char id=106 x=345 y=0 width=15 height=25 xoffset=0 yoffset=12 xadvance=9 page=0 chnl=0
char id=88 x=360 y=0 width=23 height=25 xoffset=0 yoffset=7 xadvance=22 page=0 chnl=0
char id=68 x=383 y=0 width=24 height=25 xoffset=0 yoffset=6 xadvance=22 page=0 chnl=0
char id=66 x=407 y=0 width=28 height=25 xoffset=0 yoffset=9 xadvance=26 page=0 chnl=0
char id=64 x=435 y=0 width=22 height=24 xoffset=1 yoffset=7 xadvance=22 page=0 chnl=0
char id=108 x=457 y=0 width=10 height=24 xoffset=0 yoffset=7 xadvance=7 page=0 chnl=0
char id=100 x=467 y=0 width=14 height=24 xoffset=0 yoffset=7 xadvance=12 page=0 chnl=0
char id=98 x=481 y=0 width=10 height=24 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=0
char id=86 x=0 y=32 width=22 height=24 xoffset=0 yoffset=7 xadvance=20 page=0 chnl=0
char id=70 x=22 y=32 width=24 height=24 xoffset=0 yoffset=7 xadvance=23 page=0 chnl=0
char id=38 x=46 y=32 width=22 height=23 xoffset=0 yoffset=8 xadvance=22 page=0 chnl=0
char id=36 x=68 y=32 width=11 height=23 xoffset=0 yoffset=8 xadvance=10 page=0 chnl=0
char id=107 x=79 y=32 width=16 height=23 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=0
char id=104 x=95 y=32 width=16 height=23 xoffset=0 yoffset=8 xadvance=12 page=0 chnl=0
char id=87 x=111 y=32 width=30 height=23 xoffset=0 yoffset=8 xadvance=28 page=0 chnl=0
char id=83 x=141 y=32 width=27 height=23 xoffset=0 yoffset=8 xadvance=26 page=0 chnl=0
char id=81 x=168 y=32 width=25 height=23 xoffset=0 yoffset=7 xadvance=24 page=0 chnl=0
char id=79 x=193 y=32 width=25 height=23 xoffset=0 yoffset=8 xadvance=23 page=0 chnl=0
char id=73 x=218 y=32 width=22 height=23 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
char id=69 x=240 y=32 width=22 height=23 xoffset=0 yoffset=8 xadvance=20 page=0 chnl=0
char id=33 x=262 y=32 width=5 height=22 xoffset=0 yoffset=9 xadvance=4 page=0 chnl=0
char id=55 x=267 y=32 width=11 height=22 xoffset=0 yoffset=9 xadvance=10 page=0 chnl=0
char id=53 x=278 y=32 width=12 height=22 xoffset=0 yoffset=9 xadvance=11 page=0 chnl=0
char id=50 x=290 y=32 width=13 height=22 xoffset=0 yoffset=9 xadvance=12 page=0 chnl=0
char id=112 x=303 y=32 width=14 height=22 xoffset=0 yoffset=18 xadvance=12 page=0 chnl=0
char id=85 x=317 y=32 width=24 height=22 xoffset=0 yoffset=9 xadvance=22 page=0 chnl=0
char id=67 x=341 y=32 width=20 height=22 xoffset=0 yoffset=9 xadvance=18 page=0 chnl=0
char id=65 x=361 y=32 width=23 height=22 xoffset=0 yoffset=9 xadvance=21 page=0 chnl=0
char id=63 x=384 y=32 width=12 height=21 xoffset=0 yoffset=10 xadvance=11 page=0 chnl=0
char id=48 x=396 y=32 width=15 height=21 xoffset=0 yoffset=10 xadvance=13 page=0 chnl=0
char id=57 x=411 y=32 width=13 height=21 xoffset=0 yoffset=10 xadvance=12 page=0 chnl=0
char id=56 x=424 y=32 width=12 height=21 xoffset=0 yoffset=10 xadvance=11 page=0 chnl=0
char id=54 x=436 y=32 width=13 height=21 xoffset=0 yoffset=10 xadvance=12 page=0 chnl=0
char id=52 x=449 y=32 width=14 height=21 xoffset=0 yoffset=10 xadvance=13 page=0 chnl=0
char id=51 x=463 y=32 width=12 height=21 xoffset=0 yoffset=10 xadvance=12 page=0 chnl=0
char id=49 x=475 y=32 width=7 height=21 xoffset=0 yoffset=10 xadvance=8 page=0 chnl=0
char id=121 x=482 y=32 width=16 height=21 xoffset=0 yoffset=18 xadvance=12 page=0 chnl=0
char id=113 x=0 y=56 width=16 height=20 xoffset=0 yoffset=18 xadvance=12 page=0 chnl=0
char id=105 x=16 y=56 width=9 height=20 xoffset=0 yoffset=11 xadvance=6 page=0 chnl=0
char id=103 x=25 y=56 width=16 height=20 xoffset=0 yoffset=17 xadvance=11 page=0 chnl=0
char id=116 x=41 y=56 width=14 height=19 xoffset=0 yoffset=12 xadvance=10 page=0 chnl=0
char id=122 x=55 y=56 width=11 height=14 xoffset=0 yoffset=17 xadvance=9 page=0 chnl=0
char id=119 x=66 y=56 width=17 height=14 xoffset=0 yoffset=17 xadvance=15 page=0 chnl=0
char id=114 x=83 y=56 width=12 height=14 xoffset=0 yoffset=17 xadvance=11 page=0 chnl=0
char id=101 x=95 y=56 width=13 height=14 xoffset=0 yoffset=17 xadvance=9 page=0 chnl=0
char id=59 x=108 y=56 width=6 height=13 xoffset=-1 yoffset=18 xadvance=4 page=0 chnl=0
char id=120 x=114 y=56 width=13 height=13 xoffset=0 yoffset=18 xadvance=9 page=0 chnl=0
char id=118 x=127 y=56 width=11 height=13 xoffset=0 yoffset=18 xadvance=9 page=0 chnl=0
char id=117 x=138 y=56 width=16 height=13 xoffset=0 yoffset=18 xadvance=13 page=0 chnl=0
char id=115 x=154 y=56 width=11 height=13 xoffset=-1 yoffset=18 xadvance=8 page=0 chnl=0
char id=111 x=165 y=56 width=15 height=13 xoffset=0 yoffset=18 xadvance=11 page=0 chnl=0
char id=110 x=180 y=56 width=15 height=13 xoffset=0 yoffset=18 xadvance=13 page=0 chnl=0
char id=99 x=195 y=56 width=13 height=13 xoffset=0 yoffset=18 xadvance=9 page=0 chnl=0
char id=109 x=208 y=56 width=24 height=12 xoffset=0 yoffset=19 xadvance=18 page=0 chnl=0
char id=97 x=232 y=56 width=15 height=12 xoffset=-1 yoffset=19 xadvance=12 page=0 chnl=0
char id=58 x=247 y=56 width=4 height=9 xoffset=0 yoffset=18 xadvance=4 page=0 chnl=0
char id=44 x=251 y=56 width=5 height=8 xoffset=0 yoffset=26 xadvance=4 page=0 chnl=0
char id=42 x=256 y=56 width=6 height=6 xoffset=0 yoffset=6 xadvance=5 page=0 chnl=0
char id=39 x=262 y=56 width=5 height=6 xoffset=0 yoffset=8 xadvance=3 page=0 chnl=0
char id=96 x=267 y=56 width=8 height=6 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=0
char id=34 x=275 y=56 width=7 height=6 xoffset=0 yoffset=8 xadvance=6 page=0 chnl=0
char id=46 x=282 y=56 width=4 height=5 xoffset=0 yoffset=26 xadvance=4 page=0 chnl=0
char id=95 x=286 y=56 width=17 height=4 xoffset=-1 yoffset=29 xadvance=15 page=0 chnl=0
char id=45 x=303 y=56 width=5 height=3 xoffset=0 yoffset=20 xadvance=4 page=0 chnl=0
kernings count=187
kerning first=102 second=97 amount=-1
kerning first=102 second=99 amount=-1
kerning first=102 second=100 amount=-1
kerning first=102 second=101 amount=-1
kerning first=102 second=102 amount=-2
kerning first=102 second=106 amount=-3
kerning first=102 second=111 amount=-1
kerning first=102 second=115 amount=-1
kerning first=102 second=116 amount=-2
kerning first=102 second=120 amount=-1
kerning first=90 second=97 amount=-6
kerning first=90 second=101 amount=-7
kerning first=90 second=104 amount=-2
kerning first=90 second=105 amount=-3
kerning first=90 second=111 amount=-7
kerning first=90 second=121 amount=-2
kerning first=89 second=101 amount=-1
kerning first=89 second=117 amount=-1
kerning first=84 second=97 amount=-6
kerning first=84 second=101 amount=-6
kerning first=84 second=104 amount=-1
kerning first=84 second=105 amount=-1
kerning first=84 second=111 amount=-5
kerning first=84 second=114 amount=-5
kerning first=84 second=117 amount=-6
kerning first=84 second=118 amount=-6
kerning first=84 second=121 amount=-6
kerning first=84 second=122 amount=-5
kerning first=82 second=97 amount=-3
kerning first=82 second=101 amount=-3
kerning first=82 second=104 amount=-1
kerning first=82 second=105 amount=-1
kerning first=82 second=111 amount=-4
kerning first=82 second=117 amount=-3
kerning first=82 second=121 amount=-2
kerning first=71 second=97 amount=-2
kerning first=71 second=101 amount=-2
kerning first=71 second=104 amount=-1
kerning first=71 second=105 amount=-1
kerning first=71 second=108 amount=-1
kerning first=71 second=110 amount=-2
kerning first=71 second=111 amount=-2
kerning first=71 second=114 amount=-3
kerning first=71 second=117 amount=-2
kerning first=71 second=121 amount=-2
kerning first=78 second=97 amount=-2
kerning first=78 second=101 amount=-2
kerning first=78 second=111 amount=-2
kerning first=78 second=117 amount=-2
kerning first=78 second=121 amount=-2
kerning first=75 second=97 amount=-1
kerning first=75 second=101 amount=-2
kerning first=75 second=105 amount=-1
kerning first=75 second=108 amount=-1
kerning first=75 second=111 amount=-1
kerning first=75 second=114 amount=-2
kerning first=75 second=117 amount=-1
kerning first=75 second=121 amount=-1
kerning first=80 second=97 amount=-2
kerning first=80 second=101 amount=-1
kerning first=80 second=110 amount=-1
kerning first=80 second=111 amount=-2
kerning first=80 second=117 amount=-1
kerning first=80 second=121 amount=-1
kerning first=106 second=102 amount=-2
kerning first=106 second=106 amount=-3
kerning first=106 second=116 amount=-2
kerning first=66 second=97 amount=-2
kerning first=66 second=101 amount=-2
kerning first=66 second=111 amount=-2
kerning first=66 second=117 amount=-2
kerning first=66 second=121 amount=-2
kerning first=108 second=102 amount=-3
kerning first=108 second=106 amount=-2
kerning first=108 second=116 amount=-2
kerning first=100 second=102 amount=-2
kerning first=100 second=106 amount=-3
kerning first=100 second=116 amount=-2
kerning first=98 second=102 amount=-2
kerning first=98 second=106 amount=-3
kerning first=98 second=116 amount=-1
kerning first=70 second=97 amount=-5
kerning first=70 second=101 amount=-5
kerning first=70 second=105 amount=-4
kerning first=70 second=108 amount=-1
kerning first=70 second=111 amount=-5
kerning first=70 second=114 amount=-3
kerning first=70 second=117 amount=-4
kerning first=70 second=121 amount=-4
kerning first=107 second=102 amount=-3
kerning first=107 second=106 amount=-3
kerning first=107 second=116 amount=-2
kerning first=104 second=102 amount=-3
kerning first=104 second=106 amount=-3
kerning first=104 second=116 amount=-2
kerning first=87 second=97 amount=-2
kerning first=87 second=101 amount=-2
kerning first=87 second=111 amount=-2
kerning first=87 second=114 amount=-2
kerning first=87 second=117 amount=-2
kerning first=87 second=121 amount=-2
kerning first=83 second=102 amount=-1
kerning first=79 second=100 amount=-1
kerning first=79 second=102 amount=-2
kerning first=79 second=103 amount=-1
kerning first=79 second=106 amount=-3
kerning first=79 second=111 amount=-1
kerning first=79 second=115 amount=-1
kerning first=79 second=120 amount=-1
kerning first=73 second=100 amount=-1
kerning first=73 second=102 amount=-2
kerning first=73 second=106 amount=-3
kerning first=73 second=111 amount=-1
kerning first=73 second=115 amount=-1
kerning first=73 second=120 amount=-1
kerning first=69 second=102 amount=-2
kerning first=69 second=105 amount=-1
kerning first=69 second=106 amount=-3
kerning first=69 second=116 amount=-2
kerning first=69 second=120 amount=-1
kerning first=112 second=102 amount=-3
kerning first=112 second=106 amount=-3
kerning first=112 second=116 amount=-2
kerning first=85 second=102 amount=-2
kerning first=85 second=106 amount=-3
kerning first=85 second=116 amount=-2
kerning first=65 second=102 amount=-1
kerning first=65 second=106 amount=-3
kerning first=65 second=116 amount=-2
kerning first=121 second=102 amount=-2
kerning first=121 second=106 amount=-3
kerning first=121 second=116 amount=-2
kerning first=113 second=102 amount=-3
kerning first=113 second=106 amount=-3
kerning first=113 second=116 amount=-2
kerning first=105 second=102 amount=-2
kerning first=105 second=106 amount=-2
kerning first=105 second=116 amount=-1
kerning first=103 second=102 amount=-2
kerning first=103 second=106 amount=-2
kerning first=103 second=115 amount=-1
kerning first=103 second=116 amount=-2
kerning first=116 second=102 amount=-3
kerning first=116 second=106 amount=-3
kerning first=116 second=116 amount=-3
kerning first=122 second=102 amount=-1
kerning first=122 second=106 amount=-2
kerning first=119 second=102 amount=-3
kerning first=119 second=106 amount=-3
kerning first=119 second=116 amount=-2
kerning first=114 second=97 amount=-1
kerning first=114 second=102 amount=-4
kerning first=114 second=106 amount=-3
kerning first=114 second=116 amount=-3
kerning first=101 second=102 amount=-2
kerning first=101 second=106 amount=-2
kerning first=101 second=116 amount=-1
kerning first=120 second=102 amount=-3
kerning first=120 second=106 amount=-3
kerning first=120 second=116 amount=-2
kerning first=118 second=102 amount=-3
kerning first=118 second=106 amount=-3
kerning first=118 second=116 amount=-2
kerning first=117 second=97 amount=-1
kerning first=117 second=102 amount=-4
kerning first=117 second=106 amount=-3
kerning first=117 second=116 amount=-3
kerning first=115 second=102 amount=-3
kerning first=115 second=106 amount=-3
kerning first=115 second=116 amount=-2
kerning first=111 second=102 amount=-4
kerning first=111 second=106 amount=-3
kerning first=111 second=116 amount=-3
kerning first=110 second=97 amount=-1
kerning first=110 second=102 amount=-4
kerning first=110 second=106 amount=-3
kerning first=110 second=116 amount=-3
kerning first=99 second=102 amount=-4
kerning first=99 second=106 amount=-3
kerning first=99 second=116 amount=-2
kerning first=99 second=120 amount=-1
kerning first=109 second=102 amount=-2
kerning first=109 second=106 amount=-3
kerning first=109 second=116 amount=-2
kerning first=97 second=102 amount=-3
kerning first=97 second=106 amount=-3
kerning first=97 second=116 amount=-2
kerning first=97 second=120 amount=-1
Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 835 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

+101
View File
@@ -0,0 +1,101 @@
info face="Droid Sans" size=17 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1
common lineHeight=20 base=18 scaleW=256 scaleH=128 pages=1 packed=0
page id=0 file="default.png"
chars count=96
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=16 xadvance=4 page=0 chnl=0
char id=124 x=0 y=0 width=6 height=20 xoffset=1 yoffset=3 xadvance=9 page=0 chnl=0
char id=106 x=6 y=0 width=9 height=20 xoffset=-4 yoffset=3 xadvance=4 page=0 chnl=0
char id=81 x=15 y=0 width=15 height=19 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=0
char id=74 x=30 y=0 width=11 height=19 xoffset=-5 yoffset=3 xadvance=4 page=0 chnl=0
char id=125 x=41 y=0 width=10 height=18 xoffset=-3 yoffset=3 xadvance=6 page=0 chnl=0
char id=123 x=51 y=0 width=10 height=18 xoffset=-3 yoffset=3 xadvance=6 page=0 chnl=0
char id=93 x=61 y=0 width=8 height=18 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0
char id=91 x=69 y=0 width=8 height=18 xoffset=-2 yoffset=3 xadvance=5 page=0 chnl=0
char id=41 x=77 y=0 width=9 height=18 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0
char id=40 x=86 y=0 width=9 height=18 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0
char id=64 x=95 y=0 width=18 height=17 xoffset=-3 yoffset=3 xadvance=14 page=0 chnl=0
char id=121 x=113 y=0 width=13 height=17 xoffset=-3 yoffset=6 xadvance=8 page=0 chnl=0
char id=113 x=126 y=0 width=13 height=17 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0
char id=112 x=139 y=0 width=13 height=17 xoffset=-2 yoffset=6 xadvance=9 page=0 chnl=0
char id=103 x=152 y=0 width=13 height=17 xoffset=-3 yoffset=6 xadvance=8 page=0 chnl=0
char id=38 x=165 y=0 width=16 height=16 xoffset=-3 yoffset=3 xadvance=11 page=0 chnl=0
char id=37 x=181 y=0 width=18 height=16 xoffset=-3 yoffset=3 xadvance=14 page=0 chnl=0
char id=36 x=199 y=0 width=12 height=16 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
char id=63 x=211 y=0 width=11 height=16 xoffset=-3 yoffset=3 xadvance=7 page=0 chnl=0
char id=33 x=222 y=0 width=7 height=16 xoffset=-2 yoffset=3 xadvance=4 page=0 chnl=0
char id=48 x=229 y=0 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
char id=57 x=242 y=0 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
char id=56 x=0 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
char id=54 x=13 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
char id=53 x=26 y=20 width=12 height=16 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
char id=51 x=38 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
char id=100 x=51 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
char id=98 x=64 y=20 width=13 height=16 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
char id=85 x=77 y=20 width=14 height=16 xoffset=-2 yoffset=3 xadvance=11 page=0 chnl=0
char id=83 x=91 y=20 width=13 height=16 xoffset=-3 yoffset=3 xadvance=8 page=0 chnl=0
char id=79 x=104 y=20 width=15 height=16 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=0
char id=71 x=119 y=20 width=14 height=16 xoffset=-2 yoffset=3 xadvance=11 page=0 chnl=0
char id=67 x=133 y=20 width=13 height=16 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0
char id=127 x=146 y=20 width=12 height=15 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0
char id=35 x=158 y=20 width=15 height=15 xoffset=-3 yoffset=3 xadvance=10 page=0 chnl=0
char id=92 x=173 y=20 width=11 height=15 xoffset=-3 yoffset=3 xadvance=6 page=0 chnl=0
char id=47 x=184 y=20 width=11 height=15 xoffset=-3 yoffset=3 xadvance=6 page=0 chnl=0
char id=59 x=195 y=20 width=8 height=15 xoffset=-3 yoffset=6 xadvance=4 page=0 chnl=0
char id=55 x=203 y=20 width=13 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
char id=52 x=216 y=20 width=14 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
char id=50 x=230 y=20 width=13 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
char id=49 x=243 y=20 width=9 height=15 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
char id=116 x=0 y=36 width=10 height=15 xoffset=-3 yoffset=4 xadvance=5 page=0 chnl=0
char id=108 x=10 y=36 width=6 height=15 xoffset=-2 yoffset=3 xadvance=4 page=0 chnl=0
char id=107 x=16 y=36 width=12 height=15 xoffset=-2 yoffset=3 xadvance=8 page=0 chnl=0
char id=105 x=28 y=36 width=7 height=15 xoffset=-2 yoffset=3 xadvance=4 page=0 chnl=0
char id=104 x=35 y=36 width=12 height=15 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0
char id=102 x=47 y=36 width=11 height=15 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0
char id=90 x=58 y=36 width=13 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
char id=89 x=71 y=36 width=13 height=15 xoffset=-3 yoffset=3 xadvance=8 page=0 chnl=0
char id=88 x=84 y=36 width=14 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
char id=87 x=98 y=36 width=19 height=15 xoffset=-3 yoffset=3 xadvance=15 page=0 chnl=0
char id=86 x=117 y=36 width=14 height=15 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
char id=84 x=131 y=36 width=13 height=15 xoffset=-3 yoffset=3 xadvance=8 page=0 chnl=0
char id=82 x=144 y=36 width=13 height=15 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0
char id=80 x=157 y=36 width=12 height=15 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
char id=78 x=169 y=36 width=14 height=15 xoffset=-2 yoffset=3 xadvance=12 page=0 chnl=0
char id=77 x=183 y=36 width=17 height=15 xoffset=-2 yoffset=3 xadvance=14 page=0 chnl=0
char id=76 x=200 y=36 width=11 height=15 xoffset=-2 yoffset=3 xadvance=8 page=0 chnl=0
char id=75 x=211 y=36 width=13 height=15 xoffset=-2 yoffset=3 xadvance=9 page=0 chnl=0
char id=73 x=224 y=36 width=10 height=15 xoffset=-3 yoffset=3 xadvance=5 page=0 chnl=0
char id=72 x=234 y=36 width=14 height=15 xoffset=-2 yoffset=3 xadvance=11 page=0 chnl=0
char id=70 x=0 y=51 width=11 height=15 xoffset=-2 yoffset=3 xadvance=8 page=0 chnl=0
char id=69 x=11 y=51 width=11 height=15 xoffset=-2 yoffset=3 xadvance=8 page=0 chnl=0
char id=68 x=22 y=51 width=14 height=15 xoffset=-2 yoffset=3 xadvance=11 page=0 chnl=0
char id=66 x=36 y=51 width=13 height=15 xoffset=-2 yoffset=3 xadvance=10 page=0 chnl=0
char id=65 x=49 y=51 width=15 height=15 xoffset=-3 yoffset=3 xadvance=10 page=0 chnl=0
char id=58 x=64 y=51 width=7 height=13 xoffset=-2 yoffset=6 xadvance=4 page=0 chnl=0
char id=117 x=71 y=51 width=12 height=13 xoffset=-2 yoffset=6 xadvance=10 page=0 chnl=0
char id=115 x=83 y=51 width=11 height=13 xoffset=-3 yoffset=6 xadvance=7 page=0 chnl=0
char id=111 x=94 y=51 width=13 height=13 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0
char id=101 x=107 y=51 width=13 height=13 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0
char id=99 x=120 y=51 width=12 height=13 xoffset=-3 yoffset=6 xadvance=7 page=0 chnl=0
char id=97 x=132 y=51 width=12 height=13 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0
char id=60 x=144 y=51 width=13 height=12 xoffset=-3 yoffset=5 xadvance=9 page=0 chnl=0
char id=122 x=157 y=51 width=11 height=12 xoffset=-3 yoffset=6 xadvance=7 page=0 chnl=0
char id=120 x=168 y=51 width=13 height=12 xoffset=-3 yoffset=6 xadvance=8 page=0 chnl=0
char id=119 x=181 y=51 width=17 height=12 xoffset=-3 yoffset=6 xadvance=12 page=0 chnl=0
char id=118 x=198 y=51 width=13 height=12 xoffset=-3 yoffset=6 xadvance=8 page=0 chnl=0
char id=114 x=211 y=51 width=10 height=12 xoffset=-2 yoffset=6 xadvance=6 page=0 chnl=0
char id=110 x=221 y=51 width=12 height=12 xoffset=-2 yoffset=6 xadvance=10 page=0 chnl=0
char id=109 x=233 y=51 width=17 height=12 xoffset=-2 yoffset=6 xadvance=15 page=0 chnl=0
char id=94 x=0 y=66 width=13 height=11 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
char id=62 x=13 y=66 width=13 height=11 xoffset=-3 yoffset=5 xadvance=9 page=0 chnl=0
char id=42 x=26 y=66 width=13 height=10 xoffset=-3 yoffset=3 xadvance=9 page=0 chnl=0
char id=43 x=39 y=66 width=13 height=10 xoffset=-3 yoffset=6 xadvance=9 page=0 chnl=0
char id=61 x=52 y=66 width=13 height=8 xoffset=-3 yoffset=7 xadvance=9 page=0 chnl=0
char id=39 x=65 y=66 width=6 height=8 xoffset=-2 yoffset=3 xadvance=3 page=0 chnl=0
char id=34 x=71 y=66 width=9 height=8 xoffset=-2 yoffset=3 xadvance=6 page=0 chnl=0
char id=44 x=80 y=66 width=8 height=7 xoffset=-3 yoffset=14 xadvance=4 page=0 chnl=0
char id=126 x=88 y=66 width=13 height=6 xoffset=-3 yoffset=8 xadvance=9 page=0 chnl=0
char id=46 x=101 y=66 width=7 height=6 xoffset=-2 yoffset=13 xadvance=4 page=0 chnl=0
char id=96 x=108 y=66 width=8 height=6 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0
char id=45 x=116 y=66 width=9 height=5 xoffset=-3 yoffset=10 xadvance=5 page=0 chnl=0
char id=95 x=125 y=66 width=13 height=4 xoffset=-4 yoffset=17 xadvance=6 page=0 chnl=0
kernings count=-1
Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

+100
View File
@@ -0,0 +1,100 @@
info face="Droid Sans" size=11 bold=0 italic=0 charset="" unicode=0 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=0,0
common lineHeight=14 base=11 scaleW=512 scaleH=512 pages=1 packed=0
page id=0 file="tiny.png"
chars count=94
char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=11 xadvance=3 page=0 chnl=0
char id=124 x=0 y=0 width=2 height=13 xoffset=2 yoffset=2 xadvance=5 page=0 chnl=0
char id=106 x=2 y=0 width=4 height=13 xoffset=-1 yoffset=2 xadvance=2 page=0 chnl=0
char id=93 x=6 y=0 width=4 height=12 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=0
char id=91 x=10 y=0 width=4 height=12 xoffset=1 yoffset=2 xadvance=3 page=0 chnl=0
char id=41 x=14 y=0 width=4 height=12 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=0
char id=40 x=18 y=0 width=3 height=12 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=0
char id=81 x=21 y=0 width=8 height=12 xoffset=1 yoffset=2 xadvance=9 page=0 chnl=0
char id=74 x=29 y=0 width=5 height=12 xoffset=-1 yoffset=2 xadvance=3 page=0 chnl=0
char id=36 x=34 y=0 width=6 height=11 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0
char id=125 x=40 y=0 width=5 height=11 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=0
char id=123 x=45 y=0 width=5 height=11 xoffset=1 yoffset=3 xadvance=4 page=0 chnl=0
char id=121 x=50 y=0 width=8 height=11 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
char id=113 x=58 y=0 width=7 height=11 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=0
char id=112 x=65 y=0 width=7 height=11 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=0
char id=103 x=72 y=0 width=7 height=11 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=0
char id=35 x=79 y=0 width=9 height=10 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=0
char id=37 x=88 y=0 width=9 height=10 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0
char id=92 x=97 y=0 width=7 height=10 xoffset=-1 yoffset=2 xadvance=4 page=0 chnl=0
char id=64 x=104 y=0 width=10 height=10 xoffset=1 yoffset=3 xadvance=10 page=0 chnl=0
char id=47 x=114 y=0 width=7 height=10 xoffset=-1 yoffset=2 xadvance=4 page=0 chnl=0
char id=59 x=121 y=0 width=3 height=10 xoffset=0 yoffset=4 xadvance=3 page=0 chnl=0
char id=33 x=124 y=0 width=4 height=10 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=0
char id=48 x=128 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0
char id=57 x=135 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0
char id=56 x=142 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0
char id=55 x=149 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0
char id=54 x=156 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0
char id=53 x=163 y=0 width=6 height=10 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0
char id=52 x=169 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0
char id=51 x=176 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0
char id=50 x=183 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0
char id=49 x=190 y=0 width=4 height=10 xoffset=1 yoffset=2 xadvance=6 page=0 chnl=0
char id=108 x=194 y=0 width=2 height=10 xoffset=0 yoffset=2 xadvance=2 page=0 chnl=0
char id=107 x=196 y=0 width=6 height=10 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=0
char id=105 x=202 y=0 width=4 height=10 xoffset=-1 yoffset=2 xadvance=2 page=0 chnl=0
char id=104 x=206 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0
char id=102 x=213 y=0 width=5 height=10 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=0
char id=100 x=218 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0
char id=98 x=225 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0
char id=90 x=232 y=0 width=7 height=10 xoffset=1 yoffset=2 xadvance=7 page=0 chnl=0
char id=89 x=239 y=0 width=10 height=10 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
char id=88 x=249 y=0 width=9 height=10 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=0
char id=87 x=258 y=0 width=12 height=10 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=0
char id=86 x=270 y=0 width=10 height=10 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
char id=85 x=280 y=0 width=8 height=10 xoffset=1 yoffset=2 xadvance=8 page=0 chnl=0
char id=84 x=288 y=0 width=7 height=10 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=0
char id=82 x=295 y=0 width=7 height=10 xoffset=1 yoffset=2 xadvance=7 page=0 chnl=0
char id=80 x=302 y=0 width=5 height=10 xoffset=1 yoffset=2 xadvance=6 page=0 chnl=0
char id=79 x=307 y=0 width=8 height=10 xoffset=1 yoffset=2 xadvance=9 page=0 chnl=0
char id=78 x=315 y=0 width=8 height=10 xoffset=1 yoffset=2 xadvance=8 page=0 chnl=0
char id=77 x=323 y=0 width=10 height=10 xoffset=1 yoffset=2 xadvance=10 page=0 chnl=0
char id=76 x=333 y=0 width=5 height=10 xoffset=1 yoffset=2 xadvance=5 page=0 chnl=0
char id=75 x=338 y=0 width=8 height=10 xoffset=1 yoffset=2 xadvance=7 page=0 chnl=0
char id=73 x=346 y=0 width=4 height=10 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=0
char id=72 x=350 y=0 width=8 height=10 xoffset=1 yoffset=2 xadvance=8 page=0 chnl=0
char id=71 x=358 y=0 width=8 height=10 xoffset=1 yoffset=2 xadvance=8 page=0 chnl=0
char id=70 x=366 y=0 width=6 height=10 xoffset=1 yoffset=2 xadvance=5 page=0 chnl=0
char id=69 x=372 y=0 width=6 height=10 xoffset=1 yoffset=2 xadvance=6 page=0 chnl=0
char id=68 x=378 y=0 width=8 height=10 xoffset=1 yoffset=2 xadvance=8 page=0 chnl=0
char id=67 x=386 y=0 width=8 height=10 xoffset=1 yoffset=2 xadvance=7 page=0 chnl=0
char id=66 x=394 y=0 width=7 height=10 xoffset=1 yoffset=2 xadvance=7 page=0 chnl=0
char id=65 x=401 y=0 width=10 height=10 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0
char id=38 x=411 y=0 width=8 height=9 xoffset=0 yoffset=3 xadvance=8 page=0 chnl=0
char id=63 x=419 y=0 width=5 height=9 xoffset=0 yoffset=3 xadvance=5 page=0 chnl=0
char id=116 x=424 y=0 width=5 height=9 xoffset=0 yoffset=3 xadvance=4 page=0 chnl=0
char id=83 x=429 y=0 width=7 height=9 xoffset=0 yoffset=3 xadvance=6 page=0 chnl=0
char id=58 x=436 y=0 width=2 height=8 xoffset=1 yoffset=4 xadvance=3 page=0 chnl=0
char id=122 x=438 y=0 width=6 height=8 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=0
char id=120 x=444 y=0 width=6 height=8 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=0
char id=119 x=450 y=0 width=10 height=8 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0
char id=118 x=460 y=0 width=8 height=8 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
char id=117 x=468 y=0 width=7 height=8 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=0
char id=115 x=475 y=0 width=6 height=8 xoffset=-1 yoffset=4 xadvance=5 page=0 chnl=0
char id=114 x=481 y=0 width=4 height=8 xoffset=0 yoffset=4 xadvance=4 page=0 chnl=0
char id=111 x=485 y=0 width=7 height=8 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=0
char id=110 x=492 y=0 width=7 height=8 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=0
char id=109 x=499 y=0 width=11 height=8 xoffset=0 yoffset=4 xadvance=10 page=0 chnl=0
char id=101 x=0 y=13 width=7 height=8 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=0
char id=99 x=7 y=13 width=5 height=8 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=0
char id=97 x=12 y=13 width=7 height=8 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=0
char id=42 x=19 y=13 width=8 height=7 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=0
char id=43 x=27 y=13 width=7 height=7 xoffset=-1 yoffset=4 xadvance=6 page=0 chnl=0
char id=94 x=34 y=13 width=7 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0
char id=62 x=41 y=13 width=6 height=6 xoffset=1 yoffset=5 xadvance=6 page=0 chnl=0
char id=60 x=47 y=13 width=6 height=6 xoffset=1 yoffset=5 xadvance=6 page=0 chnl=0
char id=61 x=53 y=13 width=6 height=5 xoffset=1 yoffset=5 xadvance=6 page=0 chnl=0
char id=44 x=59 y=13 width=3 height=5 xoffset=0 yoffset=9 xadvance=3 page=0 chnl=0
char id=39 x=62 y=13 width=3 height=5 xoffset=1 yoffset=2 xadvance=3 page=0 chnl=0
char id=34 x=65 y=13 width=5 height=5 xoffset=1 yoffset=2 xadvance=5 page=0 chnl=0
char id=46 x=70 y=13 width=2 height=4 xoffset=1 yoffset=8 xadvance=3 page=0 chnl=0
char id=96 x=72 y=13 width=4 height=4 xoffset=2 yoffset=1 xadvance=6 page=0 chnl=0
char id=126 x=76 y=13 width=6 height=3 xoffset=1 yoffset=6 xadvance=6 page=0 chnl=0
char id=95 x=82 y=13 width=7 height=3 xoffset=0 yoffset=11 xadvance=5 page=0 chnl=0
char id=45 x=89 y=13 width=5 height=3 xoffset=0 yoffset=7 xadvance=4 page=0 chnl=0
kernings count=-1
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

+199
View File
@@ -0,0 +1,199 @@
uiskin.png
size: 256,128
format: RGBA8888
filter: Linear,Linear
repeat: none
check-off
rotate: false
xy: 11, 5
size: 14, 14
orig: 14, 14
offset: 0, 0
index: -1
textfield
rotate: false
xy: 11, 5
size: 14, 14
split: 3, 3, 3, 3
orig: 14, 14
offset: 0, 0
index: -1
check-on
rotate: false
xy: 125, 35
size: 14, 14
orig: 14, 14
offset: 0, 0
index: -1
cursor
rotate: false
xy: 23, 1
size: 3, 3
split: 1, 1, 1, 1
orig: 3, 3
offset: 0, 0
index: -1
default
rotate: false
xy: 1, 50
size: 254, 77
orig: 254, 77
offset: 0, 0
index: -1
default-pane
rotate: false
xy: 11, 1
size: 5, 3
split: 1, 1, 1, 1
orig: 5, 3
offset: 0, 0
index: -1
default-rect-pad
rotate: false
xy: 11, 1
size: 5, 3
split: 1, 1, 1, 1
orig: 5, 3
offset: 0, 0
index: -1
default-pane-noborder
rotate: false
xy: 170, 44
size: 1, 1
split: 0, 0, 0, 0
orig: 1, 1
offset: 0, 0
index: -1
default-rect
rotate: false
xy: 38, 25
size: 3, 3
split: 1, 1, 1, 1
orig: 3, 3
offset: 0, 0
index: -1
default-rect-down
rotate: false
xy: 170, 46
size: 3, 3
split: 1, 1, 1, 1
orig: 3, 3
offset: 0, 0
index: -1
default-round
rotate: false
xy: 112, 29
size: 12, 20
split: 5, 5, 5, 4
pad: 4, 4, 1, 1
orig: 12, 20
offset: 0, 0
index: -1
default-round-down
rotate: false
xy: 99, 29
size: 12, 20
split: 5, 5, 5, 4
pad: 4, 4, 1, 1
orig: 12, 20
offset: 0, 0
index: -1
default-round-large
rotate: false
xy: 57, 29
size: 20, 20
split: 5, 5, 5, 4
orig: 20, 20
offset: 0, 0
index: -1
default-scroll
rotate: false
xy: 78, 29
size: 20, 20
split: 2, 2, 2, 2
orig: 20, 20
offset: 0, 0
index: -1
default-select
rotate: false
xy: 29, 29
size: 27, 20
split: 4, 14, 4, 4
orig: 27, 20
offset: 0, 0
index: -1
default-select-selection
rotate: false
xy: 26, 16
size: 3, 3
split: 1, 1, 1, 1
orig: 3, 3
offset: 0, 0
index: -1
default-slider
rotate: false
xy: 29, 20
size: 8, 8
split: 2, 2, 2, 2
orig: 8, 8
offset: 0, 0
index: -1
default-slider-knob
rotate: false
xy: 1, 1
size: 9, 18
orig: 9, 18
offset: 0, 0
index: -1
default-splitpane
rotate: false
xy: 17, 1
size: 5, 3
split: 0, 5, 0, 0
orig: 5, 3
offset: 0, 0
index: -1
default-splitpane-vertical
rotate: false
xy: 125, 29
size: 3, 5
split: 0, 0, 0, 5
orig: 3, 5
offset: 0, 0
index: -1
default-window
rotate: false
xy: 1, 20
size: 27, 29
split: 4, 3, 20, 3
orig: 27, 29
offset: 0, 0
index: -1
selection
rotate: false
xy: 174, 48
size: 1, 1
orig: 1, 1
offset: 0, 0
index: -1
tree-minus
rotate: false
xy: 140, 35
size: 14, 14
orig: 14, 14
offset: 0, 0
index: -1
tree-plus
rotate: false
xy: 155, 35
size: 14, 14
orig: 14, 14
offset: 0, 0
index: -1
white
rotate: false
xy: 129, 31
size: 3, 3
orig: 3, 3
offset: 0, 0
index: -1
+79
View File
@@ -0,0 +1,79 @@
{
com.badlogic.gdx.graphics.g2d.BitmapFont: {
default-font: { file: default.fnt },
tiny-font: { file: tiny.fnt }
},
com.badlogic.gdx.graphics.Color: {
green: { a: 1, b: 0, g: 1, r: 0 },
white: { a: 1, b: 1, g: 1, r: 1 },
red: { a: 1, b: 0, g: 0, r: 1 },
black: { a: 1, b: 0, g: 0, r: 0 },
blue: {a: 1, b: 0.9, g: 0.4, r: 0 }
},
com.badlogic.gdx.scenes.scene2d.ui.Skin$TintedDrawable: {
dialogDim: { name: white, color: { r: 0, g: 0, b: 0, a: 0.45 } },
},
com.badlogic.gdx.scenes.scene2d.ui.Button$ButtonStyle: {
default: { down: default-round-down, up: default-round },
toggle: { down: default-round-down, checked: default-round-down, up: default-round }
},
com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {
default: { down: default-round-down, up: default-round, font: default-font, fontColor: white, overFontColor: blue},
tinytext: { down: default-round-down, up: default-round, font: tiny-font, fontColor: white, overFontColor: blue},
toggle: { down: default-round-down, up: default-round, checked: default-round-down, font: default-font, fontColor: white, downFontColor: red }
},
com.badlogic.gdx.scenes.scene2d.ui.ScrollPane$ScrollPaneStyle: {
default: { vScroll: default-scroll, hScrollKnob: default-round-large, background: default-rect, hScroll: default-scroll, vScrollKnob: default-round-large }
},
com.badlogic.gdx.scenes.scene2d.ui.SelectBox$SelectBoxStyle: {
default: {
font: default-font, fontColor: white, background: default-select,
scrollStyle: default,
listStyle: { font: default-font, selection: default-select-selection }
}
},
com.badlogic.gdx.scenes.scene2d.ui.SplitPane$SplitPaneStyle: {
default-vertical: { handle: default-splitpane-vertical },
default-horizontal: { handle: default-splitpane }
},
com.badlogic.gdx.scenes.scene2d.ui.Window$WindowStyle: {
default: { titleFont: default-font, background: default-window, titleFontColor: white },
dialog: { titleFont: default-font, background: default-window, titleFontColor: white, stageBackground: dialogDim }
},
com.badlogic.gdx.scenes.scene2d.ui.ProgressBar$ProgressBarStyle: {
default-horizontal: { background: default-slider, knob: default-slider-knob },
default-vertical: { background: default-slider, knob: default-round-large }
},
com.badlogic.gdx.scenes.scene2d.ui.Slider$SliderStyle: {
default-horizontal: { background: default-slider, knob: default-slider-knob },
default-vertical: { background: default-slider, knob: default-round-large }
},
com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
default: { font: default-font, fontColor: white }
redlabel: { font: default-font, fontColor: red }
bluelabel: { font: default-font, fontColor: blue }
greenlabel: { font: default-font, fontColor: green }
},
com.badlogic.gdx.scenes.scene2d.ui.TextField$TextFieldStyle: {
default: { selection: selection, background: textfield, font: default-font, fontColor: white, cursor: cursor }
tinytext: { selection: selection, background: textfield, font: tiny-font, fontColor: white, cursor: cursor }
},
com.badlogic.gdx.scenes.scene2d.ui.CheckBox$CheckBoxStyle: {
default: { checkboxOn: check-on, checkboxOff: check-off, font: default-font, fontColor: white }
},
com.badlogic.gdx.scenes.scene2d.ui.List$ListStyle: {
default: { fontColorUnselected: white, selection: selection, fontColorSelected: white, font: default-font }
},
com.badlogic.gdx.scenes.scene2d.ui.Touchpad$TouchpadStyle: {
default: { background: default-pane, knob: default-round-large }
},
com.badlogic.gdx.scenes.scene2d.ui.Tree$TreeStyle: {
default: { minus: tree-minus, plus: tree-plus, selection: default-select-selection }
},
com.badlogic.gdx.scenes.scene2d.ui.TextTooltip$TextTooltipStyle: {
default: {
label: { font: default-font, fontColor: white },
background: default-pane
}
},
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

+2 -2
View File
@@ -1,6 +1,6 @@
apply plugin: "java"
sourceCompatibility = 1.6
sourceCompatibility = 1.7
sourceSets.main.java.srcDirs = [ "src/" ]
project.ext.mainClassName = "com.jw.lightwallet.desktop.DesktopLauncher"
@@ -43,4 +43,4 @@ task afterEclipseImport(description: "Post processing after project generation",
printer.setPreserveWhitespace(true)
printer.print(classpath)
}
}
}
@@ -12,7 +12,7 @@ public class DesktopLauncher {
config.width = Constants.DESKTOP_WIDTH;
config.height = Constants.DESKTOP_HEIGHT;
config.title = "Monero LightWallet";
config.addIcon("icon32.png", FileType.Internal);
config.addIcon("assets/icon32.png", FileType.Internal);
new LwjglApplication(new LightWallet(), config);
}
}