/* * DetachedMenu.java * (FScape) * * Copyright (c) 2001-2016 Hanns Holger Rutz. All rights reserved. * * This software is published under the GNU General Public License v3+ * * * For further information, please contact Hanns Holger Rutz at * contact@sciss.de * * * Changelog: * 21-May-05 completely simplified */ package de.sciss.fscape.gui; import javax.swing.*; import javax.swing.border.CompoundBorder; import javax.swing.border.EmptyBorder; import javax.swing.border.EtchedBorder; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; /** * Combination of a JLabel and a JPopupMenu which * provides a window based menu on MacOS. */ public class DetachedMenu extends JLabel { // -------- private variables -------- private final JPopupMenu pop; // -------- public methods -------- public DetachedMenu(String name, final JPopupMenu pop) { super(name, CENTER); setBorder(new CompoundBorder(new EtchedBorder(), new EmptyBorder(0, 16, 1, 16))); this.pop = pop; addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { pop.show(e.getComponent(), 1, e.getComponent().getHeight() - 1); } }); } public void setName(String labName) { setText(labName); } public JPopupMenu getStrip() { return pop; } public String getName() { return getText(); } }