Native look&feel, fixed bug when closing views, other cosmetic changes
This commit is contained in:
		
							parent
							
								
									c8752a6389
								
							
						
					
					
						commit
						ae94b52a00
					
				
					 7 changed files with 59 additions and 33 deletions
				
			
		
							
								
								
									
										
											BIN
										
									
								
								TileMolester.jar
									
										
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								TileMolester.jar
									
										
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										8
									
								
								resources/TM200.xml
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								resources/TM200.xml
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
<?xml version="1.0" encoding="iso-8859-1"?>
 | 
			
		||||
<!DOCTYPE tmres SYSTEM "tmres.dtd">
 | 
			
		||||
<tmres>
 | 
			
		||||
 <bookmarks>
 | 
			
		||||
 </bookmarks>
 | 
			
		||||
 <palettes>
 | 
			
		||||
 </palettes>
 | 
			
		||||
</tmres>
 | 
			
		||||
| 
						 | 
				
			
			@ -5,6 +5,7 @@
 | 
			
		|||
  <property key="viewStatusBar" value="true"/>
 | 
			
		||||
  <property key="viewToolBar" value="true"/>
 | 
			
		||||
  <property key="maxRecentFiles" value="10"/>
 | 
			
		||||
  <property key="recentFile" value="/home/ivan/Escritorio/Otros/Apps/TM200"/>
 | 
			
		||||
  <property key="lastPath" value=""/>
 | 
			
		||||
  <property key="MenuBG" value="#151b1c"/>
 | 
			
		||||
  <property key="WindowBG" value="#222b2e"/>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -16,8 +16,12 @@
 | 
			
		|||
*
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
import javax.swing.UIManager;
 | 
			
		||||
 | 
			
		||||
import tm.ui.TMUI;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
*
 | 
			
		||||
* Tile Molester main class.
 | 
			
		||||
| 
						 | 
				
			
			@ -35,8 +39,18 @@ public class TileMolester {
 | 
			
		|||
*
 | 
			
		||||
**/
 | 
			
		||||
 | 
			
		||||
	private static String OS = System.getProperty("os.name").toLowerCase();
 | 
			
		||||
	public static Boolean isLinux = OS.indexOf("nix") >= 0 || OS.indexOf("nux") >= 0 || OS.indexOf("aix") > 0;
 | 
			
		||||
	public static Boolean isWindows = OS.indexOf("win") >= 0;
 | 
			
		||||
 | 
			
		||||
    public TileMolester() {
 | 
			
		||||
        new TMUI();
 | 
			
		||||
		try {
 | 
			
		||||
			if(isLinux) UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");	
 | 
			
		||||
			if(isWindows) UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");	
 | 
			
		||||
		} catch (Exception e) {
 | 
			
		||||
			e.printStackTrace();
 | 
			
		||||
		}
 | 
			
		||||
		new TMUI();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -72,12 +72,12 @@ public class TMStatusBar extends JPanel {
 | 
			
		|||
        add(p3);
 | 
			
		||||
//        pane.add(new JLabel("    "));   // just some whitespace
 | 
			
		||||
 | 
			
		||||
        offsetLabel.setBorder(new BevelBorder(BevelBorder.LOWERED));
 | 
			
		||||
        coordsLabel.setBorder(new BevelBorder(BevelBorder.LOWERED));
 | 
			
		||||
        palOffsetLabel.setBorder(new BevelBorder(BevelBorder.LOWERED));
 | 
			
		||||
        codecLabel.setBorder(new BevelBorder(BevelBorder.LOWERED));
 | 
			
		||||
        modeLabel.setBorder(new BevelBorder(BevelBorder.LOWERED));
 | 
			
		||||
        tilesLabel.setBorder(new BevelBorder(BevelBorder.LOWERED));
 | 
			
		||||
        //offsetLabel.setBorder(new BevelBorder(BevelBorder.LOWERED));
 | 
			
		||||
        //coordsLabel.setBorder(new BevelBorder(BevelBorder.LOWERED));
 | 
			
		||||
        //palOffsetLabel.setBorder(new BevelBorder(BevelBorder.LOWERED));
 | 
			
		||||
        //codecLabel.setBorder(new BevelBorder(BevelBorder.LOWERED));
 | 
			
		||||
        //modeLabel.setBorder(new BevelBorder(BevelBorder.LOWERED));
 | 
			
		||||
        //tilesLabel.setBorder(new BevelBorder(BevelBorder.LOWERED));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -258,7 +258,7 @@ public class TMUI extends JFrame {
 | 
			
		|||
    // Help menu
 | 
			
		||||
    private JMenu helpMenu = new JMenu("Help");
 | 
			
		||||
    private JMenuItem helpTopicsMenuItem = new JMenuItem("Help Topics");
 | 
			
		||||
    private JMenuItem tipMenuItem = new JMenuItem("Tip of the Millennium...");
 | 
			
		||||
	//private JMenuItem tipMenuItem = new JMenuItem("Tip of the Millennium..."); // Still say no to drugs, okay?
 | 
			
		||||
    private JMenuItem aboutMenuItem = new JMenuItem("About Tile Molester...");
 | 
			
		||||
 | 
			
		||||
    // button groups
 | 
			
		||||
| 
						 | 
				
			
			@ -370,7 +370,7 @@ public class TMUI extends JFrame {
 | 
			
		|||
        JComponent.setDefaultLocale(this.locale);
 | 
			
		||||
 | 
			
		||||
        // show splash screen
 | 
			
		||||
        new TMSplashScreen(this);
 | 
			
		||||
        //new TMSplashScreen(this); // No need for a splash screen, it runs immediately on modern systems
 | 
			
		||||
 | 
			
		||||
// create a translator
 | 
			
		||||
        try {
 | 
			
		||||
| 
						 | 
				
			
			@ -474,7 +474,6 @@ public class TMUI extends JFrame {
 | 
			
		|||
        // Help menu
 | 
			
		||||
        helpMenu.setText(xlate("Help"));
 | 
			
		||||
        helpTopicsMenuItem.setText(xlate("Help_Topics"));
 | 
			
		||||
        tipMenuItem.setText(xlate("Tip_of_the_Millennium"));
 | 
			
		||||
        aboutMenuItem.setText(xlate("About_Tile_Molester"));
 | 
			
		||||
 | 
			
		||||
        UIManager.put("OptionPane.yesButtonText", xlate("Yes"));
 | 
			
		||||
| 
						 | 
				
			
			@ -561,7 +560,8 @@ public class TMUI extends JFrame {
 | 
			
		|||
        // main toolbar
 | 
			
		||||
        initToolBar();
 | 
			
		||||
        initNavBar();
 | 
			
		||||
        toolBarPane.setLayout(new FlowLayout(FlowLayout.LEFT));
 | 
			
		||||
		toolBarPane.setLayout(new FlowLayout(FlowLayout.LEFT));
 | 
			
		||||
		toolBarPane.setBackground(MenuBG);
 | 
			
		||||
        toolBarPane.add(toolBar);
 | 
			
		||||
        toolBarPane.add(navBar);
 | 
			
		||||
        pane.add(toolBarPane, BorderLayout.NORTH);
 | 
			
		||||
| 
						 | 
				
			
			@ -571,7 +571,7 @@ public class TMUI extends JFrame {
 | 
			
		|||
 | 
			
		||||
        // palette pane & statusbar
 | 
			
		||||
        palettePane = new TMPalettePane(this);
 | 
			
		||||
        statusBar.setBorder(new BevelBorder(BevelBorder.LOWERED));
 | 
			
		||||
        //statusBar.setBorder(new BevelBorder(BevelBorder.LOWERED));
 | 
			
		||||
        bottomPane.setLayout(new BorderLayout());
 | 
			
		||||
        bottomPane.add(palettePane, BorderLayout.CENTER);
 | 
			
		||||
        bottomPane.add(statusBar, BorderLayout.SOUTH);
 | 
			
		||||
| 
						 | 
				
			
			@ -583,7 +583,8 @@ public class TMUI extends JFrame {
 | 
			
		|||
        JPanel barPane = new JPanel();
 | 
			
		||||
        barPane.setLayout(new GridLayout(1, 2));
 | 
			
		||||
        barPane.add(selectionToolBar);
 | 
			
		||||
        barPane.add(toolPalette);
 | 
			
		||||
		barPane.add(toolPalette);
 | 
			
		||||
		toolPane.setBackground(AsideBG);
 | 
			
		||||
        toolPane.setLayout(new BorderLayout());
 | 
			
		||||
        toolPane.add(barPane, BorderLayout.NORTH);
 | 
			
		||||
        pane.add(toolPane, BorderLayout.WEST);
 | 
			
		||||
| 
						 | 
				
			
			@ -628,6 +629,7 @@ public class TMUI extends JFrame {
 | 
			
		|||
                doExitCommand();
 | 
			
		||||
            }
 | 
			
		||||
            public void windowActivated(WindowEvent e) {
 | 
			
		||||
				setExtendedState(JFrame.NORMAL); // Hacky way to make it not run in full screen by default
 | 
			
		||||
// HACK to fix the GUI after running FCEU in fullscreen mode
 | 
			
		||||
//                int state = getExtendedState();
 | 
			
		||||
//                setExtendedState(JFrame.ICONIFIED);
 | 
			
		||||
| 
						 | 
				
			
			@ -1159,7 +1161,7 @@ public class TMUI extends JFrame {
 | 
			
		|||
        toolButtonGroup.add(replaceButton);
 | 
			
		||||
        toolButtonGroup.add(moveButton);
 | 
			
		||||
        selectButton.setSelected(true); // starting tool
 | 
			
		||||
        toolPalette.setBorder(new BevelBorder(BevelBorder.LOWERED));
 | 
			
		||||
        //toolPalette.setBorder(new BevelBorder(BevelBorder.LOWERED));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
| 
						 | 
				
			
			@ -1318,7 +1320,7 @@ public class TMUI extends JFrame {
 | 
			
		|||
        );
 | 
			
		||||
        fileMenu.add(closeAllMenuItem);
 | 
			
		||||
        //
 | 
			
		||||
        fileMenu.addSeparator();
 | 
			
		||||
        //fileMenu.addSeparator();
 | 
			
		||||
        // Save
 | 
			
		||||
        saveMenuItem.setMnemonic(KeyEvent.VK_S);
 | 
			
		||||
        saveMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, Event.CTRL_MASK));
 | 
			
		||||
| 
						 | 
				
			
			@ -2009,16 +2011,7 @@ public class TMUI extends JFrame {
 | 
			
		|||
            }
 | 
			
		||||
        );
 | 
			
		||||
        helpMenu.add(helpTopicsMenuItem);
 | 
			
		||||
        // Tip of the Millennium
 | 
			
		||||
        tipMenuItem.setMnemonic(KeyEvent.VK_M);
 | 
			
		||||
        tipMenuItem.addActionListener(
 | 
			
		||||
            new ActionListener() {
 | 
			
		||||
                public void actionPerformed(ActionEvent e) {
 | 
			
		||||
                    doTipCommand();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        );
 | 
			
		||||
        helpMenu.add(tipMenuItem);
 | 
			
		||||
        
 | 
			
		||||
        // About
 | 
			
		||||
        aboutMenuItem.setMnemonic(KeyEvent.VK_A);
 | 
			
		||||
        aboutMenuItem.addActionListener(
 | 
			
		||||
| 
						 | 
				
			
			@ -2130,8 +2123,8 @@ public class TMUI extends JFrame {
 | 
			
		|||
 | 
			
		||||
            // remove view from the FileImage and desktop
 | 
			
		||||
            img.removeView(view);
 | 
			
		||||
            view.dispose();
 | 
			
		||||
            desktop.remove(view);
 | 
			
		||||
            view.dispose();
 | 
			
		||||
            desktop.revalidate();
 | 
			
		||||
            desktop.repaint();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2239,8 +2232,8 @@ public class TMUI extends JFrame {
 | 
			
		|||
 | 
			
		||||
            // remove the view
 | 
			
		||||
            img.removeView(view);
 | 
			
		||||
            view.dispose();
 | 
			
		||||
            desktop.remove(view);
 | 
			
		||||
            view.dispose();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        buildReopenMenu();
 | 
			
		||||
| 
						 | 
				
			
			@ -2719,7 +2712,7 @@ public class TMUI extends JFrame {
 | 
			
		|||
public void doAboutCommand()
 | 
			
		||||
{
 | 
			
		||||
    JOptionPane.showMessageDialog(this,
 | 
			
		||||
            "Tile Molester v0.19\nby SnowBro 2003-2005 (v0.16)\nby Dr. MefistO 2013 (v0.17.2)\nby Mewster 2014-2015 (v0.19)", "Tile Molester",
 | 
			
		||||
            "Tile Molester v0.20\nby SnowBro 2003-2005 (v0.16)\nby Dr. MefistO 2013 (v0.17.2)\nby Mewster 2014-2015 (v0.19)\nby toruzz 2020 (v0.20)", "Tile Molester",
 | 
			
		||||
            1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -43,6 +43,9 @@ import java.util.Vector;
 | 
			
		|||
**/
 | 
			
		||||
 | 
			
		||||
public class TMView extends JInternalFrame implements ChangeListener {
 | 
			
		||||
	Color MenuBG = TMUI.MenuBG;
 | 
			
		||||
	Color WindowBG = TMUI.WindowBG;
 | 
			
		||||
	Color AsideBG = TMUI.AsideBG;
 | 
			
		||||
 | 
			
		||||
    private static int frameCount = 0;
 | 
			
		||||
    private JPanel contentPane = new JPanel();
 | 
			
		||||
| 
						 | 
				
			
			@ -77,7 +80,10 @@ public class TMView extends JInternalFrame implements ChangeListener {
 | 
			
		|||
        this.fileImage = fileImage;
 | 
			
		||||
        fileImage.addView(this);
 | 
			
		||||
        setDoubleBuffered(true);
 | 
			
		||||
        setBackground(Color.gray);
 | 
			
		||||
		//setBackground(Color.gray);
 | 
			
		||||
		setFrameIcon(null);
 | 
			
		||||
		setBackground(MenuBG);
 | 
			
		||||
 | 
			
		||||
        setDefaultCloseOperation(JInternalFrame.DO_NOTHING_ON_CLOSE);
 | 
			
		||||
 | 
			
		||||
        addInternalFrameListener(new InternalFrameAdapter() {
 | 
			
		||||
| 
						 | 
				
			
			@ -99,7 +105,8 @@ public class TMView extends JInternalFrame implements ChangeListener {
 | 
			
		|||
 | 
			
		||||
        // init UI components
 | 
			
		||||
        // the panel containing the slider and editor canvas
 | 
			
		||||
        contentPane.setBackground(Color.gray);
 | 
			
		||||
		//contentPane.setBackground(Color.gray);
 | 
			
		||||
		contentPane.setBackground(AsideBG);
 | 
			
		||||
        contentPane.setLayout(null);
 | 
			
		||||
        contentPane.setFocusable(true);
 | 
			
		||||
        contentPane.addKeyListener(new ViewKeyListener(this));
 | 
			
		||||
| 
						 | 
				
			
			@ -120,9 +127,12 @@ public class TMView extends JInternalFrame implements ChangeListener {
 | 
			
		|||
        // the slider
 | 
			
		||||
        slider.setFocusable(false);
 | 
			
		||||
        slider.setInverted(true);
 | 
			
		||||
        contentPane.add(slider);
 | 
			
		||||
        slider.setLocation(0, 0);
 | 
			
		||||
        slider.setSize(24, 384);
 | 
			
		||||
		contentPane.add(slider);
 | 
			
		||||
		slider.setForeground(AsideBG);
 | 
			
		||||
        //slider.setLocation(0, 0);
 | 
			
		||||
		//slider.setSize(24, 384);
 | 
			
		||||
		slider.setLocation(4, -14);
 | 
			
		||||
        slider.setSize(32, 424);
 | 
			
		||||
        slider.addChangeListener(this);
 | 
			
		||||
 | 
			
		||||
        // the scrollpane
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue