1 |
/* |
2 |
* JSampler - a java front-end for LinuxSampler |
3 |
* |
4 |
* Copyright (C) 2005-2008 Grigor Iliev <grigor@grigoriliev.com> |
5 |
* |
6 |
* This file is part of JSampler. |
7 |
* |
8 |
* JSampler is free software; you can redistribute it and/or modify |
9 |
* it under the terms of the GNU General Public License version 2 |
10 |
* as published by the Free Software Foundation. |
11 |
* |
12 |
* JSampler is distributed in the hope that it will be useful, |
13 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
15 |
* GNU General Public License for more details. |
16 |
* |
17 |
* You should have received a copy of the GNU General Public License |
18 |
* along with JSampler; if not, write to the Free Software |
19 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
20 |
* MA 02111-1307 USA |
21 |
*/ |
22 |
|
23 |
package org.jsampler.view.fantasia; |
24 |
|
25 |
import java.awt.Font; |
26 |
import java.awt.Insets; |
27 |
|
28 |
import java.util.Properties; |
29 |
import java.util.logging.Level; |
30 |
|
31 |
import javax.swing.ImageIcon; |
32 |
|
33 |
import org.jsampler.CC; |
34 |
import org.jsampler.HF; |
35 |
|
36 |
import org.linuxsampler.lscp.Parser; |
37 |
|
38 |
|
39 |
/** |
40 |
* This class contains all pixmap resources needed by <b>Fantasia</b> view. |
41 |
* @author Grigor Iliev |
42 |
*/ |
43 |
public class Res { |
44 |
|
45 |
/** Forbits the instantiation of this class. */ |
46 |
private Res() { } |
47 |
|
48 |
protected static ImageIcon gfxFantasiaLogo; |
49 |
|
50 |
protected final static ImageIcon gfxPowerOn |
51 |
= new ImageIcon(Res.class.getResource("res/gfx/power_on.png")); |
52 |
|
53 |
protected final static ImageIcon gfxPowerOff |
54 |
= new ImageIcon(Res.class.getResource("res/gfx/power_off.png")); |
55 |
|
56 |
protected final static ImageIcon gfxMuteOn |
57 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_mute_on.png")); |
58 |
|
59 |
protected final static ImageIcon gfxMuteOff |
60 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_mute_off.png")); |
61 |
|
62 |
protected final static ImageIcon gfxMuteSmallOn |
63 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_mute_s_on.png")); |
64 |
|
65 |
protected final static ImageIcon gfxMuteSmallOff |
66 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_mute_s_off.png")); |
67 |
|
68 |
protected final static ImageIcon gfxMuteSoloDisabled |
69 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_mute_solo_disabled.png")); |
70 |
|
71 |
protected final static ImageIcon gfxMutedBySolo |
72 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_mute_off.png")); |
73 |
|
74 |
protected final static ImageIcon gfxMutedBySoloSmall |
75 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_mute_s_off.png")); |
76 |
|
77 |
protected final static ImageIcon gfxSoloOn |
78 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_solo_on.png")); |
79 |
|
80 |
protected final static ImageIcon gfxSoloOff |
81 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_mute_off.png")); |
82 |
|
83 |
protected final static ImageIcon gfxSoloSmallOn |
84 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_solo_s_on.png")); |
85 |
|
86 |
protected final static ImageIcon gfxSoloSmallOff |
87 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_solo_s_off.png")); |
88 |
|
89 |
protected final static ImageIcon gfxMuteTitle |
90 |
= new ImageIcon(Res.class.getResource("res/gfx/title_mute.png")); |
91 |
|
92 |
protected final static ImageIcon gfxSoloTitle |
93 |
= new ImageIcon(Res.class.getResource("res/gfx/title_solo.png")); |
94 |
|
95 |
protected final static ImageIcon gfxVolumeTitle |
96 |
= new ImageIcon(Res.class.getResource("res/gfx/title_volume.png")); |
97 |
|
98 |
protected final static ImageIcon gfxVolumeDial |
99 |
= new ImageIcon(Res.class.getResource("res/gfx/knob_volume.png")); |
100 |
|
101 |
protected final static ImageIcon gfxOptionsTitle |
102 |
= new ImageIcon(Res.class.getResource("res/gfx/title_options.png")); |
103 |
|
104 |
protected final static ImageIcon gfxOptionsOn |
105 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_hide_channel_options.png")); |
106 |
|
107 |
protected final static ImageIcon gfxOptionsOnRO |
108 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_hide_channel_options_ro.png")); |
109 |
|
110 |
protected final static ImageIcon gfxOptionsOff |
111 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_show_channel_options.png")); |
112 |
|
113 |
protected final static ImageIcon gfxOptionsOffRO |
114 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_show_channel_options_ro.png")); |
115 |
|
116 |
protected final static ImageIcon gfxFx |
117 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_fx.png")); |
118 |
|
119 |
protected final static ImageIcon gfxFxRO |
120 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_fx_ro.png")); |
121 |
|
122 |
protected final static ImageIcon gfxMidiInputTitle |
123 |
= new ImageIcon(Res.class.getResource("res/gfx/title_midi_input.png")); |
124 |
|
125 |
protected final static ImageIcon gfxEngineTitle |
126 |
= new ImageIcon(Res.class.getResource("res/gfx/title_engine.png")); |
127 |
|
128 |
protected final static ImageIcon gfxAudioOutputTitle |
129 |
= new ImageIcon(Res.class.getResource("res/gfx/title_audio_output.png")); |
130 |
|
131 |
protected final static ImageIcon gfxInstrumentMapTitle |
132 |
= new ImageIcon(Res.class.getResource("res/gfx/title_midi_instrument_map.png")); |
133 |
|
134 |
protected final static ImageIcon gfxChannel |
135 |
= new ImageIcon(Res.class.getResource("res/gfx/channel.png")); |
136 |
|
137 |
protected final static ImageIcon gfxChannelScreen |
138 |
= new ImageIcon(Res.class.getResource("res/gfx/channel.screen.png")); |
139 |
|
140 |
protected final static ImageIcon gfxHLine |
141 |
= new ImageIcon(Res.class.getResource("res/gfx/line_hor.png")); |
142 |
|
143 |
protected final static ImageIcon gfxVLine |
144 |
= new ImageIcon(Res.class.getResource("res/gfx/line_vert.png")); |
145 |
|
146 |
protected final static ImageIcon gfxChannelOptions |
147 |
= new ImageIcon(Res.class.getResource("res/gfx/channel.options.png")); |
148 |
|
149 |
protected final static ImageIcon gfxCreateChannel |
150 |
= new ImageIcon(Res.class.getResource("res/gfx/create_channel.png")); |
151 |
|
152 |
protected final static ImageIcon gfxTextField |
153 |
= new ImageIcon(Res.class.getResource("res/gfx/tf_bg.png")); |
154 |
|
155 |
protected final static ImageIcon gfxCbLabelBg |
156 |
= new ImageIcon(Res.class.getResource("res/gfx/cb_label_bg.png")); |
157 |
|
158 |
protected final static ImageIcon gfxCbArrow |
159 |
= new ImageIcon(Res.class.getResource("res/gfx/cb_arrow.png")); |
160 |
|
161 |
protected final static ImageIcon gfxCbArrowDisabled |
162 |
= new ImageIcon(Res.class.getResource("res/gfx/cb_arrow_disabled.png")); |
163 |
|
164 |
protected final static ImageIcon gfxCbArrowRO |
165 |
= new ImageIcon(Res.class.getResource("res/gfx/cb_arrow_ro.png")); |
166 |
|
167 |
protected final static ImageIcon gfxPowerOn18 |
168 |
= new ImageIcon(Res.class.getResource("res/gfx/power_on18.png")); |
169 |
|
170 |
protected final static ImageIcon gfxPowerOff18 |
171 |
= new ImageIcon(Res.class.getResource("res/gfx/power_off18.png")); |
172 |
|
173 |
protected final static ImageIcon gfxDeviceBg |
174 |
= new ImageIcon(Res.class.getResource("res/gfx/device_bg.png")); |
175 |
|
176 |
protected final static ImageIcon gfxRoundBg14 |
177 |
= new ImageIcon(Res.class.getResource("res/gfx/round_bg14.png")); |
178 |
protected final static ImageIcon gfxRoundBg7 |
179 |
= new ImageIcon(Res.class.getResource("res/gfx/round_bg7.png")); |
180 |
protected final static ImageIcon gfxMenuBarBg |
181 |
= new ImageIcon(Res.class.getResource("res/gfx/menubar_bg.png")); |
182 |
|
183 |
protected final static ImageIcon gfxScreenBtnBg |
184 |
= new ImageIcon(Res.class.getResource("res/gfx/screen_btn_bg.png")); |
185 |
|
186 |
|
187 |
protected final static ImageIcon gfxChannelsBg |
188 |
= new ImageIcon(Res.class.getResource("res/gfx/channels_bg.png")); |
189 |
|
190 |
protected static ImageIcon gfxToolBar; |
191 |
protected static Insets insetsToolBar; |
192 |
|
193 |
protected final static ImageIcon gfxBorder |
194 |
= new ImageIcon(Res.class.getResource("res/gfx/border.png")); |
195 |
|
196 |
protected final static ImageIcon gfxBtnCr |
197 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_cr.png")); |
198 |
|
199 |
protected final static ImageIcon gfxBtnCrRO |
200 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_cr_ro.png")); |
201 |
|
202 |
protected final static ImageIcon gfxBtnDecrease |
203 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_decrease.png")); |
204 |
|
205 |
protected final static ImageIcon gfxBtnDecreaseRO |
206 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_decrease_ro.png")); |
207 |
|
208 |
protected final static ImageIcon gfxBtnIncrease |
209 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_increase.png")); |
210 |
|
211 |
protected final static ImageIcon gfxBtnIncreaseRO |
212 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_increase_ro.png")); |
213 |
|
214 |
protected final static ImageIcon gfxBtnScrollLeft |
215 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_scroll_left.png")); |
216 |
|
217 |
protected final static ImageIcon gfxBtnScrollLeftRO |
218 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_scroll_left_ro.png")); |
219 |
|
220 |
protected final static ImageIcon gfxBtnScrollRight |
221 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_scroll_right.png")); |
222 |
|
223 |
protected final static ImageIcon gfxBtnScrollRightRO |
224 |
= new ImageIcon(Res.class.getResource("res/gfx/btn_scroll_right_ro.png")); |
225 |
|
226 |
|
227 |
protected final static ImageIcon iconAppIcon |
228 |
= new ImageIcon(Res.class.getResource("res/icons/app_icon.png")); |
229 |
|
230 |
protected final static ImageIcon iconArrowUp |
231 |
= new ImageIcon(Res.class.getResource("res/icons/arrow_up.png")); |
232 |
|
233 |
protected final static ImageIcon iconArrowDown |
234 |
= new ImageIcon(Res.class.getResource("res/icons/arrow_down.png")); |
235 |
|
236 |
protected final static ImageIcon iconEngine12 |
237 |
= new ImageIcon(Res.class.getResource("res/icons/engine12.png")); |
238 |
|
239 |
protected final static ImageIcon iconVolume14 |
240 |
= new ImageIcon(Res.class.getResource("res/icons/volume14.png")); |
241 |
|
242 |
protected final static ImageIcon iconNew16 |
243 |
= new ImageIcon(Res.class.getResource("res/icons/new16.png")); |
244 |
|
245 |
protected final static ImageIcon iconEdit16 |
246 |
= new ImageIcon(Res.class.getResource("res/icons/edit16.png")); |
247 |
|
248 |
protected final static ImageIcon iconDelete16 |
249 |
= new ImageIcon(Res.class.getResource("res/icons/delete16.png")); |
250 |
|
251 |
protected final static ImageIcon iconBack16 |
252 |
= new ImageIcon(Res.class.getResource("res/icons/back16.png")); |
253 |
|
254 |
protected final static ImageIcon iconNext16 |
255 |
= new ImageIcon(Res.class.getResource("res/icons/next16.png")); |
256 |
|
257 |
protected final static ImageIcon iconUp16 |
258 |
= new ImageIcon(Res.class.getResource("res/icons/up16.png")); |
259 |
|
260 |
protected final static ImageIcon iconBrowse16 |
261 |
= new ImageIcon(Res.class.getResource("res/icons/folder_open16.png")); |
262 |
|
263 |
protected final static ImageIcon iconDb16 |
264 |
= new ImageIcon(Res.class.getResource("res/icons/collection16.png")); |
265 |
|
266 |
protected final static ImageIcon iconFolder16 |
267 |
= new ImageIcon(Res.class.getResource("res/icons/folder16.png")); |
268 |
|
269 |
protected final static ImageIcon iconFolderOpen16 |
270 |
= new ImageIcon(Res.class.getResource("res/icons/folder_open16.png")); |
271 |
|
272 |
protected final static ImageIcon iconInstrument16 |
273 |
= new ImageIcon(Res.class.getResource("res/icons/instr16.png")); |
274 |
|
275 |
protected final static ImageIcon iconReload16 |
276 |
= new ImageIcon(Res.class.getResource("res/icons/reload16.png")); |
277 |
|
278 |
protected final static ImageIcon iconPreferences16 |
279 |
= new ImageIcon(Res.class.getResource("res/icons/preferences16.png")); |
280 |
|
281 |
protected final static ImageIcon iconVolume22 |
282 |
= new ImageIcon(Res.class.getResource("res/icons/volume22.png")); |
283 |
|
284 |
protected final static ImageIcon iconFind22 |
285 |
= new ImageIcon(Res.class.getResource("res/icons/Find22.png")); |
286 |
|
287 |
protected final static ImageIcon iconGoUp22 |
288 |
= new ImageIcon(Res.class.getResource("res/icons/GoUp22.png")); |
289 |
|
290 |
protected final static ImageIcon iconGoBack22 |
291 |
= new ImageIcon(Res.class.getResource("res/icons/GoBack22.png")); |
292 |
|
293 |
protected final static ImageIcon iconGoForward22 |
294 |
= new ImageIcon(Res.class.getResource("res/icons/GoForward22.png")); |
295 |
|
296 |
protected final static ImageIcon iconFolderOpen22 |
297 |
= new ImageIcon(Res.class.getResource("res/icons/folder_open22.png")); |
298 |
|
299 |
protected final static ImageIcon iconPreferences22 |
300 |
= new ImageIcon(Res.class.getResource("res/icons/Preferences22.png")); |
301 |
|
302 |
protected final static ImageIcon iconReload22 |
303 |
= new ImageIcon(Res.class.getResource("res/icons/reload22.png")); |
304 |
|
305 |
protected final static ImageIcon iconSamplerInfo32 |
306 |
= new ImageIcon(Res.class.getResource("res/icons/sampler_info32.png")); |
307 |
|
308 |
protected final static ImageIcon iconOpen32 |
309 |
= new ImageIcon(Res.class.getResource("res/icons/open32.png")); |
310 |
|
311 |
protected final static ImageIcon iconSave32 |
312 |
= new ImageIcon(Res.class.getResource("res/icons/save32.png")); |
313 |
|
314 |
protected final static ImageIcon iconReload32 |
315 |
= new ImageIcon(Res.class.getResource("res/icons/reload32.png")); |
316 |
|
317 |
protected final static ImageIcon iconReset32 |
318 |
= new ImageIcon(Res.class.getResource("res/icons/purge32.png")); |
319 |
|
320 |
protected final static ImageIcon iconPreferences32 |
321 |
= new ImageIcon(Res.class.getResource("res/icons/preferences32.png")); |
322 |
|
323 |
protected final static ImageIcon iconMidiKeyboard32 |
324 |
= new ImageIcon(Res.class.getResource("res/icons/midi_keyboard32.png")); |
325 |
|
326 |
protected final static ImageIcon iconLSConsole32 |
327 |
= new ImageIcon(Res.class.getResource("res/icons/ls_console32.png")); |
328 |
|
329 |
protected final static ImageIcon iconLSConsole |
330 |
= new ImageIcon(Res.class.getResource("res/icons/ls_console.png")); |
331 |
|
332 |
protected final static ImageIcon iconDb32 |
333 |
= new ImageIcon(Res.class.getResource("res/icons/db32.png")); |
334 |
|
335 |
protected final static ImageIcon iconWarning32 |
336 |
= new ImageIcon(Res.class.getResource("res/icons/warning32.png")); |
337 |
|
338 |
protected final static ImageIcon iconQuestion32 |
339 |
= new ImageIcon(Res.class.getResource("res/icons/question32.png")); |
340 |
|
341 |
protected final static ImageIcon iconLinuxSamplerLogo |
342 |
= new ImageIcon(Res.class.getResource("res/icons/LinuxSampler-logo.png")); |
343 |
|
344 |
protected static Font fontScreen = null; |
345 |
protected static Font fontScreenMono = null; |
346 |
|
347 |
|
348 |
static { |
349 |
try { |
350 |
fontScreen = Font.createFont ( |
351 |
Font.TRUETYPE_FONT, |
352 |
Res.class.getResourceAsStream("res/fonts/DejaVuLGCCondensedSansBold.ttf") |
353 |
); |
354 |
fontScreen = fontScreen.deriveFont(10.0f); |
355 |
|
356 |
fontScreenMono = Font.createFont ( |
357 |
Font.TRUETYPE_FONT, |
358 |
Res.class.getResourceAsStream("res/fonts/DejaVuLGCMonoSansBold.ttf") |
359 |
); |
360 |
fontScreenMono = fontScreenMono.deriveFont(10.0f); |
361 |
} catch(Exception e) { |
362 |
CC.getLogger().warning(HF.getErrorMessage(e)); |
363 |
} |
364 |
} |
365 |
|
366 |
protected static void |
367 |
loadTheme(String themeName) { |
368 |
try { |
369 |
Properties p = new Properties(); |
370 |
p.load(Res.class.getResourceAsStream("res/themes/themes.properties")); |
371 |
|
372 |
String path = p.getProperty(themeName); |
373 |
if(path == null) { |
374 |
String s = "Failed to load theme " + themeName; |
375 |
s += "! Falling back to the default theme..."; |
376 |
CC.getLogger().warning(s); |
377 |
path = p.getProperty("Graphite"); |
378 |
if(path == null) { |
379 |
CC.getLogger().warning("Failed to load the default theme!"); |
380 |
CC.cleanExit(); |
381 |
return; |
382 |
} |
383 |
} |
384 |
|
385 |
path = "res/" + path; |
386 |
if(path.charAt(path.length() - 1) != '/') path += "/"; |
387 |
path += "theme.properties"; |
388 |
p.load(Res.class.getResourceAsStream(path)); |
389 |
|
390 |
String s = "res/" + p.getProperty("FantasiaLogo.gfx"); |
391 |
gfxFantasiaLogo = new ImageIcon(Res.class.getResource(s)); |
392 |
|
393 |
s = "res/" + p.getProperty("StandardBar.gfx"); |
394 |
gfxToolBar = new ImageIcon(Res.class.getResource(s)); |
395 |
|
396 |
insetsToolBar = parseInsets(p.getProperty("StandardBar.insets")); |
397 |
} catch(Exception e) { |
398 |
CC.getLogger().log(Level.INFO, "Failed to load theme " + themeName, e); |
399 |
CC.cleanExit(); |
400 |
} |
401 |
} |
402 |
|
403 |
private static Insets |
404 |
parseInsets(String s) { |
405 |
Insets i = new Insets(0, 0, 0, 0); |
406 |
try { |
407 |
Integer[] list = Parser.parseIntList(s); |
408 |
if(list.length != 4) throw new Exception(); |
409 |
i.set(list[0], list[1], list[2], list[3]); |
410 |
} catch(Exception x) { |
411 |
CC.getLogger().warning("Failed to parse insets: " + s); |
412 |
} |
413 |
|
414 |
return i; |
415 |
} |
416 |
} |