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();
|
|
|
|
|
}
|
|
|
|
|
}
|