2 package saccubus.properties;
5 import java.util.Properties;
6 import saccubus.converter.profile.NgSetting;
12 public class ConvertSetting {
14 private static final String PROP_DISABLE_VHOOK = "VhookDisabled";
15 private static final String PROP_SHOW_COMMENT = "ShowCommentNum";
16 private static final String PROP_FONT_PATH = "FontPath";
17 private static final String PROP_FONT_INDEX = "FontIndex";
18 private static final String PROP_SHADOW_INDEX = "ShadowIndex";
19 private static final String PROP_SHOW_VIDEO = "ShowVideo";
20 private static final String PROP_FIX_FONT_SIZE = "FixFontSize";
21 private static final String PROP_OPAQUE_COMMENT = "OpaqueComment";
22 private static final String PROP_NG_WORD = "NG_Word";
23 private static final String PROP_NG_ID = "NG_ID";
24 private final boolean vhookDisabled;
25 private final int maxNumOfComment;
26 private final File font;
27 private final int fontIndex;
28 private final int shadowIndex;
29 private final boolean showConverting;
30 private final boolean selfAdjustFontSize;
31 private final boolean commentOpaque;
32 private final NgSetting ngSetting;
34 public ConvertSetting(boolean vhookDisabled, int maxNumOfComment, File font, int fontIndex, int shadowIndex,
35 boolean showConverting, boolean selfAdjustFontSize, boolean commentOpaque, NgSetting ngSetting) {
36 this.vhookDisabled = vhookDisabled;
37 this.maxNumOfComment = maxNumOfComment;
39 this.fontIndex = fontIndex;
40 this.shadowIndex = shadowIndex;
41 this.showConverting = showConverting;
42 this.selfAdjustFontSize = selfAdjustFontSize;
43 this.commentOpaque = commentOpaque;
44 this.ngSetting = ngSetting;
47 public boolean isCommentOpaque() {
51 public File getFont() {
55 public int getFontIndex() {
59 public int getMaxNumOfComment() {
60 return maxNumOfComment;
63 public boolean isSelfAdjustFontSize() {
64 return selfAdjustFontSize;
67 public int getShadowIndex() {
71 public boolean isShowConverting() {
72 return showConverting;
75 public boolean isVhookDisabled() {
79 public NgSetting getNgSetting() {
83 public void save(Properties prop) {
84 prop.setProperty(PROP_SHOW_COMMENT, Integer.toString(getMaxNumOfComment()));
85 prop.setProperty(PROP_FONT_PATH, getFont().getPath());
86 prop.setProperty(PROP_FONT_INDEX, Integer.toString(getFontIndex()));
87 prop.setProperty(PROP_SHOW_VIDEO, Boolean.toString(isShowConverting()));
88 prop.setProperty(PROP_NG_WORD, getNgSetting().getWord());
89 prop.setProperty(PROP_NG_ID, getNgSetting().getId());
90 prop.setProperty(PROP_FIX_FONT_SIZE, Boolean.toString(isSelfAdjustFontSize()));
91 prop.setProperty(PROP_OPAQUE_COMMENT, Boolean.toString(isCommentOpaque()));
92 prop.setProperty(PROP_DISABLE_VHOOK, Boolean.toString(isVhookDisabled()));
93 prop.setProperty(PROP_SHADOW_INDEX, Integer.toString(getShadowIndex()));
96 public static ConvertSetting load(Properties prop) {
97 String defaultFont = "";
98 String win_dir = System.getenv("windir");
99 if (win_dir != null) {
100 //windows の場合のデフォルトフォントパス
101 defaultFont = new File(win_dir, "Fonts" + File.separator + "msgothic.ttc").getPath();
105 int maxComment = Integer.parseInt(prop.getProperty(PROP_SHOW_COMMENT, "30"));
106 String font = prop.getProperty(PROP_FONT_PATH, defaultFont);
107 int fontIndex = Integer.parseInt(prop.getProperty(PROP_FONT_INDEX, "1"));
108 boolean showConv = Boolean.parseBoolean(prop.getProperty(PROP_SHOW_VIDEO, "true"));
109 String ngWord = prop.getProperty(PROP_NG_WORD, "");
110 String ngId = prop.getProperty(PROP_NG_ID, "");
111 boolean adjustFont = Boolean.parseBoolean(prop.getProperty(PROP_FIX_FONT_SIZE, "true"));
112 boolean opaque = Boolean.parseBoolean(prop.getProperty(PROP_OPAQUE_COMMENT, "false"));
113 boolean vhookDisabled = Boolean.parseBoolean(prop.getProperty(PROP_DISABLE_VHOOK, "false"));
114 int shadowIndex = Integer.parseInt(prop.getProperty(PROP_SHADOW_INDEX, "1"));
116 return new ConvertSetting(vhookDisabled, maxComment, new File(font), fontIndex, shadowIndex, showConv,
117 adjustFont, opaque, new NgSetting(ngWord, ngId));