From 0a853ca8a5e58b139f9b453fb56819ebea96bc62 Mon Sep 17 00:00:00 2001 From: huangyuhui Date: Fri, 24 Feb 2017 19:04:19 +0800 Subject: [PATCH] Scroll Bar --- .../org/jackhuang/hmcl/laf/Icon9Factory.java | 24 +-- .../hmcl/laf/scroll/BEScrollBarUI.java | 139 ++---------------- .../org/jackhuang/hmcl/laf/scroll/__UI__.java | 1 + .../hmcl/laf/textcoms/BEEditorPaneUI.java | 47 ------ .../laf/textcoms/BEFormattedTextFieldUI.java | 3 - .../hmcl/laf/textcoms/BEPasswordFieldUI.java | 6 +- .../hmcl/laf/textcoms/BETextAreaUI.java | 39 +---- .../hmcl/laf/textcoms/BETextFieldUI.java | 21 +-- .../hmcl/laf/textcoms/BETextPaneUI.java | 42 ------ .../jackhuang/hmcl/laf/textcoms/__UI__.java | 1 + .../hmcl/laf/utils/imgs/button_arrow.png | Bin 318 -> 0 bytes .../laf/utils/imgs/button_arrow_disable.png | Bin 334 -> 0 bytes .../laf/utils/imgs/button_arrow_pressed.9.png | Bin 322 -> 0 bytes .../laf/utils/imgs/button_arrow_pressed.png | Bin 322 -> 0 bytes .../hmcl/laf/utils/imgs/np/arrow.9.png | Bin 0 -> 248 bytes .../laf/utils/imgs/np/arrow_pressed.9.png | Bin 0 -> 246 bytes .../hmcl/laf/utils/imgs/np/arrow_rover.9.png | Bin 0 -> 253 bytes .../laf/utils/imgs/np/arrow_toBottom.9.png | Bin 386 -> 0 bytes .../utils/imgs/np/arrow_toBottom_rover.9.png | Bin 431 -> 0 bytes .../hmcl/laf/utils/imgs/np/arrow_toLeft.9.png | Bin 311 -> 0 bytes .../utils/imgs/np/arrow_toLeft_rover.9.png | Bin 3136 -> 0 bytes .../laf/utils/imgs/np/arrow_toRight.9.png | Bin 302 -> 0 bytes .../utils/imgs/np/arrow_toRight_rover.9.png | Bin 379 -> 0 bytes .../hmcl/laf/utils/imgs/np/arrow_toTop.9.png | Bin 323 -> 0 bytes .../laf/utils/imgs/np/arrow_toTop_rover.9.png | Bin 3210 -> 0 bytes .../utils/imgs/np/bg_login_text_disable.9.png | Bin 211 -> 0 bytes .../utils/imgs/np/bg_login_text_normal.9.png | Bin 222 -> 0 bytes .../utils/imgs/np/bg_login_text_pressed.9.png | Bin 197 -> 0 bytes .../laf/utils/imgs/np/null_white_bg.9.png | Bin 2803 -> 0 bytes .../hmcl/laf/utils/imgs/np/scroll_bar_h.9.png | Bin 466 -> 0 bytes .../utils/imgs/np/scroll_bar_pressed_h.9.png | Bin 476 -> 0 bytes .../utils/imgs/np/scroll_bar_pressed_v.9.png | Bin 495 -> 0 bytes .../utils/imgs/np/scroll_bar_rover_h.9.png | Bin 416 -> 0 bytes .../utils/imgs/np/scroll_bar_rover_v.9.png | Bin 439 -> 0 bytes .../hmcl/laf/utils/imgs/np/scroll_bar_v.9.png | Bin 505 -> 0 bytes 35 files changed, 30 insertions(+), 293 deletions(-) delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/button_arrow.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/button_arrow_disable.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/button_arrow_pressed.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/button_arrow_pressed.png create mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow.9.png create mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_pressed.9.png create mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_rover.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toBottom.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toBottom_rover.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toLeft.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toLeft_rover.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toRight.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toRight_rover.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toTop.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toTop_rover.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/bg_login_text_disable.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/bg_login_text_normal.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/bg_login_text_pressed.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/null_white_bg.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/scroll_bar_h.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/scroll_bar_pressed_h.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/scroll_bar_pressed_v.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/scroll_bar_rover_h.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/scroll_bar_rover_v.9.png delete mode 100644 HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/scroll_bar_v.9.png diff --git a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/Icon9Factory.java b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/Icon9Factory.java index 25b07bbd9..1aed80b65 100644 --- a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/Icon9Factory.java +++ b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/Icon9Factory.java @@ -126,21 +126,10 @@ public class Icon9Factory extends RawCache { put("toggle_button", "selected", "toggle_button_selected"); put("toggle_button", "rollover", "toggle_button_rover"); - - put("scroll_bar", "vertical", "scroll_bar_v"); - put("scroll_bar", "vertical_rollover", "scroll_bar_rover_v"); - put("scroll_bar", "vertical_pressed", "scroll_bar_pressed_v"); - put("scroll_bar", "horizontal", "scroll_bar_h"); - put("scroll_bar", "horizontal_rollover", "scroll_bar_rover_h"); - put("scroll_bar", "horizontal_pressed", "scroll_bar_rover_h"); - put("scroll_bar", "arrow_bottom", "arrow_toBottom"); - put("scroll_bar", "arrow_top", "arrow_toTop"); - put("scroll_bar", "arrow_left", "arrow_toLeft"); - put("scroll_bar", "arrow_right", "arrow_toRight"); - put("scroll_bar", "arrow_bottom_rollover", "arrow_toBottom_rover"); - put("scroll_bar", "arrow_top_rollover", "arrow_toTop_rover"); - put("scroll_bar", "arrow_left_rollover", "arrow_toLeft_rover"); - put("scroll_bar", "arrow_right_rollover", "arrow_toRight_rover"); + + put("scroll_bar", "arrow", "arrow"); + put("scroll_bar", "arrow_rollover", "arrow_rover"); + put("scroll_bar", "arrow_pressed", "arrow_pressed"); put("scroll_bar", "scroll_pane_border", "scroll_pane_bg1"); put("popup", "popup", "shadow_bg_popup"); @@ -150,11 +139,6 @@ public class Icon9Factory extends RawCache { put("table", "header_cell", "table_header_bg1"); put("table", "header_cell_separator", "table_header_separator1"); - put("text", "normal", "bg_login_text_normal"); - put("text", "pressed", "bg_login_text_pressed"); - put("text", "disabled", "bg_login_text_disable"); - put("text", "white", "null_white_bg"); - put("toolbar", "north", "toolbar_bg1"); put("toolbar", "south", "toolbar_bg1_SOUTH"); put("toolbar", "west", "toolbar_bg1_WEST"); diff --git a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/scroll/BEScrollBarUI.java b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/scroll/BEScrollBarUI.java index bb095d58c..7bd4aea69 100644 --- a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/scroll/BEScrollBarUI.java +++ b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/scroll/BEScrollBarUI.java @@ -15,7 +15,6 @@ import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; -import java.awt.Paint; import java.awt.Rectangle; import javax.swing.JButton; @@ -26,9 +25,8 @@ import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicArrowButton; import javax.swing.plaf.basic.BasicScrollBarUI; -import org.jackhuang.hmcl.laf.BEUtils; import org.jackhuang.hmcl.laf.utils.Icon9Factory; -import org.jb2011.ninepatch4j.NinePatch; +import org.jackhuang.hmcl.util.ui.GraphicsUtils; /** * 本类是滚动条的UI实现. @@ -93,28 +91,30 @@ public class BEScrollBarUI extends BasicScrollBarUI { @Override public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; - String id = "arrow_"; + String id = "arrow"; switch (direction) { case NORTH: - id += "top"; break; case SOUTH: - id += "bottom"; + g2.translate(getWidth(), getHeight()); + g2.rotate(Math.PI); break; case WEST: - id += "left"; + g2.translate(0, getHeight()); + g2.rotate(-Math.PI / 2); break; case EAST: - id += "right"; + g2.translate(getWidth(), 0); + g2.rotate(Math.PI / 2); break; } - ICON_9.get(id, getModel().isRollover() ? "rollover" : "") + ICON_9.getWithScrollState(id, getModel().isPressed(), getModel().isRollover()) .draw(g2, 0, 0, getWidth(), getHeight()); } @Override public Dimension getPreferredSize() { - int size = 16; + int size = 12; if (scrollbar != null) { switch (scrollbar.getOrientation()) { case JScrollBar.VERTICAL: @@ -136,75 +136,9 @@ public class BEScrollBarUI extends BasicScrollBarUI { protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) { if (c == null || g == null) return; - Graphics2D g2 = (Graphics2D) g; - - Paint oldp = g2.getPaint(); - int w = trackBounds.width; - int h = trackBounds.height; - int x = trackBounds.x; - int y = trackBounds.y; - - if (this.scrollbar.getOrientation() == JScrollBar.VERTICAL) { -// //1/2处渐变 -// GradientPaint gp = new GradientPaint(x, y -// , GraphicHandler.getColor(trackColor,-15,-15,-15), w/2, y,trackColor); -// g2.setPaint(gp); -// g2.fillRect(x, y, w/2, h); -// -// g2.setPaint(oldp); -// g2.setColor(trackColor); -// g2.fillRect(w/2, y, w/2, h); - - //** 简洁版轨迹实现 - int hhhWidth = 5; - int px = (w - hhhWidth) / 2; - int delta = 50; - //第1条 - g2.setColor(new Color(150 + delta, 151 + delta, 146 + delta)); - g2.drawLine(px + 0, y + 10, px + 0, y + h - 10); - //第2条 - g2.setColor(new Color(160 + delta, 160 + delta, 162 + delta)); - g2.drawLine(px + 1, y + 10, px + 1, y + h - 10); - //第3条 - g2.setColor(new Color(163 + delta, 162 + delta, 167 + delta)); - g2.drawLine(px + 2, y + 10, px + 2, y + h - 10); - //第4条 - g2.setColor(new Color(162 + delta, 162 + delta, 162 + delta)); - g2.drawLine(px + 3, y + 10, px + 3, y + h - 10); - //第5条 - g2.setColor(new Color(150 + delta, 150 + delta, 150 + delta)); - g2.drawLine(px + 4, y + 10, px + 4, y + h - 10); - } else { - //1/2处渐变 -// GradientPaint gp = new GradientPaint(x, y -// , GraphicHandler.getColor(trackColor,-15,-15,-15), x, h/2,trackColor); -// g2.setPaint(gp); -// g2.fillRect(x, y, w, h/2); -// -// g2.setPaint(oldp); -// g2.setColor(trackColor); -// g2.fillRect(x, h/2, w, h); - - //** 简洁版轨迹实现 - int hhhWidth = 5; - int py = (h - hhhWidth) / 2; - int delta = 50; - //第1条 - g2.setColor(new Color(150 + delta, 151 + delta, 146 + delta)); - g2.drawLine(x + 10, py + 0, x + w - 10, py + 0); - //第2条 - g2.setColor(new Color(160 + delta, 160 + delta, 162 + delta)); - g2.drawLine(x + 10, py + 1, x + w - 10, py + 1); - //第3条 - g2.setColor(new Color(163 + delta, 162 + delta, 167 + delta)); - g2.drawLine(x + 10, py + 2, x + w - 10, py + 2); - //第4条 - g2.setColor(new Color(162 + delta, 162 + delta, 162 + delta)); - g2.drawLine(x + 10, py + 3, x + w - 10, py + 3); - //第5条 - g2.setColor(new Color(150 + delta, 150 + delta, 150 + delta)); - g2.drawLine(x + 10, py + 4, x + w - 10, py + 4); - } + Color color = GraphicsUtils.getWebColor("#F2F2F2"); + g.setColor(color); + g.fillRect(trackBounds.x, trackBounds.y, trackBounds.width, trackBounds.height); } /** @@ -214,51 +148,10 @@ public class BEScrollBarUI extends BasicScrollBarUI { protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) { if (thumbBounds.isEmpty() || !scrollbar.isEnabled()) return; - Graphics2D g2 = (Graphics2D) g; - int w = thumbBounds.width - 4; - int h = thumbBounds.height - 4; - g2.translate(thumbBounds.x + 2, thumbBounds.y + 2); - -// g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); - BEUtils.setAntiAliasing(g2, true); - - //防止thunmb的最小高度比图片的最小高度还要小,这样在绘制时就会出问题 - //起实,目前没还没有办法很好解决,因为即使在这里作处理,但是thumb本身 - //还是那么小,所以绘图还是会有问题,但起码在不拖动时看起来是正常的,以后再解决吧! - if (this.scrollbar.getOrientation() == JScrollBar.VERTICAL) { - NinePatch np = ICON_9.getWithScrollState("vertical", isDragging, isThumbRollover()); - if (h < np.getHeight()) - paintThumbIfSoSmall(g2, 0, 0, w, h); - else - np.draw(g2, 0, 0, w, h); - } else { - NinePatch np = ICON_9.getWithScrollState("horizontal", isDragging, isThumbRollover()); - - if (w < np.getWidth()) - paintThumbIfSoSmall(g2, 0, 0, w, h); - else - np.draw(g2, 0, 0, w, h); - } - //如果滚动行宽度小于NP图的最小宽度时则交给此方法绘制(否则NP图的填充将出现虚绘,而影响滚动条的体验哦) - - g2.translate(-thumbBounds.x, -thumbBounds.y); -// g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); - BEUtils.setAntiAliasing(g2, false); + Color color = GraphicsUtils.getWebColor(isDragging ? "#616161" : isThumbRollover() ? "#919191" : "#C2C2C2"); + g.setColor(color); + g.fillRect(thumbBounds.x, thumbBounds.y, thumbBounds.width, thumbBounds.height); } //----------------------------------------------------------------------------------- END - /** - * 如果滚动条非常小(小到小于NP图的最小大小)时调用此方法实现滚动条的精确绘制. - * - * @see javax.swing.plaf.basic.BasicScrollBarUI#paintThumb(java.awt.Graphics, javax.swing.JComponent, java.awt.Rectangle) - */ - protected void paintThumbIfSoSmall(Graphics2D g2, int x, int y, int w, int h) { - final int NORMAL_ARC = 6;//定义圆角直径 - //如果w或h太小时,则就不绘制圆角了(直角即可),要不然就没法绘全圆角而很难看 - int arc = ((w <= NORMAL_ARC || h <= NORMAL_ARC) ? 0 : NORMAL_ARC); - g2.setColor(thumbDarkShadowColor); - g2.drawRoundRect(x, y, w - 1, h - 1, arc, arc);//画滚动条的外层 - g2.setColor(thumbColor); - g2.fillRoundRect(x + 1, y + 1, w - 2, h - 2, arc, arc);//填充滚动条的内层 - } } diff --git a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/scroll/__UI__.java b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/scroll/__UI__.java index 161084890..34f57e3b0 100644 --- a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/scroll/__UI__.java +++ b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/scroll/__UI__.java @@ -36,6 +36,7 @@ public class __UI__ extends UI { putColor("ScrollBar.background", 250, 250, 250); putColor("ScrollBar.trackForeground", 250, 250, 250); putColor("scrollbar", 250, 250, 250); + put("ScrollBar.width", 12); put("ScrollBarUI", BEScrollBarUI.class); // /* ~~注:这个属性是jb2011自已加的,目的是控制滚动面板及其Viewport的透明性 */ diff --git a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BEEditorPaneUI.java b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BEEditorPaneUI.java index 5a6281d10..e606e5257 100644 --- a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BEEditorPaneUI.java +++ b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BEEditorPaneUI.java @@ -11,17 +11,12 @@ */ package org.jackhuang.hmcl.laf.textcoms; -import java.awt.Color; -import java.awt.Graphics; - import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.UIResource; import javax.swing.plaf.basic.BasicEditorPaneUI; -import javax.swing.text.JTextComponent; import org.jackhuang.hmcl.laf.textcoms.__UI__.BgSwitchable; -import org.jb2011.ninepatch4j.NinePatch; /** * 文本组件JEditorPane的UI实现类. @@ -34,11 +29,8 @@ public class BEEditorPaneUI extends BasicEditorPaneUI implements BgSwitchable, //默认是纯白色背景,因为JEditorPane肯定是要放在JScrollPane中的,而ScrollPane也是有边框的 //如果JEditorPane再有边框就很难看了,所以JEditorPane在没有获得焦点时就已无边框效果出现会好看很多 - private NinePatch bg = __UI__.ICON_9.get("white"); - public static ComponentUI createUI(JComponent c) { BETextFieldUI.addOtherListener(c); -// c.addMouseListener(new NLLookAndFeel.EditMenu()); return new BEEditorPaneUI(); } @@ -60,55 +52,16 @@ public class BEEditorPaneUI extends BasicEditorPaneUI implements BgSwitchable, || !(getComponent().getBackground() instanceof UIResource)); } - /** - * Paints a background for the view. This will only be called if isOpaque() - * on the associated component is true. The default is to paint the - * background color of the component. - * - * @param g the graphics context - */ - @Override - protected void paintBackground(Graphics g) { - //先调用父类方法把背景刷新下(比如本UI里使用的大圆角NP图如不先刷新背景则会因上下拉动滚动条 - //而致4个圆角位置得不到刷新,从而影响视觉效果(边角有前面的遗留),置于透明边角不被透明像素填 - //充的问题,它有可能是Android的NinePatch技术为了性能做作出的优化——一切全透明像素即意味着不需绘制) - super.paintBackground(g); // TODO 出于节约计算资源考生虑,本行代码换成父类中默认填充背景的代码即可 - - //* 如果用户作了自定义颜色设置则使用父类方法来实现绘制,否则BE LNF中没法支持这些设置哦 - if (!isUseParentPaint()) { - //用新的NP图实现真正的背景填充 - JTextComponent editor = this.getComponent(); - BETextFieldUI.paintBg(g, 0, 0, editor.getWidth(), editor.getHeight(), - editor.isEnabled(), border); - } - } - @Override public void switchBgToNormal() { - border = __UI__.BORDER_NORMAL; } @Override public void switchBgToFocused() { - border = __UI__.border_focused(); } @Override public void switchBgToOver() { - border = __UI__.BORDER_OVER; } - - Color border = __UI__.BORDER_NORMAL; -// /** -// * Creates the object to use for a caret. By default an -// * instance of WindowsCaret is created. This method -// * can be redefined to provide something else that implements -// * the InputPosition interface or a subclass of DefaultCaret. -// * -// * @return the caret object -// */ -// protected Caret createCaret() { -// return new WindowsTextUI.WindowsCaret(); -// } } diff --git a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BEFormattedTextFieldUI.java b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BEFormattedTextFieldUI.java index 7b1649c27..3bdc98174 100644 --- a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BEFormattedTextFieldUI.java +++ b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BEFormattedTextFieldUI.java @@ -21,7 +21,6 @@ import javax.swing.plaf.basic.BasicFormattedTextFieldUI; import javax.swing.text.JTextComponent; import org.jackhuang.hmcl.laf.textcoms.__UI__.BgSwitchable; -import org.jb2011.ninepatch4j.NinePatch; /** * 文本组件JFormattedTextField的UI实现类. @@ -32,8 +31,6 @@ import org.jb2011.ninepatch4j.NinePatch; public class BEFormattedTextFieldUI extends BasicFormattedTextFieldUI implements BgSwitchable, org.jackhuang.hmcl.laf.BeautyEyeLNFHelper.__UseParentPaintSurported { - private NinePatch bg = __UI__.ICON_9.get("normal"); - public static ComponentUI createUI(JComponent c) { c.addFocusListener(FocusListenerImpl.getInstance()); return new BEFormattedTextFieldUI(); diff --git a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BEPasswordFieldUI.java b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BEPasswordFieldUI.java index 4f1627b66..8c73cb5d7 100644 --- a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BEPasswordFieldUI.java +++ b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BEPasswordFieldUI.java @@ -21,7 +21,6 @@ import javax.swing.plaf.basic.BasicPasswordFieldUI; import javax.swing.text.JTextComponent; import org.jackhuang.hmcl.laf.textcoms.__UI__.BgSwitchable; -import org.jb2011.ninepatch4j.NinePatch; /** * 文本组件JPasswordField的UI实现类. @@ -31,11 +30,8 @@ import org.jb2011.ninepatch4j.NinePatch; public class BEPasswordFieldUI extends BasicPasswordFieldUI implements BgSwitchable, org.jackhuang.hmcl.laf.BeautyEyeLNFHelper.__UseParentPaintSurported { - private NinePatch bg = __UI__.ICON_9.get("normal"); - public static ComponentUI createUI(JComponent c) { - c.addFocusListener(FocusListenerImpl.getInstance()); -// c.addMouseListener(new NLLookAndFeel.EditMenu()); + BETextFieldUI.addOtherListener(c); return new BEPasswordFieldUI(); } diff --git a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BETextAreaUI.java b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BETextAreaUI.java index ecd85737c..c509e2780 100644 --- a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BETextAreaUI.java +++ b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BETextAreaUI.java @@ -11,17 +11,12 @@ */ package org.jackhuang.hmcl.laf.textcoms; -import java.awt.Color; -import java.awt.Graphics; - import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.UIResource; import javax.swing.plaf.basic.BasicTextAreaUI; -import javax.swing.text.JTextComponent; import org.jackhuang.hmcl.laf.textcoms.__UI__.BgSwitchable; -import org.jb2011.ninepatch4j.NinePatch; /** * 文本组件JTextArea的UI实现类. @@ -29,16 +24,12 @@ import org.jb2011.ninepatch4j.NinePatch; * @author Jack Jiang(jb2011@163.com) */ public class BETextAreaUI extends BasicTextAreaUI implements BgSwitchable, - org.jackhuang.hmcl.laf.BeautyEyeLNFHelper.__UseParentPaintSurported//WindowsTextAreaUI -{ + org.jackhuang.hmcl.laf.BeautyEyeLNFHelper.__UseParentPaintSurported { //默认是纯白色背景,因为JTextArea肯定是要放在JScrollPane中的,而ScrollPane也是有边框的 //如果JTextArea再有边框就很难看了,所以JTextArea在没有获得焦点时就已无边框效果出现会好看很多 - private NinePatch bg = __UI__.ICON_9.get("white"); - public static ComponentUI createUI(JComponent c) { BETextFieldUI.addOtherListener(c); -// c.addMouseListener(new NLLookAndFeel.EditMenu()); return new BETextAreaUI(); } @@ -60,43 +51,15 @@ public class BETextAreaUI extends BasicTextAreaUI implements BgSwitchable, || !(getComponent().getBackground() instanceof UIResource)); } - /** - * Paints a background for the view. This will only be called if isOpaque() - * on the associated component is true. The default is to paint the - * background color of the component. - * - * @param g the graphics context - */ - @Override - protected void paintBackground(Graphics g) { - //先调用父类方法把背景刷新下(比如本UI里使用的大圆角NP图如不先刷新背景则会因上下拉动滚动条 - //而致4个圆角位置得不到刷新,从而影响视觉效果(边角有前面的遗留),置于透明边角不被透明像素填 - //充的问题,它有可能是Android的NinePatch技术为了性能做作出的优化——一切全透明像素即意味着不需绘制) - super.paintBackground(g);// TODO 出于节约计算资源考生虑,本行代码换成父类中默认填充背景的代码即可 - - //* 如果用户作了自定义颜色设置则使用父类方法来实现绘制,否则BE LNF中没法支持这些设置哦 - if (!isUseParentPaint()) { - //用新的NP图实现真正的背景填充 - JTextComponent editor = this.getComponent(); - BETextFieldUI.paintBg(g, 0, 0, editor.getWidth(), editor.getHeight(), - editor.isEnabled(), border); - } - } - @Override public void switchBgToNormal() { - border = __UI__.BORDER_NORMAL; } @Override public void switchBgToFocused() { - border = __UI__.border_focused(); } @Override public void switchBgToOver() { - border = __UI__.BORDER_OVER; } - - Color border = __UI__.BORDER_NORMAL; } diff --git a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BETextFieldUI.java b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BETextFieldUI.java index 0253dcd2f..d8ca1a20b 100644 --- a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BETextFieldUI.java +++ b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BETextFieldUI.java @@ -13,7 +13,6 @@ package org.jackhuang.hmcl.laf.textcoms; import java.awt.Color; import java.awt.Graphics; -import java.awt.Graphics2D; import javax.swing.JComponent; import javax.swing.plaf.UIResource; @@ -21,7 +20,6 @@ import javax.swing.plaf.basic.BasicTextFieldUI; import javax.swing.text.JTextComponent; import org.jackhuang.hmcl.laf.textcoms.__UI__.BgSwitchable; -import org.jb2011.ninepatch4j.NinePatch; /** * 文本组件JTextField的UI实现类. @@ -31,8 +29,6 @@ import org.jb2011.ninepatch4j.NinePatch; public class BETextFieldUI extends BasicTextFieldUI implements BgSwitchable, org.jackhuang.hmcl.laf.BeautyEyeLNFHelper.__UseParentPaintSurported { - private NinePatch bg = __UI__.ICON_9.get("normal"); - public static BETextFieldUI createUI(JComponent c) { addOtherListener(c); return new BETextFieldUI(); @@ -165,7 +161,7 @@ public class BETextFieldUI extends BasicTextFieldUI implements BgSwitchable, public void switchBgToOver() { border = __UI__.BORDER_OVER; } - + Color border = __UI__.BORDER_NORMAL; /** @@ -181,15 +177,10 @@ public class BETextFieldUI extends BasicTextFieldUI implements BgSwitchable, */ public static void paintBg(Graphics g, int x, int y, int w, int h, boolean enabled, Color border) { - if (enabled) { - g.setColor(border); - g.fillRect(x, y, w, h); - g.setColor(Color.white); - g.fillRect(x + 2, y + 2, w - 4, h - 4); - } - else - __UI__.ICON_9.get("disabled") - .draw((Graphics2D) g, x, y, w, h); + g.setColor(enabled ? border : __UI__.BORDER_DISABLED); + g.fillRect(x, y, w, h); + g.setColor(Color.white); + g.fillRect(x + 2, y + 2, w - 4, h - 4); } /** @@ -199,7 +190,7 @@ public class BETextFieldUI extends BasicTextFieldUI implements BgSwitchable, */ public static void addOtherListener(JComponent c) { c.addFocusListener(FocusListenerImpl.getInstance()); - c.addMouseListener(FocusListenerImpl.getInstance()); + c.addMouseListener(FocusListenerImpl.getInstance()); } } diff --git a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BETextPaneUI.java b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BETextPaneUI.java index 98fd7b293..7ab2dc673 100644 --- a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BETextPaneUI.java +++ b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/BETextPaneUI.java @@ -21,7 +21,6 @@ import javax.swing.plaf.basic.BasicTextPaneUI; import javax.swing.text.JTextComponent; import org.jackhuang.hmcl.laf.textcoms.__UI__.BgSwitchable; -import org.jb2011.ninepatch4j.NinePatch; /** * 文本组件JTextPane的UI实现类. @@ -34,8 +33,6 @@ public class BETextPaneUI extends BasicTextPaneUI implements BgSwitchable, //默认是纯白色背景,因为JTextPane肯定是要放在JScrollPane中的,而ScrollPane也是有边框的 //如果JTextPane再有边框就很难看了,所以JTextPane在没有获得焦点时就已无边框效果出现会好看很多 - private NinePatch bg = __UI__.ICON_9.get("white"); - public static ComponentUI createUI(JComponent c) { BETextFieldUI.addOtherListener(c); // c.addMouseListener(new NLLookAndFeel.EditMenu()); @@ -59,55 +56,16 @@ public class BETextPaneUI extends BasicTextPaneUI implements BgSwitchable, || !(getComponent().getBackground() instanceof UIResource)); } - /** - * Paints a background for the view. This will only be called if isOpaque() - * on the associated component is true. The default is to paint the - * background color of the component. - * - * @param g the graphics context - */ - @Override - protected void paintBackground(Graphics g) { - //先调用父类方法把背景刷新下(比如本UI里使用的大圆角NP图如不先刷新背景则会因上下拉动滚动条 - //而致4个圆角位置得不到刷新,从而影响视觉效果(边角有前面的遗留),置于透明边角不被透明像素填 - //充的问题,它有可能是Android的NinePatch技术为了性能做作出的优化——一切全透明像素即意味着不需绘制) - super.paintBackground(g);// TODO 出于节约计算资源考生虑,本行代码换成父类中默认填充背景的代码即可 - - //* 如果用户作了自定义颜色设置则使用父类方法来实现绘制,否则BE LNF中没法支持这些设置哦 - if (!isUseParentPaint()) { - //用新的NP图实现真正的背景填充 - JTextComponent editor = this.getComponent(); - BETextFieldUI.paintBg(g, 0, 0, editor.getWidth(), editor.getHeight(), - editor.isEnabled(), border); - } - } - @Override public void switchBgToNormal() { - border = __UI__.BORDER_NORMAL; } @Override public void switchBgToFocused() { - border = __UI__.border_focused(); } @Override public void switchBgToOver() { - border = __UI__.BORDER_OVER; } - - Color border = __UI__.BORDER_NORMAL; -// /** -// * Creates the object to use for a caret. By default an -// * instance of WindowsCaret is created. This method -// * can be redefined to provide something else that implements -// * the InputPosition interface or a subclass of DefaultCaret. -// * -// * @return the caret object -// */ -// protected Caret createCaret() { -// return new WindowsTextUI.WindowsCaret(); -// } } diff --git a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/__UI__.java b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/__UI__.java index 7b1e07b04..a325c474d 100644 --- a/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/__UI__.java +++ b/HMCLaF/src/main/java/org/jackhuang/hmcl/laf/textcoms/__UI__.java @@ -24,6 +24,7 @@ import org.jackhuang.hmcl.laf.widget.border.BERoundBorder; public class __UI__ extends UI { static final Color BORDER_NORMAL = GraphicsUtils.getWebColor("#999999"); + static final Color BORDER_DISABLED = GraphicsUtils.getWebColor("#E3E3E3"); static final Color BORDER_OVER = GraphicsUtils.getWebColor("#666666"); static Color border_focused() { diff --git a/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/button_arrow.png b/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/button_arrow.png deleted file mode 100644 index 6f134e9db1ae87140cbd5527328def205450e176..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ zaD4z_MyE9id?e zwI?IR|y**TabHu$rsmG2aikKER{XIDJ3+NN6|y7CH|<2 z<$2?^TjwnEyi=+4QSh4X+}7-_|NEsI(!HzS7wJAKo2l@y85}S Ib4q9e032F&A^-pY diff --git a/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/button_arrow_disable.png b/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/button_arrow_disable.png deleted file mode 100644 index 2a1ffc6ff5b2f211368e17a905ca1ba3eeca1701..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 334 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ zaD4z_MyE9owOcPW%OJjvy zC!XJ3@jgP+^?GT>+LyoQS@i9_$)v>a*=GK=+G|lghDH0Im#zHqe>da#X?1^p?SB-Y aD<|_&ImE$i>rbGE7(8A5T-G@yGywq3pnzTg diff --git a/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/button_arrow_pressed.9.png b/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/button_arrow_pressed.9.png deleted file mode 100644 index 6751b41656eb0e9ca77bd826471d65a75ded2b27..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fEX7WqAsj$Z!;#Vf4nJ zaD4z_MyE9?rXO=zczI*N|={EC5Yil=~)AwDXA|Xzq@BUEohSt zx9{Z*>$F2dD=&ZAbII;$WuKwikzafwPybbZ_+QGL_h(kpnZRy)hRP38rS4nJ zaD4z_MyE9?rXO=zczI*N|={EC5Yil=~)AwDXA|Xzq@BUEohSt zx9{Z*>$F2dD=&ZAbII;$WuKwikzafwPybbZ_+QGL_h(kpnZRy)hRP38rS!@P z=6kw0hGW9}LxAVf zwUp-6D>Xuqa!s*J8pjLYw>)8AyvzDdtycR7jU+@ l_Y0@CFgbW!tFE3U6*jNi*eiPe6BnS>44$rjF6*2UngHP!@P z=6bp~hG{E(s4)T;6@Vl`nC3RV^SjGB;b=9qd@_%22 j#yK-8sCeJqx2#<@jZd>w$ufH<&|(HpS3j3^P6!@P zmUy~2hGsfC7(;`rYa#nWA%(Ha}x13qE@6i}ynQ7KfS?rLLI^9XHLIsi62R zML4_cCrhLp*WBxi7*;%gTe~DWM4fUkX=R literal 0 HcmV?d00001 diff --git a/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toBottom.9.png b/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toBottom.9.png deleted file mode 100644 index ef86e03ef57ae15f95e661b59cbf9bdf6c13550d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 386 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4foCO|{#S9GG!XV7ZFl&wkP>?0v z(btiIVPjv-@4(4GzCyA`kS_y6l_~>6Lo)-z&;LOBB?CjL0RzLU1O^7H84L{K`IF+0 zx&hVx@N{tuskoJt;K2HSqQORn)p89CO(*{R_YdV^VqkPJZf0cS$kMyY`;TA1!NgcX zp&=v9z=7f7nS=(0MKce=RHPTZe(~xT|Dhcwk0-M;HZUB@{IKX~_y1-Cv$G0@Gi>xg zrYt`=->&x8{)&@A2Jc?IYm;V3I()=2t3Z-Rz@eh}p8JAhsoG%;h57OF5{G}t7fNt} zEaOOf*)MPZFMe+tFBe;<;HgVM3qvA5GG<)Z_4W0^AIyx-iEPX)0vB5^wDZgVYc|-} zDgbnxjx12@EDsxp!Yq*KCfY9;nL5%y3YkT(R(oL%Q)W@2vTOs zEV^)#FBxXu_hWcG9+q`Hc&WZa9lzVTmz0J#lzL-AqFYM+I};r|-WUw9YA_Z^;y;lj zc>PX;H$sDV6G@Nof&o?oEKZsPFC_IJ#e713!Uq#ckMM#4Rt?6Z;I0VRZo?6!?$AUB zk2jGg7pyw@GEaCcd3SfnIlnLwJo5B{0hSiryCgJV>wkmeIKD>k)VB9Rg$js0#2^+P zJva^SOYq>saS9spY7LV@YC!) ZegWt^t%|zcZ5{vs002ovPDHLkV1kdjz}Nr) diff --git a/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toLeft.9.png b/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toLeft.9.png deleted file mode 100644 index e5b48bc8478d2285607be0dd3a1190ea00c6495f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 311 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 ae+~fK1kGw8&)bOr0000gTe~DWM4fo}Fpf diff --git a/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toRight_rover.9.png b/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toRight_rover.9.png deleted file mode 100644 index e177ceafd3ac6d286f2cccb8ce39fd17b0ec01bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 379 zcmV->0fhdEP)ou Zz5syJt%^DQ{#O71002ovPDHLkV1mfItb+gm diff --git a/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toTop.9.png b/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toTop.9.png deleted file mode 100644 index d60f59dae09f474ada8aaa8068b17ccfea82d6e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 323 zcmeAS@N?(olHy`uVBq!ia0vp^Vj#@H1|*Mc$*~4fjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=d3- zBeIx*fm;xS8S7KxCjtf6c)B=-cz9n8>E=4Dz!USoF5+7Mid2!XYw^ML3U6Ce*F>*8 z85i>KfJ*stw=GsW>~{~n(%diF#U|5zZo`rNEBf7kUYqqMa^A*QKNMM*LQ-@!k9b@! zOi5UGHTTn_oD#`4)(O8)*er8-zAt^wtTsi%to)hFBVX+9d-&>CUenGe2MuR$zb9N! z^3Jtq&Xu#r1lG^&3S1ZWjCo_c!@iBJ|3vMxUH2tdr!CNBdTSSMDm?Rle;aEX(=wpD O89ZJ6T-G@yGywpx19_eR diff --git a/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toTop_rover.9.png b/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/arrow_toTop_rover.9.png deleted file mode 100644 index 3f96effa405c9e03dd45e7d6b1d534d2e0963559..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3210 zcmV;540ZE~P)KLZ*U+5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1;Xm069{HJUZAPk55R%$-RIA z6-eL&AQ0xu!e<4=008gy@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5 z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7} zl4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf zVxhe-O!X z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4 ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#`N z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS= zB9o|3v?Y2H`NVi)In3rTB8+ej^> zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&GF4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^ zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^# z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ibhIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyEn!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>>;~;Q z_F?uV_HFjh9n2gO9o9Q^JA86v({H5aB!kjoO6 zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a zam?eLr<8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^HO&t^Rgqwv=MZThqqEWH8 zxJo>d=ABlR_Bh=;eM9Tw|Ih34~oTE|= zX_mAr*D$vzw@+p(E0Yc6dFE}(8oqt`+R{gE3x4zjX+Sb3_cYE^= zgB=w+-tUy`ytONMS8KgRef4hA?t0j zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3? zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j6w@a-(u02P7 zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)} z^ZO;zpECde03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`>RI+y?e7jKeZ#YO-C z0k=s+K~#9!%#}fE!ax*;qwB7W^a9?%h2BEFK({?h7}1R$KpiPUOFcp$nGB5YWyFQ| z$jm-@T^NH^V-rfD1K%Rayl=we@sH!&F3PF8%J(0S{u5%u{g|#SC=#f*6co9}Qt24MB^+ zL-Kuy!3cEt0=k0fun#Dfr_=p55jArfKhPwiCZgYleKZ6VOT@5$SFDtB^8%+LO{J83PwW(8Ee5%` zaXmRnl9(h(%+0J3HIz~=Xfb#wmQuE^#fdTL=XRTZZntS-OnNPrQnqS~jWP88@$n5~ z4E;)MtfjZjhTb+CnoOrOnNEvmV=X-pQ)!Q_wHaTpiLckh#^d4-*?3In_tx61T8}TL zV#Rs3;+#CjZgRk5j8>e}iu0`6R9wul$5`qymX#%s$5`eumR6qQv$%4!{Tp!|%EZpS w5UN922$jcXMap9H?}Gl%uBIB7X65xY05~npYPCY!`~Uy|07*qoM6N<$g2LP((EtDd diff --git a/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/bg_login_text_disable.9.png b/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/bg_login_text_disable.9.png deleted file mode 100644 index e9373d2000815f31a3686f4bb6735ee294a9bd6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1|*LJg4nJ zaD4z_MyE9YVZ4S*PT^?vmxt-OX@jI`(qNB zw-w>0BG>RZX%I|~;*TbaDJ^!C@>(7C?)XX6#7ZrQ>CawUVOtDnm{r-UW|BD6?{ diff --git a/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/bg_login_text_normal.9.png b/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/bg_login_text_normal.9.png deleted file mode 100644 index b082b623a8f32b6c20e40c241b15eb416b4be903..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{VEX7WqAsj$Z!;#Vfk}U9uEM{Qf z`T)X=PHRkN00resTq8DRkfCGnf{F3yq0dZ!rCCjGPE#r@oXl*%R#xO}j;=+}g-l4Ilde4N^ z$XZ{_IdP`gPrFk>GRz_;`)6YIYp2k?>AyBw6@9g1P_eDL#mLK~l$)Fqyc=i%gQu&X J%Q~loCIHBZMl1jT diff --git a/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/bg_login_text_pressed.9.png b/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/bg_login_text_pressed.9.png deleted file mode 100644 index e7f837a0b3ca9d4b4834e13a8cbbac754a69a817..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 197 zcmeAS@N?(olHy`uVBq!ia0vp^>>$j+1|*LJg4nJ zaD4z_MyE94FX@Mdzopr09+tDJOBUy diff --git a/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/null_white_bg.9.png b/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/null_white_bg.9.png deleted file mode 100644 index 3b6aa1f2b6e973e17948aae961d8880c3e2699bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2803 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 FV1j`zQ`P_g diff --git a/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/scroll_bar_h.9.png b/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/scroll_bar_h.9.png deleted file mode 100644 index 653ef0e2ea47226011d852793b1f76d45d3b2538..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 466 zcmV;@0WJQCP)nP}+gcDvznxd^Yk diff --git a/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/scroll_bar_pressed_h.9.png b/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/scroll_bar_pressed_h.9.png deleted file mode 100644 index bfbb5162f8f85538a272f0c84a0c760834e5b4e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 476 zcmV<20VDp2P)>4tTg%r)!56-D|v zVX;`Cdc8)2fpHYt?MJFq?zq^Ui3){0_4_><4hLl0_EE4bi{o^=9ZIDxKPN1gb!s;6 zX)>{CI-Qd1x<|or9FAj}BdS&_6pvqgBrKJ5zZ#P(g0bg$3|W>B;>+cd9vg-^*i7bx2M3ddGcX=oe8v+6 z^^jo?86#h-RVkTF(61XrYz=Gyu?;j$WkAMu5nBTr1Uj)fz+s2G|KD$W_`Ly0{A0YC S@Oy{=0000IBDRzdp>P%m9ONKJk&nazEv3>z3;c!G&I+Ziu;M104P@SZ zXP(YZByxTsa_LGY?+}e%Ar`wvB5{jUD#;gTGWTdU8&H%_sH*Co3i}<8-<%d^vkw>! z2X62Ti-nHm@(a2?cejqwXoz$=6%^+40ve4MOs5kVh5^g6uv%HLZJV8RNvqXFu~;|? zbGb+K`|r>+4W?ng};?bk@sP_U+gfi?z!MrYa`TqtHeoy1^2vmmWB+FH_+b!

rP`E~8eH lSx3uq#T7hXJ~Vj~_8TEoW3b4!bTR+{002ovPDHLkV1ggB;L-p9 diff --git a/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/scroll_bar_rover_h.9.png b/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/scroll_bar_rover_h.9.png deleted file mode 100644 index 1382fc04325a5426b96cb77598e67a3c8842ddc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 416 zcmV;R0bl-!P)}*K5XfI%Pkb&1kt?QV;|*pU-KrSa3|%p67AQaUAk}pIq1F+^>b= zIHq@+ZQI=iH=7M_D9e&jRTcY>>y=KY6Wwk%DvE+*m&=8HUDupHpU>>GENl4yY%-ZV z7EF?a6QB1xA0WU1AR#VAP*lw!hJ2pq)HKZlAAp&r`CV|o-?v?XEYLKK4~NG=>iU^i z`M}|Dpy6=X7NgZ_#hs!<*@QL7us&Wbga!az*QuS*?RHCPn(~{;2I;hKF_n*NJRXl^ z7zX{ALR=NzP5^?$RWI?bd>4N_9#iMotD8Z_b%G=Z!OL2W1M(>Zu+eDLJ^o=BzV$z| zEQ|hBkSK~+2>?+AGy>om0|nK9sz5;ygQ7q=@QgT==l%NDgZBk#Y^7eB#pM+>FiFo7)CS5 zXp6yMK%Gv9dc7W*rb)x$@H=@t9uwgEKIM5%m&=9c{eHimIGs*8AdX{7l7zA>%{}uZnq_IKA*QDxvr~7WLZ`#65^Drv)POngCL-yD5%@* zs)2c$ro4}gRC??6nisKozu#5y0#RBnmnCVjSny&Ph8&2&w7uc(7WNdyeCj zBoqih0cvuxu2dn35x3i|_MXJON_yyCxhE*;HAx$x-4tmunN%#--K#Z1l%gn7T`u?4 z)a4|kUr%GV+m%Yk2x}A hpB)Z|--Nbb*gr1>dFLEBq)Pw*002ovPDHLkV1gv5&OHDC diff --git a/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/scroll_bar_v.9.png b/HMCLaF/src/main/resources/org/jackhuang/hmcl/laf/utils/imgs/np/scroll_bar_v.9.png deleted file mode 100644 index 8b187aed9ddbb467616df676b70931a11fd2ac35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 505 zcmV)VJ#BEkp+0ul~~B^r(TljHHYbh}-dOeS)_-(@hDk}^q!bZCS^1l$@zSi%jF`s z+fBbA?{+(h#bRD!p-_-suP4Xj(IznL@d|o!2jS@{SW@Zq~;5?R74kloRTL~~F5^nb_YK3$-98}FH z83RmjwBa#=egLBOtYk{8R4U${AW<3_0YP>v@$E5!o&aGxYM3y?(n-#ywAYoL-d3iV|6k0tB;v95A;zbGP%m$l1@;l{v zx#sh^@6}*SYPFi9)M~Y4Fc|ofhQpzN^IZ8xqaow*SOJjDOyH`=Zg>)SZ2nL9_J#cc(C~)cLk^4@00000NkvXXu0mjf^^4