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

39 lines
1.3 KiB
Java
Raw Normal View History

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