Skip to content

Commit dbb63e9

Browse files
authored
移除 ComponentSublist 内部元素的缩进 (#5956)
1 parent 6b1c318 commit dbb63e9

13 files changed

Lines changed: 42 additions & 36 deletions

HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/ComponentSublistWrapper.java

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919

2020
import javafx.animation.*;
2121
import javafx.application.Platform;
22+
import javafx.beans.InvalidationListener;
23+
import javafx.css.PseudoClass;
2224
import javafx.geometry.Insets;
2325
import javafx.geometry.Pos;
2426
import javafx.scene.Node;
@@ -28,6 +30,7 @@
2830
import javafx.scene.layout.HBox;
2931
import javafx.scene.layout.Priority;
3032
import javafx.scene.layout.VBox;
33+
import javafx.scene.shape.Rectangle;
3134
import javafx.util.Duration;
3235
import org.jackhuang.hmcl.theme.Themes;
3336
import org.jackhuang.hmcl.ui.FXUtils;
@@ -43,8 +46,6 @@ final class ComponentSublistWrapper extends VBox implements NoPaddingComponent {
4346
private boolean expanded = false;
4447

4548
ComponentSublistWrapper(ComponentSublist sublist) {
46-
boolean noPadding = !sublist.hasComponentPadding();
47-
4849
this.getStyleClass().add("options-sublist-wrapper");
4950

5051
Node expandIcon = SVG.KEYBOARD_ARROW_DOWN.createIcon(20);
@@ -104,12 +105,26 @@ final class ComponentSublistWrapper extends VBox implements NoPaddingComponent {
104105

105106
if (container == null) {
106107
this.container = new VBox();
107-
108-
if (!noPadding) {
109-
container.setPadding(new Insets(8, 16, 10, 16));
110-
}
108+
this.container.getStyleClass().add("container");
111109
FXUtils.setLimitHeight(container, 0);
112-
FXUtils.setOverflowHidden(container);
110+
111+
Rectangle rectangle = FXUtils.setOverflowHidden(container);
112+
rectangle.getStyleClass().add("overflow-hidden");
113+
114+
var last = PseudoClass.getPseudoClass("last");
115+
116+
InvalidationListener updateArc = o -> {
117+
if (ComponentSublistWrapper.this.getPseudoClassStates().contains(last)) {
118+
rectangle.setArcHeight(4);
119+
rectangle.setArcWidth(4);
120+
} else {
121+
rectangle.setArcHeight(0);
122+
rectangle.setArcWidth(0);
123+
}
124+
};
125+
updateArc.invalidated(null);
126+
ComponentSublistWrapper.this.getPseudoClassStates().addListener(updateArc);
127+
113128
container.getChildren().setAll(sublist);
114129
ComponentSublistWrapper.this.getChildren().add(container);
115130

@@ -120,8 +135,7 @@ final class ComponentSublistWrapper extends VBox implements NoPaddingComponent {
120135
}
121136

122137
Platform.runLater(() -> {
123-
// FIXME: ComponentSubList without padding must have a 4 pixel padding for displaying a border radius.
124-
double contentHeight = expanded ? (sublist.prefHeight(sublist.getWidth()) + (noPadding ? 4 : 8 + 10)) : 0;
138+
double contentHeight = expanded ? sublist.prefHeight(sublist.getWidth()) : 0;
125139
double targetRotate = expanded ? -180 : 0;
126140

127141
if (AnimationUtils.isAnimationEnabled()) {

HMCL/src/main/java/org/jackhuang/hmcl/ui/construct/MultiFileItem.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ public final class MultiFileItem<T> extends VBox {
5555

5656
@SuppressWarnings("unchecked")
5757
public MultiFileItem() {
58-
setPadding(new Insets(0, 0, 10, 0));
58+
this.getStyleClass().add("multi-file-item");
59+
5960
setSpacing(8);
6061

6162
group.selectedToggleProperty().addListener((a, b, newValue) -> {

HMCL/src/main/java/org/jackhuang/hmcl/ui/versions/AdvancedVersionSettingPage.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,9 +188,6 @@ public AdvancedVersionSettingPage(Profile profile, @Nullable String versionId, V
188188
new MultiFileItem.Option<>(i18n("settings.advanced.natives_directory.default"), NativesDirectoryType.VERSION_FOLDER),
189189
nativesDirCustomOption
190190
));
191-
HintPane nativesDirHint = new HintPane(MessageDialogPane.MessageType.WARNING);
192-
nativesDirHint.setText(i18n("settings.advanced.natives_directory.hint"));
193-
nativesDirItem.getChildren().add(nativesDirHint);
194191

195192
graphicsBackendPane = new LineSelectButton<>();
196193
graphicsBackendPane.setTitle(i18n("settings.advanced.graphics_backend"));

HMCL/src/main/resources/assets/css/root.css

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1093,8 +1093,12 @@
10931093
-fx-background-color: -monet-error-container;
10941094
}
10951095

1096+
.multi-file-item {
1097+
-fx-padding: 10 0 10 0;
1098+
}
1099+
10961100
.options-sublist {
1097-
-fx-background-color: -monet-surface;
1101+
-fx-background-color: -monet-surface-container;
10981102
}
10991103

11001104
.options-list-item {
@@ -1105,6 +1109,14 @@
11051109
-fx-font-size: 12;
11061110
}
11071111

1112+
.options-sublist .options-list-item {
1113+
-fx-background-color: -monet-surface-container;
1114+
}
1115+
1116+
.options-sublist .multi-file-item {
1117+
-fx-padding: 10 10 10 10;
1118+
}
1119+
11081120
.options-list-item .svg {
11091121
-fx-fill: -monet-on-surface;
11101122
-fx-border-color: -monet-outline-variant;
@@ -1140,6 +1152,10 @@
11401152
-fx-border-width: 0;
11411153
}
11421154

1155+
.options-sublist-wrapper > .container {
1156+
-fx-background-color: -monet-surface-container;
1157+
}
1158+
11431159
.options-sublist-wrapper .expand-icon .svg {
11441160
-fx-fill: -monet-on-surface-variant;
11451161
}

HMCL/src/main/resources/assets/lang/I18N.properties

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1365,10 +1365,6 @@ settings.advanced.natives_directory.choose=Choose the location of the desired na
13651365
settings.advanced.natives_directory.custom=Custom
13661366
settings.advanced.natives_directory.default=Default
13671367
settings.advanced.natives_directory.default.version_id=<Instance Name>
1368-
settings.advanced.natives_directory.hint=This option is intended only for users of Apple silicon or other not officially supported platforms. Please do not edit this option unless you know what you are doing.\n\
1369-
\n\
1370-
Before proceeding, please make sure all libraries (e.g. lwjgl.dll, libopenal.so) are provided in your desired directory.\n\
1371-
Note: It is recommended to use a fully English-letters path for the specified local library file. Otherwise it may lead to game launch failure.
13721368
settings.advanced.no_jvm_args=Do not add default JVM arguments
13731369
settings.advanced.no_optimizing_jvm_args=Do not add default JVM optimization arguments
13741370
settings.advanced.precall_command=Pre-launch Command

HMCL/src/main/resources/assets/lang/I18N_ar.properties

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1341,10 +1341,6 @@ settings.advanced.natives_directory.choose=اختر موقع المكتبة ال
13411341
settings.advanced.natives_directory.custom=مخصص
13421342
settings.advanced.natives_directory.default=افتراضي
13431343
settings.advanced.natives_directory.default.version_id=<اسم النسخة>
1344-
settings.advanced.natives_directory.hint=هذا الخيار مخصص فقط لمستخدمي Apple silicon والمنصات غير المدعومة رسمياً. يُرجى عدم تعديل هذا الخيار إلا إذا كنت تعرف ما تفعله.\n\
1345-
\n\
1346-
قبل المتابعة، يُرجى التأكد من توفر جميع المكتبات (مثل lwjgl.dll وlibopenal.so) في المجلد المحدد.\n\
1347-
ملاحظة: يُنصح باستخدام مسار يحتوي على حروف إنجليزية فقط لملف المكتبة المحلية المحدد، وإلا قد يتسبب ذلك في فشل تشغيل اللعبة.
13481344
settings.advanced.no_jvm_args=عدم إضافة وسيطات JVM الافتراضية
13491345
settings.advanced.no_optimizing_jvm_args=عدم إضافة وسيطات تحسين JVM الافتراضية
13501346
settings.advanced.precall_command=أمر ما قبل التشغيل

HMCL/src/main/resources/assets/lang/I18N_es.properties

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1251,9 +1251,6 @@ settings.advanced.natives_directory.choose=Elija la ubicación de la biblioteca
12511251
settings.advanced.natives_directory.custom=Personalizado
12521252
settings.advanced.natives_directory.default=Por defecto
12531253
settings.advanced.natives_directory.default.version_id=<Nombre de la instancia>
1254-
settings.advanced.natives_directory.hint=Esta opción está pensada sólo para usuarios de chips de Apple u otras plataformas no soportadas oficialmente. Por favor, no modifique esta opción a menos que sepa lo que está haciendo.\n\
1255-
\n\
1256-
Antes de proceder, por favor, asegúrese de que todas las bibliotecas (por ejemplo, lwjgl.dll, libopenal.so) se proporcionan en su directorio deseado.
12571254
settings.advanced.no_jvm_args=No añadir argumentos JVM por defecto
12581255
settings.advanced.no_optimizing_jvm_args=No añadir argumentos de optimización de JVM
12591256
settings.advanced.precall_command=Comando pre-lanzamiento:

HMCL/src/main/resources/assets/lang/I18N_ja.properties

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -778,7 +778,6 @@ settings.advanced.natives_directory=ネイティブライブラリパス(例
778778
settings.advanced.natives_directory.choose=ネイティブライブラリパスを選択してください
779779
settings.advanced.natives_directory.custom=Custom(ゲームが実行時に必要とするネイティブライブラリを提供する必要があります)
780780
settings.advanced.natives_directory.default=Standard(ネイティブライブラリは当社が提供します)
781-
settings.advanced.natives_directory.hint=このオプションは、Appleシリコンまたはその他の公式にサポートされていないプラットフォーム/アーキテクチャでゲームをプレイする場合にのみ使用されます。\nこのオプションを変更する意味がわからない場合は、このオプションを変更しないことをお勧めします。、またはゲームが起動しません。\nこのオプションを変更する必要がある場合は、ゲームを実行するために必要なすべてのネイティブライブラリをカスタムネイティブディレクトリの下に配置する必要があります。lwjgl.dll(liblwjgl.so)、openal.dll(libopenal.so)。HMCLは、不足しているネイティブライブラリを提供しません。
782781
settings.advanced.no_jvm_args=デフォルトのJVM引数なし
783782
settings.advanced.precall_command=起動前コマンド
784783
settings.advanced.precall_command.prompt=ゲーム開始前に実行されます

HMCL/src/main/resources/assets/lang/I18N_lzh.properties

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1066,7 +1066,6 @@ settings.advanced.natives_directory.choose=擇府庫之徑
10661066
settings.advanced.natives_directory.custom=自定 (賴君所供之府庫也)
10671067
settings.advanced.natives_directory.default=本 (賴啟者所供之府庫)
10681068
settings.advanced.natives_directory.default.version_id=<例名>
1069-
settings.advanced.natives_directory.hint=供於械網之弗見適者,有如蘋矽,以自定府庫也。微其之知,毋改是,改則或弗啟。\n\n將改,而宜錄府庫於是,蓋 lwjgl.dll (liblwjgl.so)、openal.dll (libopenal.so) 之類。啟者弗補是府庫也!\n\n誡:府庫之徑,但宜書以英文、數、下綫,否則或弗啟。
10701069
settings.advanced.no_jvm_args=無添爪哇虛機之本通弦
10711070
settings.advanced.precall_command=令於戲前
10721071
settings.advanced.precall_command.prompt=將前戲啟而行

HMCL/src/main/resources/assets/lang/I18N_ru.properties

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1242,10 +1242,6 @@ settings.advanced.natives_directory.choose=Выберите расоложени
12421242
settings.advanced.natives_directory.custom=Пользовательское
12431243
settings.advanced.natives_directory.default=По умолчанию
12441244
settings.advanced.natives_directory.default.version_id=<Название сборки>
1245-
settings.advanced.natives_directory.hint=Параметр предназначен только для пользователей Apple silicon или других официально не поддерживаемых платформ. Не изменяйте, если не знаете что делаете.\n\
1246-
\n\
1247-
Прежде чем продолжить, убедитесь что все библиотеки (например, lwjgl.dll, libopenal.so) находятся в нужной папке.\n\
1248-
Примечание: Рекомендуется использовать полностью английские пути для указанных файлов локальных библиотек, иначе игра может не запуститься.
12491245
settings.advanced.no_jvm_args=Не добавлять аргументы JVM по умолчанию
12501246
settings.advanced.precall_command=Команда перед запуском
12511247
settings.advanced.precall_command.prompt=Команды, которые необходимо выполнить перед запуском игры

0 commit comments

Comments
 (0)