Files
VisualSapfor/src/Common/Visual/Menus/StyledPopupMenu.java
2024-10-14 18:41:02 +03:00

40 lines
1.4 KiB
Java

package Common.Visual.Menus;
import Common.MainModule_;
import Common.Visual.Themes.ThemeElement;
import Common.Visual.UI_;
import javax.swing.*;
import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;
public class StyledPopupMenu extends JPopupMenu implements ThemeElement {
public StyledPopupMenu() {
addPopupMenuListener(new PopupMenuListener() {
@Override
public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
CheckElementsVisibility();
}
@Override
public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
}
@Override
public void popupMenuCanceled(PopupMenuEvent e) {
}
});
}
private void refreshTheme_r(MenuElement element) {
element.getComponent().setBackground(MainModule_.instance.getUI().getTheme().background);
element.getComponent().setForeground(MainModule_.instance.getUI().getTheme().foreground);
for (MenuElement se : element.getSubElements())
refreshTheme_r(se);
}
@Override
public void applyTheme() {
setBackground(MainModule_.instance.getUI().getTheme().background);
setForeground(MainModule_.instance.getUI().getTheme().foreground);
refreshTheme_r(this);
}
public void CheckElementsVisibility() {
applyTheme();
}
}