diff --git a/src/com/jpexs/decompiler/flash/easygui/EasyGuiMain.java b/src/com/jpexs/decompiler/flash/easygui/EasyGuiMain.java
deleted file mode 100644
index c9edfaa23..000000000
--- a/src/com/jpexs/decompiler/flash/easygui/EasyGuiMain.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright (C) 2024 JPEXS
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.jpexs.decompiler.flash.easygui;
-
-import com.jpexs.decompiler.flash.gui.AppStrings;
-import com.jpexs.decompiler.flash.gui.View;
-import com.jpexs.decompiler.flash.tags.DefineSpriteTag;
-import com.jpexs.decompiler.flash.tags.DefineVideoStreamTag;
-import com.jpexs.decompiler.flash.tags.Tag;
-import com.jpexs.decompiler.flash.tags.base.ButtonTag;
-import com.jpexs.decompiler.flash.tags.base.FontTag;
-import com.jpexs.decompiler.flash.tags.base.ImageTag;
-import com.jpexs.decompiler.flash.tags.base.MorphShapeTag;
-import com.jpexs.decompiler.flash.tags.base.ShapeTag;
-import com.jpexs.decompiler.flash.tags.base.SoundTag;
-import com.jpexs.decompiler.flash.tags.base.TextTag;
-import java.awt.GraphicsEnvironment;
-import java.io.File;
-import java.io.IOException;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import javax.swing.UIManager;
-import javax.swing.UnsupportedLookAndFeelException;
-
-/**
- *
- * @author JPEXS
- */
-public class EasyGuiMain {
- public static MainFrame mainFrame;
-
- public static void main(String[] args) {
-
- if (GraphicsEnvironment.isHeadless()) {
- System.err.println("Error: Your system does not support Graphic User Interface");
- System.exit(1);
- }
-
- System.setProperty("sun.java2d.d3d", "false");
- System.setProperty("sun.java2d.noddraw", "true");
-
- System.setProperty("sun.java2d.uiScale", "1.0");
-
- System.setProperty("sun.java2d.opengl", "false");
-
- try {
- UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
- } catch (UnsupportedLookAndFeelException | ClassNotFoundException | InstantiationException
- | IllegalAccessException ignored) {
- //ignored
- }
-
- UIManager.put("Tree.expandedIcon", View.getIcon("expand16"));
- UIManager.put("Tree.collapsedIcon", View.getIcon("collapse16"));
-
- AppStrings.setResourceClass(com.jpexs.decompiler.flash.gui.MainFrame.class);
-
-
- mainFrame = new MainFrame();
- mainFrame.setVisible(true);
-
- try {
- mainFrame.open(new File(args[1]));
- } catch (IOException ex) {
- Logger.getLogger(EasyGuiMain.class.getName()).log(Level.SEVERE, null, ex);
- } catch (InterruptedException ex) {
- Logger.getLogger(EasyGuiMain.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
-}
diff --git a/src/com/jpexs/decompiler/flash/easygui/MainFrame.java b/src/com/jpexs/decompiler/flash/easygui/EasyPanel.java
similarity index 89%
rename from src/com/jpexs/decompiler/flash/easygui/MainFrame.java
rename to src/com/jpexs/decompiler/flash/easygui/EasyPanel.java
index 797bc15a9..6b3f2327c 100644
--- a/src/com/jpexs/decompiler/flash/easygui/MainFrame.java
+++ b/src/com/jpexs/decompiler/flash/easygui/EasyPanel.java
@@ -19,10 +19,12 @@ package com.jpexs.decompiler.flash.easygui;
import com.jpexs.decompiler.flash.DefineBeforeUsageFixer;
import com.jpexs.decompiler.flash.ReadOnlyTagList;
import com.jpexs.decompiler.flash.SWF;
+import com.jpexs.decompiler.flash.gui.FasterScrollPane;
import com.jpexs.decompiler.flash.gui.ImagePanel;
import com.jpexs.decompiler.flash.gui.RegistrationPointPosition;
import com.jpexs.decompiler.flash.gui.TimelinedMaker;
import com.jpexs.decompiler.flash.gui.TransformPanel;
+import com.jpexs.decompiler.flash.gui.View;
import com.jpexs.decompiler.flash.tags.DefineSpriteTag;
import com.jpexs.decompiler.flash.tags.PlaceObject2Tag;
import com.jpexs.decompiler.flash.tags.RemoveObject2Tag;
@@ -34,9 +36,11 @@ import com.jpexs.decompiler.flash.tags.base.PlaceObjectTypeTag;
import com.jpexs.decompiler.flash.tags.base.ShapeTag;
import com.jpexs.decompiler.flash.tags.base.TextTag;
import com.jpexs.decompiler.flash.timeline.DepthState;
+import com.jpexs.decompiler.flash.timeline.Frame;
import com.jpexs.decompiler.flash.timeline.Timelined;
import com.jpexs.decompiler.flash.types.MATRIX;
import java.awt.BorderLayout;
+import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
@@ -68,9 +72,8 @@ import javax.swing.tree.DefaultMutableTreeNode;
*
* @author JPEXS
*/
-public class MainFrame extends JFrame {
+public class EasyPanel extends JPanel {
- private SWF swf;
private LibraryTreeTable libraryTreeTable;
private JSplitPane verticalSplitPane;
private JSplitPane horizontalSplitPane;
@@ -83,13 +86,9 @@ public class MainFrame extends JFrame {
private JTabbedPane rightTabbedPane;
private TransformPanel transformPanel;
- public MainFrame() {
- setTitle("JPEXS FFDec Easy GUI");
+ public EasyPanel() {
setSize(1024, 768);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
-
- Container cnt = getContentPane();
- cnt.setLayout(new BorderLayout());
+ setLayout(new BorderLayout());
stagePanel = new ImagePanel();
stagePanel.setTagNameResolver(new EasyTagNameResolver());
@@ -292,7 +291,7 @@ public class MainFrame extends JFrame {
JPanel toolbarPanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0));
undoButton = new JButton(View.getIcon("rotateanticlockwise16"));
- undoButton.setToolTipText("Undo");
+ //undoButton.setToolTipText("Undo");
undoButton.setMargin(new Insets(5, 5, 5, 5));
undoButton.addActionListener(new ActionListener() {
@Override
@@ -302,7 +301,7 @@ public class MainFrame extends JFrame {
});
redoButton = new JButton(View.getIcon("rotateclockwise16"));
- redoButton.setToolTipText("Redo");
+ //redoButton.setToolTipText("Redo");
redoButton.setMargin(new Insets(5, 5, 5, 5));
redoButton.addActionListener(new ActionListener() {
@Override
@@ -317,14 +316,14 @@ public class MainFrame extends JFrame {
undoButton.setEnabled(undoManager.canUndo());
redoButton.setEnabled(undoManager.canRedo());
if (undoManager.canUndo()) {
- undoButton.setToolTipText("Undo " + undoManager.getUndoName());
+ undoButton.setToolTipText(EasyStrings.translate("undo").replace("%action%",undoManager.getUndoName()));
} else {
- undoButton.setToolTipText("Cannot undo");
+ undoButton.setToolTipText(EasyStrings.translate("undo.cannot"));
}
if (undoManager.canRedo()) {
- redoButton.setToolTipText("Redo " + undoManager.getRedoName());
+ redoButton.setToolTipText(EasyStrings.translate("redo").replace("%action%", undoManager.getRedoName()));
} else {
- redoButton.setToolTipText("Cannot redo");
+ redoButton.setToolTipText(EasyStrings.translate("redo.cannot"));
}
}
};
@@ -369,7 +368,7 @@ public class MainFrame extends JFrame {
verticalSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, topPanel, timelinePanel);
libraryTreeTable = new LibraryTreeTable();
- JScrollPane libraryScrollPane = new JScrollPane(libraryTreeTable);
+ JScrollPane libraryScrollPane = new FasterScrollPane(libraryTreeTable);
JPanel libraryPanel = new JPanel(new BorderLayout());
libraryPanel.add(libraryScrollPane, BorderLayout.CENTER);
@@ -382,21 +381,29 @@ public class MainFrame extends JFrame {
libraryPreviewPanel.setPreferredSize(new Dimension(200, 200));
rightTabbedPane = new JTabbedPane();
- rightTabbedPane.addTab("Library", libraryPanel);
+ rightTabbedPane.addTab(EasyStrings.translate("library"), libraryPanel);
JPanel transformTab = new JPanel(new BorderLayout());
transformPanel = new TransformPanel(stagePanel, false);
- transformTab.add(new JScrollPane(transformPanel), BorderLayout.CENTER);
+ transformTab.add(new FasterScrollPane(transformPanel), BorderLayout.CENTER);
- rightTabbedPane.addTab("Transform", transformTab);
+ rightTabbedPane.addTab(EasyStrings.translate("transform"), transformTab);
rightTabbedPane.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
int depth = stagePanel.getSelectedDepth();
- if (depth != -1) {
- DepthState ds = stagePanel.getTimelined().getTimeline().getFrame(stagePanel.getFrame()).layers.get(depth);
- if (ds == null) {
+ if (stagePanel.getFrame() >= stagePanel.getTimelined().getFrameCount()) {
+ depth = -1;
+ }
+ if (depth != -1) {
+ Frame frame = stagePanel.getTimelined().getTimeline().getFrame(stagePanel.getFrame());
+ if (frame == null) {
depth = -1;
+ } else {
+ DepthState ds = frame.layers.get(depth);
+ if (ds == null) {
+ depth = -1;
+ }
}
}
transformPanel.setVisible(depth != -1);
@@ -412,8 +419,13 @@ public class MainFrame extends JFrame {
});
horizontalSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, verticalSplitPane, rightTabbedPane);
- libraryScrollPane.getViewport().setBackground(UIManager.getColor("Tree.background"));
- cnt.add(horizontalSplitPane, BorderLayout.CENTER);
+
+ if (View.isOceanic()) {
+ libraryScrollPane.getViewport().setBackground(Color.white);
+ } else {
+ libraryScrollPane.getViewport().setBackground(UIManager.getColor("Tree.background"));
+ }
+ add(horizontalSplitPane, BorderLayout.CENTER);
libraryTreeTable.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
@Override
@@ -438,18 +450,15 @@ public class MainFrame extends JFrame {
private boolean transformEnabled() {
return rightTabbedPane.getSelectedIndex() == 1;
- }
-
- public void open(File file) throws IOException, InterruptedException {
- try (FileInputStream fis = new FileInputStream(file)) {
- swf = new SWF(fis, true);
- }
-
+ }
+
+ public void setTimelined(Timelined timelined) {
+ SWF swf = timelined.getSwf();
libraryTreeTable.setSwf(swf);
stagePanel.setTimelined(swf, swf, 0, true, true, true, true, true, false, true);
stagePanel.pause();
stagePanel.gotoFrame(0);
- timelinePanel.setTimelined(swf);
+ timelinePanel.setTimelined(swf);
}
@Override
diff --git a/src/com/jpexs/decompiler/flash/easygui/View.java b/src/com/jpexs/decompiler/flash/easygui/EasyStrings.java
similarity index 68%
rename from src/com/jpexs/decompiler/flash/easygui/View.java
rename to src/com/jpexs/decompiler/flash/easygui/EasyStrings.java
index 56c8da1ae..c9c72a36f 100644
--- a/src/com/jpexs/decompiler/flash/easygui/View.java
+++ b/src/com/jpexs/decompiler/flash/easygui/EasyStrings.java
@@ -16,15 +16,20 @@
*/
package com.jpexs.decompiler.flash.easygui;
-import javax.swing.Icon;
-import javax.swing.ImageIcon;
+import java.util.ResourceBundle;
/**
*
* @author JPEXS
*/
-public class View {
- public static Icon getIcon(String name) {
- return new ImageIcon(com.jpexs.decompiler.flash.gui.View.class.getClassLoader().getResource("com/jpexs/decompiler/flash/gui/graphics/" + name + ".png"));
- }
+public class EasyStrings {
+ private static Class resourceClass;
+
+ private static ResourceBundle resourceBundle;
+
+ public static String translate(String key) {
+ ResourceBundle b = ResourceBundle.getBundle("com.jpexs.decompiler.flash.gui.locales.EasyPanel");
+ return b.getString(key);
+ }
+
}
diff --git a/src/com/jpexs/decompiler/flash/easygui/EasyTagNameResolver.java b/src/com/jpexs/decompiler/flash/easygui/EasyTagNameResolver.java
index 8043b76fd..c18de58fd 100644
--- a/src/com/jpexs/decompiler/flash/easygui/EasyTagNameResolver.java
+++ b/src/com/jpexs/decompiler/flash/easygui/EasyTagNameResolver.java
@@ -38,40 +38,40 @@ public class EasyTagNameResolver implements TagNameResolverInterface {
public String getTagName(Tag tag) {
if (tag instanceof ImageTag) {
ImageTag it = (ImageTag) tag;
- return "image " + it.getCharacterId() + it.getImageFormat().getExtension();
+ return EasyStrings.translate("item.image") + " " + it.getCharacterId() + it.getImageFormat().getExtension();
}
if (tag instanceof ShapeTag) {
ShapeTag st = (ShapeTag) tag;
- return "graphic " + st.getCharacterId();
+ return EasyStrings.translate("item.graphic") + " " + st.getCharacterId();
}
if (tag instanceof MorphShapeTag) {
MorphShapeTag mst = (MorphShapeTag) tag;
- return "shapeTween " + mst.getCharacterId();
+ return EasyStrings.translate("item.shapeTween") + " " + mst.getCharacterId();
}
if (tag instanceof TextTag) {
TextTag t = (TextTag) tag;
- return "text " + t.getCharacterId();
+ return EasyStrings.translate("item.text") + " " + t.getCharacterId();
}
if (tag instanceof FontTag) {
FontTag f = (FontTag) tag;
- return "font " + f.getCharacterId();
+ return EasyStrings.translate("item.font") + " " + f.getCharacterId();
}
if (tag instanceof DefineSpriteTag) {
DefineSpriteTag st = (DefineSpriteTag) tag;
- return "movieClip " + st.getCharacterId();
+ return EasyStrings.translate("item.movieClip") + " " + st.getCharacterId();
}
if (tag instanceof ButtonTag) {
ButtonTag bt = (ButtonTag) tag;
- return "button " + bt.getCharacterId();
+ return EasyStrings.translate("item.button") + " " + bt.getCharacterId();
}
if (tag instanceof SoundTag) {
SoundTag st = (SoundTag) tag;
- return "sound" + (st.getCharacterId() == -1 ? "" : " " + st.getCharacterId());
+ return EasyStrings.translate("item.sound") + (st.getCharacterId() == -1 ? "" : " " + st.getCharacterId());
}
if (tag instanceof DefineVideoStreamTag) {
DefineVideoStreamTag vt = (DefineVideoStreamTag) tag;
- return "video " + vt.getCharacterId();
+ return EasyStrings.translate("item.video") + " " + vt.getCharacterId();
}
- return "unknown";
+ return EasyStrings.translate("item.uknown");
}
}
diff --git a/src/com/jpexs/decompiler/flash/easygui/LibraryTreeTable.java b/src/com/jpexs/decompiler/flash/easygui/LibraryTreeTable.java
index 14b987beb..2ea10988c 100644
--- a/src/com/jpexs/decompiler/flash/easygui/LibraryTreeTable.java
+++ b/src/com/jpexs/decompiler/flash/easygui/LibraryTreeTable.java
@@ -17,6 +17,7 @@
package com.jpexs.decompiler.flash.easygui;
import com.jpexs.decompiler.flash.SWF;
+import com.jpexs.decompiler.flash.gui.View;
import com.jpexs.decompiler.flash.tags.DefineSpriteTag;
import com.jpexs.decompiler.flash.tags.DefineVideoStreamTag;
import com.jpexs.decompiler.flash.tags.Tag;
@@ -30,6 +31,7 @@ import com.jpexs.decompiler.flash.tags.base.SoundTag;
import com.jpexs.decompiler.flash.tags.base.TextTag;
import de.javagl.treetable.JTreeTable;
import de.javagl.treetable.TreeTableModel;
+import java.awt.Color;
import java.awt.Component;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
@@ -37,6 +39,7 @@ import javax.swing.JLabel;
import javax.swing.JTree;
import javax.swing.ListSelectionModel;
import javax.swing.event.TreeModelListener;
+import javax.swing.plaf.basic.BasicTableUI;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.TreePath;
@@ -46,10 +49,7 @@ import javax.swing.tree.TreePath;
* @author JPEXS
*/
public class LibraryTreeTable extends JTreeTable {
-
- private SWF swf;
- private LibraryTreeTableModel model;
-
+
public LibraryTreeTable() {
super(new LibraryTreeTableModel(null));
getTree().setCellRenderer(new LibraryTreeCellRenderer());
@@ -98,10 +98,18 @@ public class LibraryTreeTable extends JTreeTable {
setTransferHandler(new CharacterTagTransferHandler());
setDragEnabled(true);
setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
+ setUI(new BasicTableUI());
+
+ setRowHeight(18);
+ getTree().setRowHeight(18);
+
+ if (View.isOceanic()) {
+ setBackground(Color.WHITE);
+ getTree().setBackground(Color.WHITE);
+ }
}
public void setSwf(SWF swf) {
- this.swf = swf;
setTreeTableModel(new LibraryTreeTableModel(swf));
}
@@ -162,6 +170,14 @@ public class LibraryTreeTable extends JTreeTable {
label.setText(tagNameResolver.getTagName((Tag) object));
}
}
+ if (View.isOceanic()) {
+ if (selected) {
+ label.setBackground(getBackgroundSelectionColor());
+ } else {
+ label.setBackground(Color.white);
+ }
+ label.setOpaque(true);
+ }
return label;
}
}
@@ -173,15 +189,15 @@ public class LibraryTreeTable extends JTreeTable {
public LibraryTreeTableModel(SWF swf) {
DefaultMutableTreeNode root = new DefaultMutableTreeNode("SWF");
- DefaultMutableTreeNode imagesNode = new DefaultMutableTreeNode("images");
- DefaultMutableTreeNode graphicsNode = new DefaultMutableTreeNode("graphics");
- DefaultMutableTreeNode shapeTweensNode = new DefaultMutableTreeNode("shapeTweens");
- DefaultMutableTreeNode textsNode = new DefaultMutableTreeNode("texts");
- DefaultMutableTreeNode fontsNode = new DefaultMutableTreeNode("fonts");
- DefaultMutableTreeNode movieClipsNode = new DefaultMutableTreeNode("movieClips");
- DefaultMutableTreeNode buttonsNode = new DefaultMutableTreeNode("buttons");
- DefaultMutableTreeNode soundsNode = new DefaultMutableTreeNode("sounds");
- DefaultMutableTreeNode videosNode = new DefaultMutableTreeNode("videos");
+ DefaultMutableTreeNode imagesNode = new DefaultMutableTreeNode(EasyStrings.translate("library.folder.images"));
+ DefaultMutableTreeNode graphicsNode = new DefaultMutableTreeNode(EasyStrings.translate("library.folder.graphics"));
+ DefaultMutableTreeNode shapeTweensNode = new DefaultMutableTreeNode(EasyStrings.translate("library.folder.shapeTweens"));
+ DefaultMutableTreeNode textsNode = new DefaultMutableTreeNode(EasyStrings.translate("library.folder.texts"));
+ DefaultMutableTreeNode fontsNode = new DefaultMutableTreeNode(EasyStrings.translate("library.folder.fonts"));
+ DefaultMutableTreeNode movieClipsNode = new DefaultMutableTreeNode(EasyStrings.translate("library.folder.movieClips"));
+ DefaultMutableTreeNode buttonsNode = new DefaultMutableTreeNode(EasyStrings.translate("library.folder.buttons"));
+ DefaultMutableTreeNode soundsNode = new DefaultMutableTreeNode(EasyStrings.translate("library.folder.sounds"));
+ DefaultMutableTreeNode videosNode = new DefaultMutableTreeNode(EasyStrings.translate("library.folder.videos"));
this.root = root;
@@ -260,9 +276,9 @@ public class LibraryTreeTable extends JTreeTable {
public String getColumnName(int column) {
switch (column) {
case 0:
- return "Name";
+ return EasyStrings.translate("library.header.name");
case 1:
- return "AS Linkage";
+ return EasyStrings.translate("library.header.asLinkage");
default:
return null;
}
diff --git a/src/com/jpexs/decompiler/flash/easygui/TimelineBodyPanel.java b/src/com/jpexs/decompiler/flash/easygui/TimelineBodyPanel.java
index 7971df077..f67cee4ee 100644
--- a/src/com/jpexs/decompiler/flash/easygui/TimelineBodyPanel.java
+++ b/src/com/jpexs/decompiler/flash/easygui/TimelineBodyPanel.java
@@ -48,8 +48,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;
diff --git a/src/com/jpexs/decompiler/flash/gui/ImagePanel.java b/src/com/jpexs/decompiler/flash/gui/ImagePanel.java
index 588c22fd1..f6fe6b100 100644
--- a/src/com/jpexs/decompiler/flash/gui/ImagePanel.java
+++ b/src/com/jpexs/decompiler/flash/gui/ImagePanel.java
@@ -3056,7 +3056,11 @@ public final class ImagePanel extends JPanel implements MediaDisplay {
}
}
- RGB backgroundColor = timeline.getFrame(frame).backgroundColor;
+ Frame fr = timeline.getFrame(frame);
+ if (fr == null) {
+ return image;
+ }
+ RGB backgroundColor = fr.backgroundColor;
if (backgroundColor != null) {
Graphics2D g = (Graphics2D) image.getBufferedImage().getGraphics();
g.setPaint(backgroundColor.toColor());
@@ -3070,8 +3074,8 @@ public final class ImagePanel extends JPanel implements MediaDisplay {
gg.setPaint(Color.green);
gg.setTransform(AffineTransform.getTranslateInstance(0, 0));
DepthState ds = null;
- if (selectedDepth > -1 && timeline.getFrameCount() > frame) {
- ds = timeline.getFrame(frame).layers.get(selectedDepth);
+ if (selectedDepth > -1 && timeline.getFrameCount() > frame && fr != null) {
+ ds = fr.layers.get(selectedDepth);
}
if (ds != null && freeTransformDepth == -1) {
diff --git a/src/com/jpexs/decompiler/flash/gui/Main.java b/src/com/jpexs/decompiler/flash/gui/Main.java
index 94e2b0cfd..73a0c5292 100644
--- a/src/com/jpexs/decompiler/flash/gui/Main.java
+++ b/src/com/jpexs/decompiler/flash/gui/Main.java
@@ -44,7 +44,6 @@ import com.jpexs.decompiler.flash.configuration.SwfSpecificConfiguration;
import com.jpexs.decompiler.flash.configuration.SwfSpecificCustomConfiguration;
import com.jpexs.decompiler.flash.console.CommandLineArgumentParser;
import com.jpexs.decompiler.flash.console.ContextMenuTools;
-import com.jpexs.decompiler.flash.easygui.EasyGuiMain;
import com.jpexs.decompiler.flash.exporters.modes.ExeExportMode;
import com.jpexs.decompiler.flash.gfx.GfxConvertor;
import com.jpexs.decompiler.flash.gui.debugger.DebugAdapter;
@@ -2918,11 +2917,7 @@ public class Main {
* @throws IOException On error
*/
public static void main(String[] args) throws IOException {
- decodeLaunch5jArgs(args);
- if (args.length > 0 && args[0].equals("-easy")) {
- EasyGuiMain.main(args);
- return;
- }
+ decodeLaunch5jArgs(args);
setSessionLoaded(false);
diff --git a/src/com/jpexs/decompiler/flash/gui/MainPanel.java b/src/com/jpexs/decompiler/flash/gui/MainPanel.java
index a0b1fbaee..beef88195 100644
--- a/src/com/jpexs/decompiler/flash/gui/MainPanel.java
+++ b/src/com/jpexs/decompiler/flash/gui/MainPanel.java
@@ -45,6 +45,7 @@ import com.jpexs.decompiler.flash.configuration.CustomConfigurationKeys;
import com.jpexs.decompiler.flash.configuration.SwfSpecificCustomConfiguration;
import com.jpexs.decompiler.flash.dumpview.DumpInfo;
import com.jpexs.decompiler.flash.dumpview.DumpInfoSwfNode;
+import com.jpexs.decompiler.flash.easygui.EasyPanel;
import com.jpexs.decompiler.flash.exporters.BinaryDataExporter;
import com.jpexs.decompiler.flash.exporters.Font4Exporter;
import com.jpexs.decompiler.flash.exporters.FontExporter;
@@ -321,7 +322,7 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
private final JPanel welcomePanel;
- private final TimelineViewPanel timelineViewPanel;
+ private final EasyPanel easyPanel;
private final MainFrameStatusPanel statusPanel;
@@ -1300,12 +1301,12 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
welcomePanel = createWelcomePanel();
add(welcomePanel, BorderLayout.CENTER);
- timelineViewPanel = new TimelineViewPanel();
+ easyPanel = new EasyPanel();
contentPanel = new JPanel(new CardLayout());
contentPanel.add(welcomePanel, WELCOME_PANEL);
contentPanel.add(splitPane1, SPLIT_PANE1);
- contentPanel.add(timelineViewPanel, TIMELINE_PANEL);
+ contentPanel.add(easyPanel, TIMELINE_PANEL);
add(contentPanel);
showContentPanelCard(WELCOME_PANEL);
@@ -5701,11 +5702,11 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se
item = ((TagScript) item).getTag();
}
if (item instanceof Timelined) {
- timelineViewPanel.setTimelined((Timelined) item);
+ easyPanel.setTimelined((Timelined) item);
} else if (item instanceof Frame) {
- timelineViewPanel.setTimelined(((Frame) item).timeline.timelined);
+ easyPanel.setTimelined(((Frame) item).timeline.timelined);
} else {
- timelineViewPanel.setTimelined(swf);
+ easyPanel.setTimelined(swf);
}
showContentPanelCard(TIMELINE_PANEL);
return true;
diff --git a/src/com/jpexs/decompiler/flash/gui/locales/EasyPanel.properties b/src/com/jpexs/decompiler/flash/gui/locales/EasyPanel.properties
new file mode 100644
index 000000000..88b052a28
--- /dev/null
+++ b/src/com/jpexs/decompiler/flash/gui/locales/EasyPanel.properties
@@ -0,0 +1,49 @@
+# Copyright (C) 2024 JPEXS
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+library = Library
+
+library.folder.images = images
+library.folder.graphics = graphics
+library.folder.shapeTweens = shapeTweens
+library.folder.texts = texts
+library.folder.fonts = fonts
+library.folder.movieClips = movieClips
+library.folder.buttons = buttons
+library.folder.sounds = sounds
+library.folder.videos = videos
+
+library.header.name = Name
+library.header.asLinkage = AS Linkage
+
+item.image = image
+item.graphic = graphic
+item.shapeTween = shapeTween
+item.text = text
+item.font = font
+item.movieClip = movieClip
+item.button = button
+item.sound = sound
+item.video = video
+item.uknown = unknown
+
+undo = Undo %action%
+undo.cannot = Cannot undo
+redo = Redo %action%
+redo.cannot = Cannot redo
+
+transform = Transform
+
+