From 30ee33cd6634f18a74a6a8b08378206f093899ed Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Sat, 20 May 2017 18:44:26 +0800 Subject: [PATCH] Now component animations and MainPagePanel animation can be disabled --- HMCL/src/main/java/org/jackhuang/hmcl/setting/Settings.java | 2 ++ HMCL/src/main/java/org/jackhuang/hmcl/ui/LogWindow.java | 6 ++++++ HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPagePanel.java | 2 ++ .../org/jackhuang/hmcl/laf/utils/AnimationController.java | 5 ++++- 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Settings.java b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Settings.java index e522d6400..a434cfdd2 100755 --- a/HMCL/src/main/java/org/jackhuang/hmcl/setting/Settings.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/setting/Settings.java @@ -30,6 +30,7 @@ import org.jackhuang.hmcl.util.CollectionUtils; import org.jackhuang.hmcl.api.HMCLApi; import org.jackhuang.hmcl.api.event.config.ProfileChangedEvent; import org.jackhuang.hmcl.api.event.config.ProfileLoadingEvent; +import org.jackhuang.hmcl.laf.utils.AnimationController; import org.jackhuang.hmcl.util.sys.FileUtils; import org.jackhuang.hmcl.util.MessageBox; import org.jackhuang.hmcl.util.UpdateChecker; @@ -56,6 +57,7 @@ public final class Settings { static { SETTINGS = initSettings(); DownloadType.setSuggestedDownloadType(SETTINGS.getDownloadSource().name()); + AnimationController.ENABLE_ANIMATION = SETTINGS.isEnableAnimation(); if (!getProfiles().containsKey(DEFAULT_PROFILE)) getProfiles().put(DEFAULT_PROFILE, new Profile(DEFAULT_PROFILE)); diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/LogWindow.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/LogWindow.java index 593ac9f3e..0f0cb0d00 100644 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/LogWindow.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/LogWindow.java @@ -17,6 +17,7 @@ */ package org.jackhuang.hmcl.ui; +import java.awt.Font; import java.io.PrintStream; import javax.swing.SwingUtilities; import javax.swing.text.Document; @@ -53,6 +54,11 @@ public class LogWindow extends javax.swing.JFrame { SwingUtilities.invokeLater(() -> { setLocationRelativeTo(null); txtLog.setEditable(false); + Font font = Font.decode("Consolas"); + if (font == null) + font = Font.decode("Monospace"); + if (font != null) + txtLog.setFont(font); }); } diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPagePanel.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPagePanel.java index 0750285ba..c3bd2fe86 100755 --- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPagePanel.java +++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/MainPagePanel.java @@ -68,6 +68,8 @@ public class MainPagePanel extends Page { void initGui() { initComponents(); + animationEnabled = Settings.getInstance().isEnableAnimation(); + pnlButtons = new javax.swing.JPanel(); pnlButtons.setLayout(null); diff --git a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/utils/AnimationController.java b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/utils/AnimationController.java index cc1730300..cd6297269 100644 --- a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/utils/AnimationController.java +++ b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/utils/AnimationController.java @@ -60,6 +60,8 @@ import org.jackhuang.hmcl.laf.utils.TMSchema.Part; * @author Igor Kushnirskiy */ public class AnimationController implements ActionListener, PropertyChangeListener { + + public static boolean ENABLE_ANIMATION = true; private static AnimationController INSTANCE = new AnimationController(); private static final String ANIMATION_CONTROLLER_KEY = "BeautyEye.AnimationController"; @@ -205,7 +207,8 @@ public class AnimationController implements ActionListener, PropertyChangeListen public static void paintSkin(JComponent component, Skin skin, Graphics g, int dx, int dy, int dw, int dh, State state) { - triggerAnimation(component, skin.getPart(component), state); + if (ENABLE_ANIMATION) + triggerAnimation(component, skin.getPart(component), state); AnimationController controller = getAnimationController(component); synchronized (controller) { AnimationState animationState = null;