mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-09-25 16:00:46 +00:00
Added: #2370 Show/Hide guides, lock guides, clear guides actions from icon menu
This commit is contained in:
@@ -19,6 +19,7 @@ package com.jpexs.decompiler.flash.gui.player;
|
||||
import com.jpexs.decompiler.flash.configuration.Configuration;
|
||||
import com.jpexs.decompiler.flash.configuration.ConfigurationItemChangeListener;
|
||||
import com.jpexs.decompiler.flash.gui.AppStrings;
|
||||
import com.jpexs.decompiler.flash.gui.PopupButton;
|
||||
import com.jpexs.decompiler.flash.gui.View;
|
||||
import com.jpexs.decompiler.flash.gui.abc.SnapOptionsButton;
|
||||
import java.awt.FlowLayout;
|
||||
@@ -27,8 +28,11 @@ import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.Objects;
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JCheckBoxMenuItem;
|
||||
import javax.swing.JLabel;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JPopupMenu;
|
||||
import javax.swing.JToggleButton;
|
||||
|
||||
/**
|
||||
@@ -38,8 +42,9 @@ import javax.swing.JToggleButton;
|
||||
public class ZoomPanel extends JPanel implements MediaDisplayListener {
|
||||
|
||||
private MediaDisplay display;
|
||||
private JButton zoomFitButton;
|
||||
private SnapOptionsButton snapOptionsButton;
|
||||
private final JButton zoomFitButton;
|
||||
private final SnapOptionsButton snapOptionsButton;
|
||||
private PopupButton guidesOptionsButton;
|
||||
private JToggleButton rulerButton;
|
||||
private final JLabel percentLabel = new JLabel("100%");
|
||||
private boolean zoomToFit = false;
|
||||
@@ -63,19 +68,42 @@ public class ZoomPanel extends JPanel implements MediaDisplayListener {
|
||||
JButton zoomNoneButton = new JButton(View.getIcon("zoomnone16"));
|
||||
zoomNoneButton.addActionListener(this::zoomNoneButtonActionPerformed);
|
||||
zoomNoneButton.setToolTipText(AppStrings.translate("button.zoomnone.hint"));
|
||||
|
||||
|
||||
rulerButton = new JToggleButton(View.getIcon("ruler16"));
|
||||
rulerButton.addActionListener(this::rulerActionPerformed);
|
||||
rulerButton.setToolTipText(AppStrings.translate("button.ruler.hint"));
|
||||
rulerButton.setSelected(Configuration.showRuler.get());
|
||||
|
||||
|
||||
Configuration.showRuler.addListener(new ConfigurationItemChangeListener<Boolean>() {
|
||||
@Override
|
||||
public void configurationItemChanged(Boolean newValue) {
|
||||
rulerButton.setSelected(newValue);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
guidesOptionsButton = new PopupButton(View.getIcon("guides16")) {
|
||||
@Override
|
||||
protected JPopupMenu getPopupMenu() {
|
||||
JPopupMenu menu = new JPopupMenu();
|
||||
JCheckBoxMenuItem showGuidesMenuItem = new JCheckBoxMenuItem(AppStrings.translate("guides_options.show"));
|
||||
showGuidesMenuItem.setSelected(Configuration.showGuides.get());
|
||||
showGuidesMenuItem.addActionListener(ZoomPanel.this::guidesShowActionPerformed);
|
||||
JCheckBoxMenuItem lockGuidesMenuItem = new JCheckBoxMenuItem(AppStrings.translate("guides_options.lock"));
|
||||
lockGuidesMenuItem.setSelected(Configuration.lockGuides.get());
|
||||
lockGuidesMenuItem.addActionListener(ZoomPanel.this::guidesLockActionPerformed);
|
||||
JMenuItem clearGuidesMenuItem = new JMenuItem(AppStrings.translate("guides_options.clear"));
|
||||
clearGuidesMenuItem.addActionListener(ZoomPanel.this::guidesClearActionPerformed);
|
||||
|
||||
menu.add(showGuidesMenuItem);
|
||||
menu.add(lockGuidesMenuItem);
|
||||
menu.add(clearGuidesMenuItem);
|
||||
|
||||
return menu;
|
||||
}
|
||||
};
|
||||
|
||||
guidesOptionsButton.setToolTipText(AppStrings.translate("button.guides_options.hint"));
|
||||
|
||||
snapOptionsButton = new SnapOptionsButton();
|
||||
|
||||
setLayout(new FlowLayout());
|
||||
@@ -85,16 +113,31 @@ public class ZoomPanel extends JPanel implements MediaDisplayListener {
|
||||
add(zoomNoneButton);
|
||||
add(zoomFitButton);
|
||||
add(rulerButton);
|
||||
add(guidesOptionsButton);
|
||||
add(snapOptionsButton);
|
||||
|
||||
display.addEventListener(this);
|
||||
}
|
||||
|
||||
private void guidesShowActionPerformed(ActionEvent evt) {
|
||||
JCheckBoxMenuItem source = (JCheckBoxMenuItem) evt.getSource();
|
||||
Configuration.showGuides.set(source.isSelected());
|
||||
}
|
||||
|
||||
private void guidesLockActionPerformed(ActionEvent evt) {
|
||||
JCheckBoxMenuItem source = (JCheckBoxMenuItem) evt.getSource();
|
||||
Configuration.lockGuides.set(source.isSelected());
|
||||
}
|
||||
|
||||
private void guidesClearActionPerformed(ActionEvent evt) {
|
||||
display.clearGuides();
|
||||
}
|
||||
|
||||
private void rulerActionPerformed(ActionEvent evt) {
|
||||
JToggleButton toggleButton = (JToggleButton) evt.getSource();
|
||||
Configuration.showRuler.set(toggleButton.isSelected());
|
||||
}
|
||||
|
||||
|
||||
private void zoomInButtonActionPerformed(ActionEvent evt) {
|
||||
double currentRealZoom = getRealZoom();
|
||||
if (currentRealZoom >= MAX_ZOOM) {
|
||||
@@ -178,6 +221,7 @@ public class ZoomPanel extends JPanel implements MediaDisplayListener {
|
||||
percentLabel.setVisible(zoom != null);
|
||||
snapOptionsButton.setVisible(display.canUseSnapping());
|
||||
rulerButton.setVisible(display.canHaveRuler());
|
||||
guidesOptionsButton.setVisible(display.canHaveRuler());
|
||||
Zoom currentZoom = new Zoom();
|
||||
currentZoom.fit = zoomToFit;
|
||||
currentZoom.value = realZoom;
|
||||
|
||||
Reference in New Issue
Block a user