From 3a4cb788c7805736a66c9c445785e284e8b6e43f Mon Sep 17 00:00:00 2001 From: drdev Date: Thu, 6 Mar 2014 05:23:17 +0000 Subject: [PATCH] Support changing and remembering theme Make forge-m-base a Maven project --- .gitattributes | 1 + forge-m-base/.classpath | 20 +- forge-m-base/.project | 6 + .../.settings/org.eclipse.jdt.core.prefs | 1 + .../.settings/org.eclipse.m2e.core.prefs | 4 + forge-m-base/pom.xml | 508 ++---------------- forge-m-base/src/forge/Forge.java | 1 - forge-m-base/src/forge/assets/FSkin.java | 11 +- .../src/forge/screens/SplashScreen.java | 6 + .../screens/settings/SettingsScreen.java | 25 +- forge-m-base/src/forge/toolbox/FList.java | 8 +- 11 files changed, 103 insertions(+), 488 deletions(-) create mode 100644 forge-m-base/.settings/org.eclipse.m2e.core.prefs diff --git a/.gitattributes b/.gitattributes index 8ccdefb79ed..805228a47fd 100644 --- a/.gitattributes +++ b/.gitattributes @@ -16000,6 +16000,7 @@ forge-m-android/src/com/forge/Main.java -text forge-m-base/.classpath -text forge-m-base/.project -text forge-m-base/.settings/org.eclipse.jdt.core.prefs -text +forge-m-base/.settings/org.eclipse.m2e.core.prefs -text forge-m-base/libs/gdx-freetype.jar -text forge-m-base/libs/gdx-sources.jar -text forge-m-base/libs/gdx.jar -text diff --git a/forge-m-base/.classpath b/forge-m-base/.classpath index 5fdb56bd67d..8eb53e617fc 100644 --- a/forge-m-base/.classpath +++ b/forge-m-base/.classpath @@ -1,12 +1,26 @@ - - + + + + + + + + + + + - + + + + + + diff --git a/forge-m-base/.project b/forge-m-base/.project index c9d1c5f23c9..60cafc7c135 100644 --- a/forge-m-base/.project +++ b/forge-m-base/.project @@ -10,8 +10,14 @@ + + org.eclipse.m2e.core.maven2Builder + + + + org.eclipse.m2e.core.maven2Nature org.eclipse.jdt.core.javanature diff --git a/forge-m-base/.settings/org.eclipse.jdt.core.prefs b/forge-m-base/.settings/org.eclipse.jdt.core.prefs index 838bd9d6942..f4217b01dd2 100644 --- a/forge-m-base/.settings/org.eclipse.jdt.core.prefs +++ b/forge-m-base/.settings/org.eclipse.jdt.core.prefs @@ -8,4 +8,5 @@ org.eclipse.jdt.core.compiler.debug.localVariable=generate org.eclipse.jdt.core.compiler.debug.sourceFile=generate org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning org.eclipse.jdt.core.compiler.source=1.7 diff --git a/forge-m-base/.settings/org.eclipse.m2e.core.prefs b/forge-m-base/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 00000000000..14b697b7bbb --- /dev/null +++ b/forge-m-base/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/forge-m-base/pom.xml b/forge-m-base/pom.xml index f6e708a3209..da48f5af947 100644 --- a/forge-m-base/pom.xml +++ b/forge-m-base/pom.xml @@ -1,476 +1,32 @@ - - 4.0.0 - - - forge - forge - 1.5.14-SNAPSHOT - - - forge-m-base - jar - Forge - - - - - com.google.code.maven-svn-revision-number-plugin - svn-revision-number-maven-plugin - - - - revision - - - - - false - - - - org.apache.maven.plugins - maven-antrun-plugin - - - org.apache.ant - ant-nodeps - 1.8.1 - - - com.oracle.appbundler - appbundler - 1.0 - ea - - - - - build-version-string - process-resources - - run - - - true - - - - - - - - - - - - org.apache.maven.plugins - maven-jar-plugin - 2.4 - - - - true - true - - - ${fullversionstring} - - - - - - com.google.code.maven-replacer-plugin - replacer - 1.5.2 - - - package - - replace - - - - - ${basedir}/${configSourceDirectory} - forge.sh, forge.command - ${project.build.directory} - . - false - - - $project.build.finalName$ - ${project.build.finalName}-jar-with-dependencies.jar - - - - - - maven-assembly-plugin - - false - - jar-with-dependencies - - - - forge.view.Main - true - - - ${fullversionstring} - - - - - - make-assembly - - package - - - single - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 1.8 - - - released-version - validate - - released-version - - - - parse-version - - parse-version - - - - - - - - - - - forge - forge-core - ${project.version} - - - forge - forge-game - ${project.version} - - - forge - forge-ai - ${project.version} - - - forge - forge-net - ${project.version} - - - com.google.guava - guava - 15.0 - - - - org.apache.commons - commons-lang3 - 3.1 - - - - - - windows-linux - - - - com.akathist.maven.plugins.launch4j - launch4j-maven-plugin - 1.5.2 - - - l4j-gui - package - - launch4j - - - gui - ${project.build.directory}/forge.exe - ${project.build.finalName}-jar-with-dependencies.jar - true - forge - src/main/config/forge.ico - - forge.view.Main - false - anything - - - 1.7.0 - 1024 - - - ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 - ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 - Forge - Forge - ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 - ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}.0 - Forge - forge - forge.exe - - - - - - - - org.apache.maven.plugins - maven-antrun-plugin - 1.7 - - - org.apache.ant - ant-nodeps - 1.8.1 - - - - - win-linux-app-bundle - pre-integration-test - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - run - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 1.8 - - - released-version - validate - - released-version - - - - parse-version - - parse-version - - - - attach-distribution - post-integration-test - - attach-artifact - - - - - ${project.build.directory}/${project.build.finalName}.tar.bz2 - tar.bz2 - - - - - - - - - - - - - "LICENSE.txt" - "CHANGES.txt" - "README.txt" - "Forge" - "Applications" - - osx - - - - org.apache.maven.plugins - maven-antrun-plugin - 1.7 - - - org.apache.ant - ant-nodeps - 1.8.1 - - - com.oracle.appbundler - appbundler - 1.0 - ea - - - - - osx-appbundle - pre-integration-test - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - run - - - - - - org.codehaus.mojo - build-helper-maven-plugin - 1.8 - - - released-version - validate - - released-version - - - - parse-version - - parse-version - - - - attach-distribution-osx - post-integration-test - - attach-artifact - - - - - ${project.build.directory}/${project.build.finalName}-osx.tar.bz2 - - tar.bz2 - osx - - - - - - - - - - - - - test-deploy - - - cardforge-repo-local - ftp://localhost/Users/dhudson/releases - - - cardforge-snapshot-repo-local - ftp://localhost/Users/dhudson/snapshots - - - - - + + 4.0.0 + forge-mobile + forge-mobile + 1.5.14-SNAPSHOT + + src + + + maven-compiler-plugin + 3.1 + + 1.7 + 1.7 + + + + + + + + com.google.guava + guava + 15.0 + + + org.apache.commons + commons-lang3 + 3.1 + + + \ No newline at end of file diff --git a/forge-m-base/src/forge/Forge.java b/forge-m-base/src/forge/Forge.java index b9e630b1489..9a6bb5cdfa7 100644 --- a/forge-m-base/src/forge/Forge.java +++ b/forge-m-base/src/forge/Forge.java @@ -54,7 +54,6 @@ public class Forge implements ApplicationListener { shapeRenderer = new ShapeRenderer(); splashScreen = new SplashScreen(); - FSkin.loadLight("journeyman", splashScreen); //load model on background thread (using progress bar to report progress) new Thread(new Runnable() { diff --git a/forge-m-base/src/forge/assets/FSkin.java b/forge-m-base/src/forge/assets/FSkin.java index 03d40e3dee1..35ddb7a87f9 100644 --- a/forge-m-base/src/forge/assets/FSkin.java +++ b/forge-m-base/src/forge/assets/FSkin.java @@ -5,6 +5,8 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; +import org.apache.commons.lang3.text.WordUtils; + import com.badlogic.gdx.Application.ApplicationType; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.files.FileHandle; @@ -14,8 +16,11 @@ import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.TextureRegion; import forge.assets.FSkinImage.SourceFile; +import forge.model.FModel; import forge.screens.SplashScreen; import forge.toolbox.FProgressBar; +import forge.utils.ForgePreferences; +import forge.utils.ForgePreferences.FPref; public class FSkin { private static final String @@ -31,12 +36,12 @@ public class FSkin { private static boolean loaded = false; public static void changeSkin(final String skinName) { - /*final ForgePreferences prefs = Singletons.getModel().getPreferences(); + final ForgePreferences prefs = FModel.getPreferences(); if (skinName.equals(prefs.getPref(FPref.UI_SKIN))) { return; } //save skin preference prefs.setPref(FPref.UI_SKIN, skinName); - prefs.save();*/ + prefs.save(); //load skin loaded = false; //reset this temporarily until end of loadFull() @@ -58,7 +63,7 @@ public class FSkin { allSkins = new ArrayList(); ArrayList skinDirectoryNames = getSkinDirectoryNames(); for (int i = 0; i < skinDirectoryNames.size(); i++) { - allSkins.add(skinDirectoryNames.get(i).replace('_', ' ')); + allSkins.add(WordUtils.capitalize(skinDirectoryNames.get(i).replace('_', ' '))); } Collections.sort(allSkins); } diff --git a/forge-m-base/src/forge/screens/SplashScreen.java b/forge-m-base/src/forge/screens/SplashScreen.java index fdf664db8b5..aed804ff0c8 100644 --- a/forge-m-base/src/forge/screens/SplashScreen.java +++ b/forge-m-base/src/forge/screens/SplashScreen.java @@ -4,9 +4,12 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import forge.Forge.Graphics; +import forge.assets.FSkin; import forge.assets.FSkinFont; import forge.toolbox.FContainer; import forge.toolbox.FProgressBar; +import forge.utils.ForgePreferences; +import forge.utils.ForgePreferences.FPref; public class SplashScreen extends FContainer { private TextureRegion background; @@ -16,6 +19,9 @@ public class SplashScreen extends FContainer { public SplashScreen() { progressBar = new FProgressBar(); progressBar.setDescription("Welcome to Forge"); + + final ForgePreferences prefs = new ForgePreferences(); + FSkin.loadLight(prefs.getPref(FPref.UI_SKIN), this); } public FProgressBar getProgressBar() { diff --git a/forge-m-base/src/forge/screens/settings/SettingsScreen.java b/forge-m-base/src/forge/screens/settings/SettingsScreen.java index 629ec79126e..67f87352c6a 100644 --- a/forge-m-base/src/forge/screens/settings/SettingsScreen.java +++ b/forge-m-base/src/forge/screens/settings/SettingsScreen.java @@ -38,7 +38,12 @@ public class SettingsScreen extends FScreen { lstSettings.addItem(new CustomSelectSetting(FPref.UI_SKIN, "Theme", "Sets the theme that determines how display components are skinned.", - FSkin.getAllSkins()), 0); + FSkin.getAllSkins()) { + @Override + public void valueChanged(String newValue) { + FSkin.changeSkin(newValue); + } + }, 0); lstSettings.addItem(new BooleanSetting(FPref.DEV_MODE_ENABLED, "Developer Mode", "Enables menu with functions for testing during development."), 3); } @@ -109,6 +114,11 @@ public class SettingsScreen extends FScreen { } } + public void valueChanged(String newValue) { + FModel.getPreferences().setPref(pref, newValue); + FModel.getPreferences().save(); + } + @Override public void select() { Forge.openScreen(new CustomSelectScreen()); @@ -120,6 +130,19 @@ public class SettingsScreen extends FScreen { private CustomSelectScreen() { super(true, "Select " + label.substring(0, label.length() - 1), false); lstOptions = add(new FList(options)); + lstOptions.setListItemRenderer(new FList.DefaultListItemRenderer() { + @Override + public boolean tap(String value, float x, float y, int count) { + valueChanged(value); + Forge.back(); + return true; + } + + @Override + public void drawValue(Graphics g, String value, FSkinFont font, FSkinColor foreColor, float width, float height) { + super.drawValue(g, value, font, foreColor, width, height); + } + }); } @Override diff --git a/forge-m-base/src/forge/toolbox/FList.java b/forge-m-base/src/forge/toolbox/FList.java index 98fc0cf57ee..4a25be19d84 100644 --- a/forge-m-base/src/forge/toolbox/FList.java +++ b/forge-m-base/src/forge/toolbox/FList.java @@ -40,7 +40,7 @@ public class FList extends FScrollPane { private void initialize() { font = FSkinFont.get(14); - renderer = new DefaultListItemRenderer(); + renderer = new DefaultListItemRenderer(); } public void addGroup(String groupName) { @@ -196,19 +196,19 @@ public class FList extends FScrollPane { public abstract void drawValue(Graphics g, V value, FSkinFont font, FSkinColor foreColor, float width, float height); } - public class DefaultListItemRenderer extends ListItemRenderer { + public static class DefaultListItemRenderer extends ListItemRenderer { @Override public float getItemHeight() { return Utils.AVG_FINGER_HEIGHT; } @Override - public boolean tap(E value, float x, float y, int count) { + public boolean tap(V value, float x, float y, int count) { return false; } @Override - public void drawValue(Graphics g, E value, FSkinFont font, FSkinColor color, float width, float height) { + public void drawValue(Graphics g, V value, FSkinFont font, FSkinColor color, float width, float height) { float x = width * INSETS_FACTOR; g.drawText(value.toString(), font, color, x, 0, width - 2 * x, height, false, HAlignment.LEFT, true); }