From b96b694e87d8a2b66c85322ddf3b574ccd0449cc Mon Sep 17 00:00:00 2001 From: bancika Date: Tue, 1 Dec 2020 15:40:42 +0100 Subject: [PATCH] add action bar to mac os as a separate component --- .../src/org/diylc/presenter/update.xml | 16 ++++++++++++++ diylc/diylc-swing/build.xml | 2 +- .../src/org/diylc/swing/gui/MainFrame.java | 21 ++++++++++--------- .../swing/gui/actionbar/ActionBarPlugin.java | 16 +++++++++++++- 4 files changed, 43 insertions(+), 12 deletions(-) diff --git a/diylc/diylc-core/src/org/diylc/presenter/update.xml b/diylc/diylc-core/src/org/diylc/presenter/update.xml index 975952f2..3b1a8dab 100644 --- a/diylc/diylc-core/src/org/diylc/presenter/update.xml +++ b/diylc/diylc-core/src/org/diylc/presenter/update.xml @@ -3241,5 +3241,21 @@ https://github.com/bancika/diy-layout-creator/releases + + + 4 + 11 + 0 + + 2020-11-19 00:00:00.000 CET + + + + NEW_FEATURE + macOS: added quick action toolbar that was already available for other platforms + + + https://github.com/bancika/diy-layout-creator/releases + diff --git a/diylc/diylc-swing/build.xml b/diylc/diylc-swing/build.xml index bbae8479..6fefedc7 100644 --- a/diylc/diylc-swing/build.xml +++ b/diylc/diylc-swing/build.xml @@ -10,7 +10,7 @@ - + diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java b/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java index b884b6ce..2aa83a37 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/MainFrame.java @@ -249,25 +249,26 @@ public class MainFrame extends JFrame implements ISwingUI { Container c = new Container(); c.setLayout(new BorderLayout()); - centerPanel = new JPanel(new BorderLayout()); + centerPanel = new JPanel(); + centerPanel.setLayout(new BoxLayout(centerPanel, BoxLayout.Y_AXIS)); c.add(centerPanel, BorderLayout.CENTER); - topPanel = new JPanel(); - topPanel.setLayout(new BoxLayout(topPanel, BoxLayout.Y_AXIS)); - c.add(topPanel, BorderLayout.NORTH); - leftPanel = new JPanel(); leftPanel.setLayout(new BoxLayout(leftPanel, BoxLayout.X_AXIS)); - c.add(leftPanel, BorderLayout.WEST); + c.add(leftPanel, BorderLayout.WEST); + + rightPanel = new JPanel(); + rightPanel.setLayout(new BoxLayout(rightPanel, BoxLayout.X_AXIS)); + c.add(rightPanel, BorderLayout.EAST); + + topPanel = new JPanel(); + topPanel.setLayout(new BoxLayout(topPanel, BoxLayout.Y_AXIS)); + c.add(topPanel, BorderLayout.NORTH); bottomPanel = new JPanel(); bottomPanel.setLayout(new BoxLayout(bottomPanel, BoxLayout.Y_AXIS)); c.add(bottomPanel, BorderLayout.SOUTH); - rightPanel = new JPanel(); - rightPanel.setLayout(new BoxLayout(rightPanel, BoxLayout.X_AXIS)); - c.add(rightPanel, BorderLayout.EAST); - setContentPane(c); } diff --git a/diylc/diylc-swing/src/org/diylc/swing/gui/actionbar/ActionBarPlugin.java b/diylc/diylc-swing/src/org/diylc/swing/gui/actionbar/ActionBarPlugin.java index e7a6a9d0..7ac1d3a2 100644 --- a/diylc/diylc-swing/src/org/diylc/swing/gui/actionbar/ActionBarPlugin.java +++ b/diylc/diylc-swing/src/org/diylc/swing/gui/actionbar/ActionBarPlugin.java @@ -32,9 +32,12 @@ import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRootPane; +import javax.swing.SwingConstants; import javax.swing.SwingUtilities; +import org.apache.log4j.Logger; import org.diylc.appframework.miscutils.Utils; +import org.diylc.common.BadPositionException; import org.diylc.common.EventType; import org.diylc.common.IComponentTransformer; import org.diylc.common.IPlugIn; @@ -43,6 +46,7 @@ import org.diylc.swing.images.IconLoader; import org.diylc.lang.LangUtil; import org.diylc.swing.ActionFactory; import org.diylc.swing.ISwingUI; +import org.diylc.swing.plugins.canvas.CanvasPlugin; import org.diylc.swing.plugins.help.HelpMenuPlugin; /** @@ -51,6 +55,8 @@ import org.diylc.swing.plugins.help.HelpMenuPlugin; * @author Branislav Stojkovic */ public class ActionBarPlugin implements IPlugIn { + + private static final Logger LOG = Logger.getLogger(ActionBarPlugin.class); private IPlugInPort plugInPort; private ISwingUI swingUI; @@ -176,7 +182,15 @@ public class ActionBarPlugin implements IPlugIn { @Override public void connect(IPlugInPort plugInPort) { this.plugInPort = plugInPort; - swingUI.injectMenuComponent(getActionPanel()); + if (Utils.isMac()) { + try { + swingUI.injectGUIComponent(getActionPanel(), SwingConstants.CENTER, false); + } catch (BadPositionException e) { + LOG.error("Could not inject action bar plugin", e); + } + } + else + swingUI.injectMenuComponent(getActionPanel()); } @Override