• R/O
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

OmegaT の背景に画像を表示します。


Commit MetaInfo

Revision27 (tree)
Time2014-05-17 01:20:07
Authoryu-tang

Log Message

メニューバーの透過・不透過の切り替えに対応

Change Summary

Incremental Difference

--- trunk/src/jp/sourceforge/users/yutang/omegat/plugin/moenizer/MoeConfig.java (revision 26)
+++ trunk/src/jp/sourceforge/users/yutang/omegat/plugin/moenizer/MoeConfig.java (revision 27)
@@ -50,7 +50,7 @@
5050
5151 private final File file;
5252 private ConfigObject config = null;
53- private final TreeSet<ConfigObject> configs
53+ private final TreeSet<ConfigObject> providerConfigs
5454 = new TreeSet<ConfigObject>
5555 (new Comparator<ConfigObject>() {
5656 @Override
@@ -70,12 +70,27 @@
7070 }
7171 }
7272
73- public Set<ConfigObject> getConfigs() {
74- return configs;
73+ public Object get(String key) {
74+ if (config != null) {
75+ Map flatten = config.flatten();
76+ if (flatten.containsKey(key)) {
77+ return flatten.get(key);
78+ }
79+ }
80+ return null;
7581 }
7682
83+ public boolean get(String key, boolean defaultValue) {
84+ Object ret = get(key);
85+ return ret != null ? (Boolean) ret : defaultValue;
86+ }
87+
88+ public Set<ConfigObject> getProviderConfigs() {
89+ return providerConfigs;
90+ }
91+
7792 public ConfigObject getCurrentConfig() {
78- for (ConfigObject entry : configs) {
93+ for (ConfigObject entry : providerConfigs) {
7994 boolean enabled = (Boolean) entry.get(KEY_ENABLED);
8095 if (enabled) {
8196 return entry;
@@ -108,7 +123,7 @@
108123 String name = e.getKey();
109124 ConfigObject conf = e.getValue();
110125 if (!name.equals(CONF_GENERAL)) {
111- configs.add(conf);
126+ providerConfigs.add(conf);
112127 }
113128 }
114129 }
--- trunk/src/jp/sourceforge/users/yutang/omegat/plugin/moenizer/Moenizer.java (revision 26)
+++ trunk/src/jp/sourceforge/users/yutang/omegat/plugin/moenizer/Moenizer.java (revision 27)
@@ -75,6 +75,10 @@
7575 (new SlideShow()).execute();
7676
7777 ui = MoeUI.getInstance();
78+ ui.setMakeTransparentMenubar(getMakeTransparentMenubar());
79+ ui.setMakeTransparentButtonPanel(getMakeTransparentButtonPanel());
80+ ui.setMakeTransparentStatusbar(getMakeTransparentStatusbar());
81+ ui.setMakeTransparentPaneTitlebar(getMakeTransparentPaneTitlebar());
7882
7983 // この時点でコンポーネントの透過設定をしても反映されない(タイミング?)。
8084 // Workaround として、invokeLater でキューに突っ込んで、後で処理する。
@@ -119,7 +123,23 @@
119123 break;
120124 }
121125 }
122-
126+
127+ private boolean getMakeTransparentMenubar() {
128+ return config.get("__general__.makeTransparentMenubar", true);
129+ }
130+
131+ private boolean getMakeTransparentButtonPanel() {
132+ return config.get("__general__.makeTransparentButtonPanel", true);
133+ }
134+
135+ private boolean getMakeTransparentStatusbar() {
136+ return config.get("__general__.makeTransparentStatusbar", true);
137+ }
138+
139+ private boolean getMakeTransparentPaneTitlebar() {
140+ return config.get("__general__.makeTransparentMenubar", true);
141+ }
142+
123143 private class SlideShow extends SwingWorker<Object, Void> {
124144 private long interval = -1;
125145
@@ -147,6 +167,6 @@
147167 }
148168 return null;
149169 }
150- }
151-
170+ }
171+
152172 }
--- trunk/src/jp/sourceforge/users/yutang/omegat/plugin/moenizer/imageloader/DefaultImageLoader.java (revision 26)
+++ trunk/src/jp/sourceforge/users/yutang/omegat/plugin/moenizer/imageloader/DefaultImageLoader.java (revision 27)
@@ -100,7 +100,6 @@
100100 */
101101 @Override
102102 public BufferedImage getNextImage() {
103- Log.log("DefaultImageLoader.getNextImage() called.");
104103 return image;
105104 }
106105
--- trunk/src/jp/sourceforge/users/yutang/omegat/plugin/moenizer/MoeUI.java (revision 26)
+++ trunk/src/jp/sourceforge/users/yutang/omegat/plugin/moenizer/MoeUI.java (revision 27)
@@ -52,6 +52,11 @@
5252 private JMenuBar menuBar;
5353 private DockingDesktop desktop;
5454
55+ private boolean makeTransparentMenubar = true;
56+ private boolean makeTransparentButtonPanel = true;
57+ private boolean makeTransparentStatusbar = true;
58+ private boolean makeTransparentPaneTitlebar = true;
59+
5560 static {
5661 moeUI = null;
5762 }
@@ -73,7 +78,11 @@
7378 public void transparent() {
7479 UIThreadsUtil.mustBeSwingThread();
7580
76- transparent(menuBar);
81+ if (makeTransparentMenubar) {
82+ //@@TODO メニューバーが不透過の場合、背景画像の上描画位置を調整する必要がある
83+ //@@TODO makeTransparentPaneTitlebar フィールド対応
84+ transparent(menuBar);
85+ }
7786 transparentRecursive(contentPane);
7887 transparentInstantStart(desktop);
7988
@@ -120,6 +129,22 @@
120129 });
121130 }
122131
132+ public void setMakeTransparentMenubar(boolean makeTransparentMenubar) {
133+ this.makeTransparentMenubar = makeTransparentMenubar;
134+ }
135+
136+ public void setMakeTransparentButtonPanel(boolean makeTransparentButtonPanel) {
137+ this.makeTransparentButtonPanel = makeTransparentButtonPanel;
138+ }
139+
140+ public void setMakeTransparentStatusbar(boolean makeTransparentStatusbar) {
141+ this.makeTransparentStatusbar = makeTransparentStatusbar;
142+ }
143+
144+ public void setMakeTransparentPaneTitlebar(boolean makeTransparentPaneTitlebar) {
145+ this.makeTransparentPaneTitlebar = makeTransparentPaneTitlebar;
146+ }
147+
123148 private void initUI() {
124149 frame = Core.getMainWindow().getApplicationFrame();
125150 layeredPane = new MoeLayeredPane();