| .. | .. | 
|---|
| 41 | 41 |      JFrame frame; | 
|---|
| 42 | 42 |       | 
|---|
| 43 | 43 |      static ObjEditor theFrame; | 
|---|
 | 44 | +  | 
|---|
 | 45 | +    public cGridBag GetSeparator()  | 
|---|
 | 46 | +    {  | 
|---|
 | 47 | +        cGridBag separator = new cGridBag();  | 
|---|
 | 48 | +        separator.add(new JSeparator());  | 
|---|
 | 49 | +        separator.preferredHeight = 5;  | 
|---|
 | 50 | +        return separator;  | 
|---|
 | 51 | +    }  | 
|---|
| 44 | 52 |       | 
|---|
| 45 | 53 |      cButton GetButton(String name, boolean border) | 
|---|
| 46 | 54 |      { | 
|---|
| 47 | 55 |          ImageIcon icon = GetIcon(name); | 
|---|
| 48 | 56 |          return new cButton(icon, border); | 
|---|
 | 57 | +    }  | 
|---|
 | 58 | +  | 
|---|
 | 59 | +    cLabel GetLabel(String name, boolean border)  | 
|---|
 | 60 | +    {  | 
|---|
 | 61 | +        //ImageIcon icon = GetIcon(name);  | 
|---|
 | 62 | +        return new cLabel(GetImage(name), border);  | 
|---|
| 49 | 63 |      } | 
|---|
| 50 | 64 |   | 
|---|
| 51 | 65 |      cToggleButton GetToggleButton(String name, boolean border) | 
|---|
| .. | .. | 
|---|
| 80 | 94 |   | 
|---|
| 81 | 95 |              javax.swing.ImageIcon icon = new javax.swing.ImageIcon(image); | 
|---|
| 82 | 96 |              return icon; | 
|---|
 | 97 | +        }  | 
|---|
 | 98 | +        catch (Exception e)  | 
|---|
 | 99 | +        {  | 
|---|
 | 100 | +            return null;  | 
|---|
 | 101 | +        }  | 
|---|
 | 102 | +    }  | 
|---|
 | 103 | +      | 
|---|
 | 104 | +    BufferedImage GetImage(String name)  | 
|---|
 | 105 | +    {  | 
|---|
 | 106 | +        try  | 
|---|
 | 107 | +        {  | 
|---|
 | 108 | +            BufferedImage image = javax.imageio.ImageIO.read(getClass().getClassLoader().getResourceAsStream(name));  | 
|---|
 | 109 | +  | 
|---|
 | 110 | +            return image;  | 
|---|
| 83 | 111 |          } | 
|---|
| 84 | 112 |          catch (Exception e) | 
|---|
| 85 | 113 |          { | 
|---|
| .. | .. | 
|---|
| 1522 | 1550 |          //tmp.setName("Edit"); | 
|---|
| 1523 | 1551 |          objectPanel.add(materialPanel); | 
|---|
| 1524 | 1552 |          objectPanel.setIconAt(0, GetIcon("icons/material.png")); | 
|---|
 | 1553 | +        objectPanel.setToolTipTextAt(0, "Material panel");  | 
|---|
 | 1554 | +      | 
|---|
| 1525 | 1555 |  //        JPanel north = new JPanel(new BorderLayout()); | 
|---|
| 1526 | 1556 |  //        north.setName("Edit"); | 
|---|
| 1527 | 1557 |  //        north.add(ctrlPanel, BorderLayout.NORTH); | 
|---|
| 1528 | 1558 |  //        objectPanel.add(north); | 
|---|
| 1529 | 1559 |          objectPanel.add(editPanel); | 
|---|
| 1530 | 1560 |          objectPanel.setIconAt(1, GetIcon("icons/write.png")); | 
|---|
 | 1561 | +        objectPanel.setToolTipTextAt(1, "Edit panel");  | 
|---|
| 1531 | 1562 |           | 
|---|
| 1532 | 1563 |          //if (Globals.ADVANCED) | 
|---|
| 1533 | 1564 |              objectPanel.add(infoPanel); | 
|---|
| 1534 | 1565 |          objectPanel.setIconAt(2, GetIcon("icons/info.png")); | 
|---|
 | 1566 | +        objectPanel.setToolTipTextAt(2, "Info panel");  | 
|---|
| 1535 | 1567 |           | 
|---|
| 1536 | 1568 |          objectPanel.add(XYZPanel); | 
|---|
| 1537 | 1569 |          objectPanel.setIconAt(3, GetIcon("icons/XYZ.png")); | 
|---|
 | 1570 | +        objectPanel.setToolTipTextAt(3, "XYZ/RGB panel");  | 
|---|
| 1538 | 1571 |           | 
|---|
| 1539 | 1572 |          objectPanel.add(toolboxPanel); | 
|---|
| 1540 | 1573 |          objectPanel.setIconAt(4, GetIcon("icons/primitives.png")); | 
|---|
 | 1574 | +        objectPanel.setToolTipTextAt(4, "Objects/backgrounds panel");  | 
|---|
| 1541 | 1575 |   | 
|---|
| 1542 | 1576 |          /* | 
|---|
| 1543 | 1577 |          aConstraints.gridx = 0; | 
|---|
| .. | .. | 
|---|
| 1634 | 1668 |          /**/ | 
|---|
| 1635 | 1669 |   | 
|---|
| 1636 | 1670 |          bigThree = new cGridBag(); | 
|---|
| 1637 |  | -        bigThree.addComponent(centralPanel);  | 
|---|
| 1638 | 1671 |          bigThree.addComponent(scenePanel); | 
|---|
 | 1672 | +        bigThree.addComponent(centralPanel);  | 
|---|
| 1639 | 1673 |          //bigThree.addComponent(XYZPanel); | 
|---|
| 1640 | 1674 |           | 
|---|
| 1641 | 1675 |  //                // SIDE EFFECT!!! | 
|---|
| .. | .. | 
|---|
| 1677 | 1711 |          frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); | 
|---|
| 1678 | 1712 |          frame.addWindowListener(new WindowAdapter() | 
|---|
| 1679 | 1713 |          { | 
|---|
| 1680 |  | -  | 
|---|
| 1681 | 1714 |              public void windowClosing(WindowEvent e) | 
|---|
| 1682 | 1715 |              { | 
|---|
| 1683 | 1716 |                  Close(); | 
|---|
| .. | .. | 
|---|
| 1739 | 1772 |          //ctrlPanel.add(new JLabel("----------------------------------")); // , aConstraints); | 
|---|
| 1740 | 1773 |   | 
|---|
| 1741 | 1774 |          cGridBag colorSection = new cGridBag().setVertical(true); | 
|---|
 | 1775 | +  | 
|---|
 | 1776 | +        cGridBag huepanel = new cGridBag();  | 
|---|
 | 1777 | +            cGridBag huelabel = new cGridBag();  | 
|---|
 | 1778 | +            huelabel.add(GetLabel("icons/hue.png", false));  | 
|---|
 | 1779 | +            huelabel.preferredWidth = 20;  | 
|---|
 | 1780 | +            huepanel.add(new cGridBag()); // Label  | 
|---|
 | 1781 | +            huepanel.add(huelabel); // Field/slider  | 
|---|
 | 1782 | +              | 
|---|
 | 1783 | +        huepanel.preferredHeight = 7;  | 
|---|
 | 1784 | +  | 
|---|
 | 1785 | +        colorSection.add(huepanel);  | 
|---|
| 1742 | 1786 |           | 
|---|
| 1743 | 1787 |          cGridBag color = new cGridBag(); | 
|---|
| 1744 |  | -                color.add(colorLabel = new JLabel("Color/hue")); // , aConstraints);  | 
|---|
| 1745 |  | -                colorLabel.setHorizontalAlignment(SwingConstants.TRAILING);  | 
|---|
| 1746 |  | -                color.add(colorField = new cNumberSlider(this, 0.001, 1, -0.5)); // , aConstraints);  | 
|---|
 | 1788 | +          | 
|---|
 | 1789 | +            color.add(colorLabel = new JLabel("Color/hue")); // , aConstraints);  | 
|---|
 | 1790 | +            colorLabel.setHorizontalAlignment(SwingConstants.TRAILING);  | 
|---|
 | 1791 | +            color.add(colorField = new cNumberSlider(this, 0.001, 1)); // , aConstraints);  | 
|---|
 | 1792 | +  | 
|---|
| 1747 | 1793 |          //colorField.preferredWidth = 200; | 
|---|
| 1748 | 1794 |          colorSection.add(color); | 
|---|
| 1749 | 1795 |   | 
|---|
| 1750 | 1796 |          cGridBag modulation = new cGridBag(); | 
|---|
| 1751 | 1797 |                  modulation.add(modulationLabel = new JLabel("Saturation")); // , aConstraints); | 
|---|
| 1752 | 1798 |                  modulationLabel.setHorizontalAlignment(SwingConstants.TRAILING); | 
|---|
| 1753 |  | -                modulation.add(modulationField = new cNumberSlider(this, 0.001, 1, -0.5)); // , aConstraints);  | 
|---|
 | 1799 | +                modulation.add(modulationField = new cNumberSlider(this, 0.001, 1)); // , aConstraints);  | 
|---|
| 1754 | 1800 |          colorSection.add(modulation); | 
|---|
| 1755 | 1801 |   | 
|---|
 | 1802 | +        cGridBag opacity = new cGridBag();  | 
|---|
 | 1803 | +                opacity.add(opacityLabel = new JLabel("Opacity")); // , aConstraints);  | 
|---|
 | 1804 | +                opacityLabel.setHorizontalAlignment(SwingConstants.TRAILING);  | 
|---|
 | 1805 | +                opacity.add(opacityField = new cNumberSlider(this, 0.001, 1)); // , aConstraints);  | 
|---|
 | 1806 | +        colorSection.add(opacity);  | 
|---|
 | 1807 | +  | 
|---|
 | 1808 | +        colorSection.add(GetSeparator());  | 
|---|
 | 1809 | +          | 
|---|
| 1756 | 1810 |          cGridBag texture = new cGridBag(); | 
|---|
| 1757 | 1811 |                  texture.add(textureLabel = new JLabel("Texture")); // , aConstraints); | 
|---|
| 1758 | 1812 |                  textureLabel.setHorizontalAlignment(SwingConstants.TRAILING); | 
|---|
| 1759 | 1813 |                  texture.add(textureField = new cNumberSlider(this, 0.001, 1, -0.5)); // , aConstraints); | 
|---|
| 1760 | 1814 |          colorSection.add(texture); | 
|---|
| 1761 | 1815 |   | 
|---|
| 1762 |  | -        panel.add(new JSeparator());  | 
|---|
 | 1816 | +        panel.add(GetSeparator());  | 
|---|
| 1763 | 1817 |           | 
|---|
| 1764 | 1818 |          panel.add(colorSection); | 
|---|
| 1765 | 1819 |           | 
|---|
| .. | .. | 
|---|
| 1815 | 1869 |                  shadowbias.add(shadowbiasField = new cNumberSlider(this, 0.001, 50, -1)); // , aConstraints); | 
|---|
| 1816 | 1870 |          diffuseSection.add(shadowbias); | 
|---|
| 1817 | 1871 |   | 
|---|
| 1818 |  | -        panel.add(new JSeparator());  | 
|---|
 | 1872 | +        panel.add(GetSeparator());  | 
|---|
| 1819 | 1873 |           | 
|---|
| 1820 | 1874 |          panel.add(diffuseSection); | 
|---|
| 1821 | 1875 |           | 
|---|
| .. | .. | 
|---|
| 1878 | 1932 |          specularSection.add(anisoV); | 
|---|
| 1879 | 1933 |   | 
|---|
| 1880 | 1934 |   | 
|---|
| 1881 |  | -        panel.add(new JSeparator());  | 
|---|
 | 1935 | +        panel.add(GetSeparator());  | 
|---|
| 1882 | 1936 |           | 
|---|
| 1883 | 1937 |          panel.add(specularSection); | 
|---|
| 1884 | 1938 |           | 
|---|
| .. | .. | 
|---|
| 1903 | 1957 |                  backlitLabel.setHorizontalAlignment(SwingConstants.TRAILING); | 
|---|
| 1904 | 1958 |                  backlit.add(backlitField = new cNumberSlider(this, 0.001, 50, -1)); // , aConstraints); | 
|---|
| 1905 | 1959 |          colorSection.add(backlit); | 
|---|
| 1906 |  | -  | 
|---|
| 1907 |  | -        cGridBag opacity = new cGridBag();  | 
|---|
| 1908 |  | -                opacity.add(opacityLabel = new JLabel("Opacity")); // , aConstraints);  | 
|---|
| 1909 |  | -                opacityLabel.setHorizontalAlignment(SwingConstants.TRAILING);  | 
|---|
| 1910 |  | -                opacity.add(opacityField = new cNumberSlider(this, 0.001, 1, -0.5)); // , aConstraints);  | 
|---|
| 1911 |  | -        colorSection.add(opacity);  | 
|---|
| 1912 | 1960 |   | 
|---|
| 1913 | 1961 |          //panel.add(new JSeparator()); | 
|---|
| 1914 | 1962 |           | 
|---|
| .. | .. | 
|---|
| 1954 | 2002 |                  opacityPower.add(opacityPowerField = new cNumberSlider(this, 0.0, 10 /*10 dec 2013*/)); // , aConstraints); | 
|---|
| 1955 | 2003 |          textureSection.add(opacityPower); | 
|---|
| 1956 | 2004 |   | 
|---|
| 1957 |  | -        panel.add(new JSeparator());  | 
|---|
 | 2005 | +        panel.add(GetSeparator());  | 
|---|
| 1958 | 2006 |           | 
|---|
| 1959 | 2007 |          panel.add(textureSection); | 
|---|
| 1960 | 2008 |           | 
|---|
| .. | .. | 
|---|
| 3644 | 3692 |           | 
|---|
| 3645 | 3693 |          cRadio tab = GetCurrentTab(); | 
|---|
| 3646 | 3694 |           | 
|---|
| 3647 |  | -        byte[] compress = CompressCopy();  | 
|---|
 | 3695 | +        byte[] compress = CompressCopy(); // Saved version. No need for "Replace".  | 
|---|
| 3648 | 3696 |           | 
|---|
| 3649 | 3697 |          boolean thesame = false; | 
|---|
| 3650 | 3698 |           | 
|---|
| .. | .. | 
|---|
| 3711 | 3759 |           | 
|---|
| 3712 | 3760 |          copy.clear(); | 
|---|
| 3713 | 3761 |           | 
|---|
 | 3762 | +        copy.skyboxname = obj.skyboxname;  | 
|---|
 | 3763 | +        copy.skyboxext = obj.skyboxext;  | 
|---|
 | 3764 | +                  | 
|---|
| 3714 | 3765 |          for (int i=0; i<obj.Size(); i++) | 
|---|
| 3715 | 3766 |          { | 
|---|
| 3716 | 3767 |              copy.add(obj.get(i)); | 
|---|