diff --git a/trunk/build_common.xml b/trunk/build_common.xml index 7210e3a71..2576f9480 100644 --- a/trunk/build_common.xml +++ b/trunk/build_common.xml @@ -3,7 +3,7 @@ Builds project - + diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/GraphFrame.java b/trunk/src/com/jpexs/decompiler/flash/gui/GraphFrame.java index 748a7f640..dfd4ef8ed 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/GraphFrame.java +++ b/trunk/src/com/jpexs/decompiler/flash/gui/GraphFrame.java @@ -234,15 +234,30 @@ public class GraphFrame extends AppFrame { return w; } } + GraphPanel gp; - + int scrollBarWidth; + int scrollBarHeight; + int frameWidthDiff; + int frameHeightDiff; + public GraphFrame(Graph graph, String name) { setSize(500, 500); Container cnt = getContentPane(); cnt.setLayout(new BorderLayout()); gp = new GraphPanel(graph); setTitle(translate("graph") + " " + name); - cnt.add(new JScrollPane(gp)); + JScrollPane scrollPane = new JScrollPane(gp); + scrollBarWidth = scrollPane.getVerticalScrollBar().getPreferredSize().width; + scrollBarHeight = scrollPane.getHorizontalScrollBar().getPreferredSize().height; + cnt.add(scrollPane, BorderLayout.CENTER); + pack(); + + Dimension size = getSize(); + Dimension innerSize = getContentPane().getSize(); + + frameWidthDiff = size.width - innerSize.width; + frameHeightDiff = size.height - innerSize.height; View.setWindowIcon(this); @@ -255,24 +270,40 @@ public class GraphFrame extends AppFrame { Dimension screen = getToolkit().getScreenSize(); Dimension dim = new Dimension(0, 0); Dimension panDim = gp.getPreferredSize(); - if (panDim.width < screen.width) { - dim.width = panDim.width + 10; + // add some magic constants + panDim = new Dimension(panDim.width + 3, panDim.height + 2); + + boolean tooHigh = false; + boolean tooWide = false; + + if (panDim.width + frameWidthDiff < screen.width) { + dim.width = panDim.width; } else { dim.width = screen.width; + tooWide = true; } - if (panDim.height < screen.height) { - dim.height = panDim.height + 10; + if (panDim.height + frameHeightDiff < screen.height) { + dim.height = panDim.height; } else { dim.height = screen.height; + tooHigh = true; } + + if (tooWide) { + dim.height += scrollBarHeight; + dim.height = Math.min(dim.height, screen.height); + } + if (tooHigh) { + dim.width += scrollBarWidth; + dim.width = Math.min(dim.width, screen.width); + } + setVisibleSize(dim); View.centerScreen(this); } private void setVisibleSize(Dimension dim) { - Insets insets = this.getInsets(); - setSize(new Dimension(insets.left + insets.right + dim.width, - insets.top + insets.bottom + dim.height)); + setSize(new Dimension(dim.width + frameWidthDiff, dim.height + frameHeightDiff)); } private void drawArrow(Graphics g, int x1, int y1, int x2, int y2) { diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/Main.java b/trunk/src/com/jpexs/decompiler/flash/gui/Main.java index 17650b1a4..0ffe5e43b 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/Main.java +++ b/trunk/src/com/jpexs/decompiler/flash/gui/Main.java @@ -51,7 +51,9 @@ import java.security.PrivilegedAction; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; +import java.util.HashMap; import java.util.Locale; +import java.util.Map; import java.util.Properties; import java.util.Scanner; import java.util.logging.ConsoleHandler; @@ -66,6 +68,7 @@ import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.SwingWorker; import javax.swing.UIManager; +import javax.swing.UnsupportedLookAndFeelException; import javax.swing.filechooser.FileFilter; /** @@ -558,9 +561,9 @@ public class Main { } public static void initLang() { - if (Configuration.containsConfig("locale")) { + if (Configuration.containsConfig("locale")) { Locale.setDefault(Locale.forLanguageTag((String) Configuration.getConfig("locale", "en"))); - } + } UIManager.put("OptionPane.okButtonText", AppStrings.translate("button.ok")); UIManager.put("OptionPane.yesButtonText", AppStrings.translate("button.yes")); UIManager.put("OptionPane.noButtonText", AppStrings.translate("button.no")); diff --git a/trunk/src/com/jpexs/decompiler/flash/gui/MainFrame.java b/trunk/src/com/jpexs/decompiler/flash/gui/MainFrame.java index 00a6d54a4..d6535ae6b 100644 --- a/trunk/src/com/jpexs/decompiler/flash/gui/MainFrame.java +++ b/trunk/src/com/jpexs/decompiler/flash/gui/MainFrame.java @@ -2192,6 +2192,7 @@ public class MainFrame extends AppRibbonFrame implements ActionListener, TreeSel char c = newchars.charAt(i); if (oldchars.indexOf((int) c) == -1) { f.addCharacter(swf.tags, c, fontSelection.getSelectedItem().toString()); + oldchars += c; } } fontAddCharactersField.setText("");