23 |
package org.jsampler.view.classic; |
package org.jsampler.view.classic; |
24 |
|
|
25 |
import java.awt.Dimension; |
import java.awt.Dimension; |
26 |
|
import java.awt.Point; |
27 |
|
|
28 |
|
import java.awt.event.MouseAdapter; |
29 |
|
import java.awt.event.MouseEvent; |
30 |
|
|
31 |
|
import java.beans.PropertyChangeEvent; |
32 |
|
import java.beans.PropertyChangeListener; |
33 |
|
|
34 |
import javax.swing.BorderFactory; |
import javax.swing.BorderFactory; |
35 |
import javax.swing.BoxLayout; |
import javax.swing.BoxLayout; |
38 |
import javax.swing.JPanel; |
import javax.swing.JPanel; |
39 |
import javax.swing.JSlider; |
import javax.swing.JSlider; |
40 |
import javax.swing.JToolBar; |
import javax.swing.JToolBar; |
41 |
|
import javax.swing.JToolTip; |
42 |
|
import javax.swing.Popup; |
43 |
|
import javax.swing.PopupFactory; |
44 |
|
|
45 |
import javax.swing.event.ChangeEvent; |
import javax.swing.event.ChangeEvent; |
46 |
import javax.swing.event.ChangeListener; |
import javax.swing.event.ChangeListener; |
51 |
import org.jsampler.event.SamplerEvent; |
import org.jsampler.event.SamplerEvent; |
52 |
|
|
53 |
import static org.jsampler.view.classic.ClassicI18n.i18n; |
import static org.jsampler.view.classic.ClassicI18n.i18n; |
54 |
|
import static org.jsampler.view.classic.ClassicPrefs.preferences; |
55 |
|
import static org.jsampler.view.std.StdPrefs.*; |
56 |
|
|
57 |
|
|
58 |
/** |
/** |
73 |
|
|
74 |
private final JLabel lVolume = new JLabel(Res.iconVolume22); |
private final JLabel lVolume = new JLabel(Res.iconVolume22); |
75 |
private final JSlider slVolume = new JSlider(0, 100); |
private final JSlider slVolume = new JSlider(0, 100); |
76 |
|
private Popup popup = null; |
77 |
|
private final JToolTip tip = new JToolTip(); |
78 |
|
|
79 |
|
|
80 |
/** |
/** |
107 |
add(btnTabMoveLeft); |
add(btnTabMoveLeft); |
108 |
add(btnTabMoveRight); |
add(btnTabMoveRight); |
109 |
|
|
110 |
|
// Setting the tooltip size |
111 |
|
tip.setTipText(i18n.getLabel("ChannelsBar.volume", 1000)); |
112 |
|
tip.setMinimumSize(tip.getPreferredSize()); |
113 |
|
tip.setPreferredSize(tip.getPreferredSize()); // workaround for preserving that size |
114 |
|
tip.setComponent(slVolume); |
115 |
|
/////// |
116 |
|
|
117 |
|
int i = preferences().getIntProperty(MAXIMUM_MASTER_VOLUME); |
118 |
|
slVolume.setMaximum(i); |
119 |
|
String s = MAXIMUM_MASTER_VOLUME; |
120 |
|
preferences().addPropertyChangeListener(s, new PropertyChangeListener() { |
121 |
|
public void |
122 |
|
propertyChange(PropertyChangeEvent e) { |
123 |
|
int j = preferences().getIntProperty(MAXIMUM_MASTER_VOLUME); |
124 |
|
slVolume.setMaximum(j); |
125 |
|
} |
126 |
|
}); |
127 |
|
|
128 |
slVolume.addChangeListener(new ChangeListener() { |
slVolume.addChangeListener(new ChangeListener() { |
129 |
public void |
public void |
130 |
stateChanged(ChangeEvent e) { setVolume(); } |
stateChanged(ChangeEvent e) { setVolume(); } |
136 |
}); |
}); |
137 |
|
|
138 |
updateVolume(); |
updateVolume(); |
139 |
|
|
140 |
|
slVolume.addMouseListener(new MouseAdapter() { |
141 |
|
public void |
142 |
|
mousePressed(MouseEvent e) { |
143 |
|
if(popup != null) { |
144 |
|
popup.hide(); |
145 |
|
popup = null; |
146 |
|
} |
147 |
|
|
148 |
|
Point p = slVolume.getLocationOnScreen(); |
149 |
|
PopupFactory pf = PopupFactory.getSharedInstance(); |
150 |
|
popup = pf.getPopup(slVolume, tip, p.x, p.y - 22); |
151 |
|
popup.show(); |
152 |
|
} |
153 |
|
|
154 |
|
public void |
155 |
|
mouseReleased(MouseEvent e) { |
156 |
|
if(popup != null) { |
157 |
|
popup.hide(); |
158 |
|
popup = null; |
159 |
|
} |
160 |
|
} |
161 |
|
}); |
162 |
} |
} |
163 |
|
|
164 |
private void |
private void |
165 |
setVolume() { |
setVolume() { |
166 |
int volume = slVolume.getValue(); |
int volume = slVolume.getValue(); |
167 |
slVolume.setToolTipText(i18n.getLabel("ChannelsBar.volume", volume)); |
String s = i18n.getLabel("ChannelsBar.volume", volume); |
168 |
lVolume.setToolTipText(i18n.getLabel("ChannelsBar.volume", volume)); |
slVolume.setToolTipText(s); |
169 |
|
lVolume.setToolTipText(s); |
170 |
|
tip.setTipText(s); |
171 |
|
tip.repaint(); |
172 |
|
|
173 |
if(slVolume.getValueIsAdjusting()) return; |
if(slVolume.getValueIsAdjusting()) return; |
174 |
|
|