179 frame.setSelected(true);
180 } catch(PropertyVetoException pve) {
181 }
182 showSystemMenu();
183 }
184 });
185 JPopupMenu p = frame.getComponentPopupMenu();
186 if (p == null || p instanceof UIResource) {
187 frame.setComponentPopupMenu(systemPopupMenu);
188 }
189 if (frame.getDesktopIcon() != null) {
190 p = frame.getDesktopIcon().getComponentPopupMenu();
191 if (p == null || p instanceof UIResource) {
192 frame.getDesktopIcon().setComponentPopupMenu(systemPopupMenu);
193 }
194 }
195 setInheritsPopupMenu(true);
196 }
197
198 protected void addSystemMenuItems(JPopupMenu menu) {
199 // PENDING: this should all be localizable!
200 JMenuItem mi = (JMenuItem)menu.add(restoreAction);
201 mi.setMnemonic('R');
202 mi = (JMenuItem)menu.add(moveAction);
203 mi.setMnemonic('M');
204 mi = (JMenuItem)menu.add(sizeAction);
205 mi.setMnemonic('S');
206 mi = (JMenuItem)menu.add(iconifyAction);
207 mi.setMnemonic('n');
208 mi = (JMenuItem)menu.add(maximizeAction);
209 mi.setMnemonic('x');
210 menu.add(new JSeparator());
211 mi = (JMenuItem)menu.add(closeAction);
212 mi.setMnemonic('C');
213 }
214
215 protected void showSystemMenu() {
216 Insets insets = frame.getInsets();
217 if (!frame.isIcon()) {
218 systemPopupMenu.show(frame, insets.left, getY() + getHeight());
219 } else {
220 systemPopupMenu.show(menuButton,
221 getX() - insets.left - insets.right,
222 getY() - systemPopupMenu.getPreferredSize().height -
223 insets.bottom - insets.top);
224 }
225 }
226
227 // SynthInternalFrameTitlePane has no UI, we'll invoke paint on it.
228 public void paintComponent(Graphics g) {
229 SynthContext context = getContext(this);
230 SynthLookAndFeel.update(context, g);
231 context.getPainter().paintInternalFrameTitlePaneBackground(context,
232 g, 0, 0, getWidth(), getHeight());
|
179 frame.setSelected(true);
180 } catch(PropertyVetoException pve) {
181 }
182 showSystemMenu();
183 }
184 });
185 JPopupMenu p = frame.getComponentPopupMenu();
186 if (p == null || p instanceof UIResource) {
187 frame.setComponentPopupMenu(systemPopupMenu);
188 }
189 if (frame.getDesktopIcon() != null) {
190 p = frame.getDesktopIcon().getComponentPopupMenu();
191 if (p == null || p instanceof UIResource) {
192 frame.getDesktopIcon().setComponentPopupMenu(systemPopupMenu);
193 }
194 }
195 setInheritsPopupMenu(true);
196 }
197
198 protected void addSystemMenuItems(JPopupMenu menu) {
199 JMenuItem mi = menu.add(restoreAction);
200 mi.setMnemonic(getButtonMnemonic("restore"));
201 mi = menu.add(moveAction);
202 mi.setMnemonic(getButtonMnemonic("move"));
203 mi = menu.add(sizeAction);
204 mi.setMnemonic(getButtonMnemonic("size"));
205 mi = menu.add(iconifyAction);
206 mi.setMnemonic(getButtonMnemonic("minimize"));
207 mi = menu.add(maximizeAction);
208 mi.setMnemonic(getButtonMnemonic("maximize"));
209 menu.add(new JSeparator());
210 mi = menu.add(closeAction);
211 mi.setMnemonic(getButtonMnemonic("close"));
212 }
213
214 private static int getButtonMnemonic(String button) {
215 try {
216 return Integer.parseInt(UIManager.getString(
217 "InternalFrameTitlePane." + button + "Button.mnemonic"));
218 } catch (NumberFormatException e) {
219 return -1;
220 }
221 }
222
223 protected void showSystemMenu() {
224 Insets insets = frame.getInsets();
225 if (!frame.isIcon()) {
226 systemPopupMenu.show(frame, insets.left, getY() + getHeight());
227 } else {
228 systemPopupMenu.show(menuButton,
229 getX() - insets.left - insets.right,
230 getY() - systemPopupMenu.getPreferredSize().height -
231 insets.bottom - insets.top);
232 }
233 }
234
235 // SynthInternalFrameTitlePane has no UI, we'll invoke paint on it.
236 public void paintComponent(Graphics g) {
237 SynthContext context = getContext(this);
238 SynthLookAndFeel.update(context, g);
239 context.getPainter().paintInternalFrameTitlePaneBackground(context,
240 g, 0, 0, getWidth(), getHeight());
|