Files
VisualSapfor/src/Common/Visual/Menus/StyledPopupMenu.java

40 lines
1.4 KiB
Java
Raw Normal View History

2024-10-09 20:35:18 +03:00
package Common.Visual.Menus;
2024-10-14 18:41:02 +03:00
import Common.MainModule_;
2024-10-08 22:33:49 +03:00
import Common.Visual.Themes.ThemeElement;
2024-10-14 15:19:13 +03:00
import Common.Visual.UI_;
2023-09-17 22:13:42 +03:00
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) {
2024-10-14 18:41:02 +03:00
element.getComponent().setBackground(MainModule_.instance.getUI().getTheme().background);
element.getComponent().setForeground(MainModule_.instance.getUI().getTheme().foreground);
2023-09-17 22:13:42 +03:00
for (MenuElement se : element.getSubElements())
refreshTheme_r(se);
}
@Override
public void applyTheme() {
2024-10-14 18:41:02 +03:00
setBackground(MainModule_.instance.getUI().getTheme().background);
setForeground(MainModule_.instance.getUI().getTheme().foreground);
2023-09-17 22:13:42 +03:00
refreshTheme_r(this);
}
public void CheckElementsVisibility() {
applyTheme();
}
}