Added theme support for ContextMenu
This commit is contained in:
		| @@ -10,6 +10,7 @@ import java.util.Map; | ||||
|  | ||||
| import javax.swing.*; | ||||
|  | ||||
| import envoy.client.data.Settings; | ||||
| import envoy.client.ui.Theme; | ||||
|  | ||||
| /** | ||||
| @@ -60,7 +61,10 @@ public class ContextMenu extends JPopupMenu { | ||||
| 	 *               {@link ContextMenu} | ||||
| 	 * @since Envoy v0.1-beta | ||||
| 	 */ | ||||
| 	public ContextMenu(Component parent) { setInvoker(parent); } | ||||
| 	public ContextMenu(Component parent) { | ||||
| 		setInvoker(parent); | ||||
| 		setOpaque(true); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * @param label            the string that a UI may use to display as a title | ||||
| @@ -80,13 +84,23 @@ public class ContextMenu extends JPopupMenu { | ||||
| 	 */ | ||||
| 	public ContextMenu(String label, Component parent, Map<String, ActionListener> itemsWithActions, Map<String, Icon> itemIcons, | ||||
| 			Map<String, Integer> itemMnemonics) { | ||||
| 		super(label); | ||||
| 		this(label); | ||||
| 		setInvoker(parent); | ||||
| 		this.items		= (itemsWithActions != null) ? itemsWithActions : items; | ||||
| 		this.icons		= (itemIcons != null) ? itemIcons : icons; | ||||
| 		this.mnemonics	= (itemMnemonics != null) ? itemMnemonics : mnemonics; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * @param label the string that a UI may use to display as a title for the | ||||
| 	 *              pop-up menu. | ||||
| 	 * @since Envoy v0.1-beta | ||||
| 	 */ | ||||
| 	public ContextMenu(String label) { | ||||
| 		super(label); | ||||
| 		setOpaque(true); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Prepares the PopupMenu to be displayed. Should only be used once all map | ||||
| 	 * values have been set. | ||||
| @@ -110,21 +124,16 @@ public class ContextMenu extends JPopupMenu { | ||||
| 			else // normal JMenuItem wanted | ||||
| 				item = new JMenuItem(text, icons.containsKey(text) ? icons.get(text) : null); | ||||
| 			item.addActionListener(action); | ||||
| 			item.setOpaque(true); | ||||
| 			if (mnemonics.containsKey(text)) item.setMnemonic(mnemonics.get(text)); | ||||
| 			add(item); | ||||
| 		}); | ||||
| 		getInvoker().addMouseListener(getShowingListener()); | ||||
| 		applyTheme(Settings.getInstance().getCurrentTheme()); | ||||
| 		built = true; | ||||
| 		return this; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * @param label the string that a UI may use to display as a title for the | ||||
| 	 *              pop-up menu. | ||||
| 	 * @since Envoy v0.1-beta | ||||
| 	 */ | ||||
| 	public ContextMenu(String label) { super(label); } | ||||
|  | ||||
| 	private MouseAdapter getShowingListener() { | ||||
| 		return new MouseAdapter() { | ||||
|  | ||||
| @@ -240,7 +249,7 @@ public class ContextMenu extends JPopupMenu { | ||||
| 	 * @since Envoy v0.1-beta | ||||
| 	 */ | ||||
| 	protected void applyTheme(Theme theme) { | ||||
| 		setBackground(theme.getInteractableBackgroundColor()); | ||||
| 		setBackground(theme.getCellColor()); | ||||
| 		setForeground(theme.getTextColor()); | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 delvh
					delvh