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 + +