Skip to content

Commit

Permalink
Some UI improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
KlemenDEV committed Mar 31, 2024
1 parent 6d01e98 commit 07e1809
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 19 deletions.
5 changes: 2 additions & 3 deletions src/main/java/net/mcreator/ui/component/JColor.java
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,7 @@ public JColor(Window window, boolean allowNullColor, boolean allowTransparency)
colorText = new JTextField(9);
colorText.setEditable(false);
colorText.setPreferredSize(new Dimension(0, 24));
colorText.setBorder(
BorderFactory.createCompoundBorder(BorderFactory.createMatteBorder(0, 0, 0, 3, getBackground()),
BorderFactory.createMatteBorder(1, 1, 1, 0, getBackground())));
colorText.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));
colorText.setHorizontalAlignment(JTextField.CENTER);
colorText.addMouseListener(new MouseAdapter() {
@Override public void mouseClicked(MouseEvent e) {
Expand All @@ -89,6 +87,7 @@ public JColor(Window window, boolean allowNullColor, boolean allowTransparency)

JPanel controls = PanelUtils.totalCenterInPanel(
allowNullColor ? PanelUtils.gridElements(1, 2, 2, 0, edit, remove) : edit);
controls.setBorder(BorderFactory.createEmptyBorder(0, 3, 0, 0));
controls.setOpaque(true);
controls.setBackground(getBackground());

Expand Down
39 changes: 23 additions & 16 deletions src/main/java/net/mcreator/ui/dialogs/ProgressDialog.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

package net.mcreator.ui.dialogs;

import com.formdev.flatlaf.ui.FlatLineBorder;
import net.mcreator.ui.MCreator;
import net.mcreator.ui.component.SquareLoaderIcon;
import net.mcreator.ui.component.util.ComponentUtils;
Expand All @@ -43,38 +44,42 @@ public class ProgressDialog extends MCreatorDialog {
public ProgressDialog(Window w, String title) {
super(w, title, true);

setLayout(new BorderLayout(0, 0));

if (w instanceof MCreator mcreatorInst)
this.mcreator = mcreatorInst;

setBackground(Theme.current().getBackgroundColor());

setClosable(false);
setUndecorated(true);
setCursor(new Cursor(Cursor.WAIT_CURSOR));

JPanel contentPane = new JPanel() {
@Override protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(UIManager.getColor("PopupMenu.background"));
g2d.fillRoundRect(0, 0, getWidth(), getHeight(), 15, 15);
super.paintComponent(g);
}
};
contentPane.setBorder(
new FlatLineBorder(new Insets(0, 0, 0, 0), UIManager.getColor("PopupMenu.borderColor"), 1, 15));
contentPane.setLayout(new BorderLayout(0, 0));
contentPane.setOpaque(false);
setContentPane(contentPane);

setBackground(new Color(0, 0, 0, 0));

titleLabel = new JLabel(title);
titleLabel.setBackground(Theme.current().getAltBackgroundColor());
titleLabel.setOpaque(true);
titleLabel.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createMatteBorder(8, 5, 0, 0, Theme.current().getBackgroundColor()),
BorderFactory.createMatteBorder(0, 4, 0, 0, Theme.current().getAltBackgroundColor())));
ComponentUtils.deriveFont(titleLabel, 13);
titleLabel.setBorder(BorderFactory.createEmptyBorder(15, 10, 5, 10));
ComponentUtils.deriveFont(titleLabel, 14);
add("North", titleLabel);

progressUnits.setCellRenderer(new Render());
progressUnits.setOpaque(false);
progressUnits.setBorder(null);

JScrollPane panes = new JScrollPane(progressUnits);
panes.setOpaque(false);
panes.getViewport().setOpaque(false);
panes.setPreferredSize(new Dimension(600, 280));
panes.setBackground(Theme.current().getBackgroundColor());
panes.setBorder(BorderFactory.createMatteBorder(4, 8, 4, 4, Theme.current().getBackgroundColor()));

((JComponent) getContentPane()).setBorder(
BorderFactory.createMatteBorder(0, 5, 0, 0, Theme.current().getAltBackgroundColor()));
panes.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 5));

add("Center", panes);

Expand Down Expand Up @@ -189,9 +194,11 @@ private static class Render extends JPanel implements ListCellRenderer<ProgressU
public Component getListCellRendererComponent(JList<? extends ProgressUnit> list, ProgressUnit ma, int index,
boolean isSelected, boolean cellHasFocus) {
removeAll();
setOpaque(false);
setLayout(new BorderLayout());

JPanel stap = new JPanel(new BorderLayout(2, 0));
stap.setOpaque(false);

JLabel status = new JLabel();
status.setText(ma.name);
Expand Down
7 changes: 7 additions & 0 deletions src/main/java/net/mcreator/ui/laf/themes/ThemeManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import com.formdev.flatlaf.IntelliJTheme;
import com.google.gson.Gson;
import net.mcreator.io.FileIO;
import net.mcreator.io.OS;
import net.mcreator.plugin.PluginLoader;
import net.mcreator.preferences.PreferencesManager;
import net.mcreator.ui.laf.LafUtil;
Expand Down Expand Up @@ -54,6 +55,12 @@ public class ThemeManager {
*/
public static void applySelectedTheme() {
try {
if (OS.getOS() == OS.LINUX) {
// We need to call this to enable the window decorations on Linux
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
}

Theme theme = Theme.current();

Map<String, String> flatLafDefaults = new HashMap<>();
Expand Down

0 comments on commit 07e1809

Please sign in to comment.