import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
-import java.awt.Frame;
+import awt2swing.Frame;
import java.awt.HeadlessException;
-import java.awt.Label;
-import java.awt.Menu;
-import java.awt.MenuBar;
-import java.awt.Panel;
-import java.awt.PopupMenu;
+import awt2swing.Label;
+import awt2swing.Menu;
+import awt2swing.MenuBar;
+import awt2swing.MenuItem;
+import awt2swing.Panel;
+import awt2swing.PopupMenu;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.HashMap;
import java.util.Map;
+import javax.swing.JMenuItem;
+
/**
* This class implements a pattern for embedding toolbars as a panel with popups
* for situations where the system menu bar is either invisible or
*/
protected boolean embedMenuIfNeeded(Panel tobeAdjusted)
{
- MenuBar topMenuBar = getMenuBar();
+ MenuBar topMenuBar = (MenuBar) getJMenuBar();
if (topMenuBar == null)
{
return false;
{
// Build the embedded menu panel, allowing override with system font
embeddedMenu = makeEmbeddedPopupMenu(topMenuBar, true, false);
- setMenuBar(null);
+ unsetMenuBar();
// add the components to the Panel area.
add(embeddedMenu, BorderLayout.NORTH);
tobeAdjusted.setSize(getSize().width,
Panel embeddedMenu,
MouseListener clickHandler)
{
+
if (overrideFonts)
{
Font mbf = menuBar.getFont();
// loop thru
for (int mbi = 0, nMbi = menuBar.getMenuCount(); mbi < nMbi; mbi++)
{
- Menu mi = menuBar.getMenu(mbi);
+ Menu mi = (Menu) menuBar.getMenu(mbi);
Label elab = new Label(mi.getLabel());
elab.setFont(font);
// add the menu entries
int m, mSize = mi.getItemCount();
for (m = 0; m < mSize; m++)
{
- popup.add(mi.getItem(m));
+ // BH slight difference in Swing -- no actual item separator, just null
+ if (mi.getItem(m) == null)
+ popup.addSeparator();
+ else
+ popup.add(mi.getItem(m));
mSize--;
m--;
}