From 26b24f5b623e709a88e91e9bce0864f9d5e8f084 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Mon, 24 Jun 2019 23:09:17 -0400 Subject: [PATCH] Fix full screen layout --- ObjEditor.java | 149 +++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 135 insertions(+), 14 deletions(-) diff --git a/ObjEditor.java b/ObjEditor.java index 9fcd4b1..c8ad401 100644 --- a/ObjEditor.java +++ b/ObjEditor.java @@ -4,6 +4,7 @@ import java.awt.*; import java.awt.event.*; +import java.awt.image.BufferedImage; import javax.swing.*; import javax.swing.event.*; import javax.swing.text.*; @@ -37,6 +38,65 @@ JFrame frame; static ObjEditor theFrame; + + cButton GetButton(String name, boolean border) + { + try + { + ImageIcon icon = GetIcon(name); + return new cButton(icon, border); + } + catch (Exception e) + { + return new cButton(name, border); + } + } + + cToggleButton GetToggleButton(String name, boolean border) + { + try + { + ImageIcon icon = GetIcon(name); + return new cToggleButton(icon, border); + } + catch (Exception e) + { + return new cToggleButton(name, border); + } + } + + cCheckBox GetCheckBox(String name, boolean border) + { + try + { + ImageIcon icon = GetIcon(name); + return new cCheckBox(icon, border); + } + catch (Exception e) + { + return new cCheckBox(name, border); + } + } + + private ImageIcon GetIcon(String name) throws IOException + { + BufferedImage image = javax.imageio.ImageIO.read(getClass().getClassLoader().getResourceAsStream(name)); + + if (image.getWidth() != 24 && image.getHeight() != 24) + { + BufferedImage resized = new BufferedImage(24, 24, image.getType()); + Graphics2D g = resized.createGraphics(); + g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); + //g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + g.drawImage(image, 0, 0, 24, 24, 0, 0, image.getWidth(), image.getHeight(), null); + g.dispose(); + + image = resized; + } + + javax.swing.ImageIcon icon = new javax.swing.ImageIcon(image); + return icon; + } // SCRIPT @@ -323,6 +383,27 @@ closeItem.addActionListener(this); objectPanel = new JTabbedPane(); + + ChangeListener changeListener = new ChangeListener() + { + public void stateChanged(ChangeEvent changeEvent) + { +// if (objectPanel.getSelectedIndex() == objectPanel.indexOfTab("Material") && !materialFlushed) +// { +// if (latestObject != null) +// { +// refreshContents(true); +// SetMaterial(latestObject); +// } +// +// materialFlushed = true; +// } + + refreshContents(false); // To refresh Info tab + } + }; + objectPanel.addChangeListener(changeListener); + toolbarPanel = new JPanel(); toolbarPanel.setName("Toolbar"); treePanel = new cGridBag(); @@ -337,9 +418,12 @@ editPanel.add(editCommandsPanel); editPanel.add(ctrlPanel); - materialPanel = new cGridBag().setVertical(true); + toolboxPanel = new cGridBag().setVertical(false); + toolboxPanel.setName("Toolbox"); + materialPanel = new cGridBag().setVertical(true); materialPanel.setName("Material"); + /*JTextPane*/ infoarea = createTextPane(); doc = infoarea.getStyledDocument(); @@ -612,6 +696,8 @@ boolean maximized; + cButton fullscreenLayout; + void Minimize() { frame.setState(Frame.ICONIFIED); @@ -637,7 +723,9 @@ void ToggleFullScreen() { - if (CameraPane.FULLSCREEN) + cameraView.ToggleFullScreen(); + + if (!CameraPane.FULLSCREEN) { device.setFullScreenWindow(null); //frame.setVisible(false); @@ -673,12 +761,10 @@ // X frame.getContentPane().add(/*"Center",*/bigThree); framePanel.setDividerLocation(0); - radio.layout = twoButton; + radio.layout = fullscreenLayout; radio.layout.doClick(); //frame.setVisible(true); } - - cameraView.ToggleFullScreen(); } private JTextPane createTextPane() @@ -819,7 +905,12 @@ JCheckBox speedupCB; JCheckBox rewindCB; JCheckBox flipVCB; + + cCheckBox toggleTextureCB; + cCheckBox toggleSwitchCB; + JComboBox texresMenu; + JButton resetButton; JButton stepButton; JButton stepAllButton; @@ -1348,6 +1439,7 @@ //JScrollPane tmp = new JScrollPane(ctrlPanel, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); //tmp.setName("Edit"); objectPanel.add(materialPanel); + objectPanel.add(toolboxPanel); // JPanel north = new JPanel(new BorderLayout()); // north.setName("Edit"); // north.add(ctrlPanel, BorderLayout.NORTH); @@ -1379,9 +1471,7 @@ JTabbedPane tabbedPane = new JTabbedPane(); tabbedPane.add(scrollpane); - tabbedPane.add(FSPane = new cFileSystemPane(this)); - - optionsPanel = new cGridBag().setVertical(true); + optionsPanel = new cGridBag().setVertical(false); optionsPanel.setName("Options"); @@ -1389,6 +1479,8 @@ tabbedPane.add(optionsPanel); + tabbedPane.add(FSPane = new cFileSystemPane(this)); + scenePanel.add(tabbedPane); /* @@ -1481,6 +1573,8 @@ // aConstraints = gbc; // (GridBagConstraints) GrafreeD.clone(gbc); frame.setSize(1280, 860); + + frame.validate(); frame.setVisible(true); cameraView.requestFocusInWindow(); @@ -2800,6 +2894,8 @@ void SetMaterial(Object3D object) { + latestObject = object; + cMaterial mat = object.material; if (mat == null) @@ -2985,7 +3081,7 @@ cameraView.ToggleDL(); cameraView.repaint(); return; - } else if (event.getSource() == toggleTextureItem) + } else if (event.getSource() == toggleTextureItem || event.getSource() == toggleTextureCB) { cameraView.ToggleTexture(); // june 2013 copy.HardTouch(); @@ -3024,7 +3120,7 @@ frame.validate(); return; - } else if (event.getSource() == toggleSwitchItem) + } else if (event.getSource() == toggleSwitchItem || event.getSource() == toggleSwitchCB) { cameraView.ToggleSwitch(); cameraView.repaint(); @@ -3408,6 +3504,8 @@ public void Save() { + System.err.println("Save"); + cRadio tab = GetCurrentTab(); boolean temp = CameraPane.SWITCH; @@ -3492,6 +3590,8 @@ public void Undo() { + System.err.println("Undo"); + cRadio tab = GetCurrentTab(); if (tab.undoindex == 0) @@ -3675,7 +3775,7 @@ assert false; } - void EditSelection() + void EditSelection(boolean newWindow) { } @@ -4170,7 +4270,8 @@ void makeSomething(Object3D thing, boolean resetmodel) // deselect) { - Save(); + if (Globals.SAVEONMAKE) // && resetmodel) + Save(); //Tween.set(thing, 0).target(1).start(tweenManager); //Tween.to(thing, 0, 0.5f).target(0).start(tweenManager); // if (thing instanceof GenericJointDemo) @@ -4257,6 +4358,12 @@ { ResetModel(); Select(thing.GetTreePath(), true, false); // unselect... false); + + if (thing.Size() == 0) + { + //EditSelection(false); + } + refreshContents(); } @@ -4479,6 +4586,7 @@ if (readobj != null) { + if (Globals.SAVEONMAKE) Save(); try { @@ -4850,18 +4958,31 @@ CheckboxMenuItem togglePaintItem; JSplitPane mainPanel; JScrollPane scrollpane; + JPanel toolbarPanel; + cGridBag treePanel; + JPanel radioPanel; ButtonGroup buttonGroup; - cGridBag ctrlPanel; + + cGridBag toolboxPanel; cGridBag materialPanel; + cGridBag ctrlPanel; + JScrollPane infoPanel; + cGridBag optionsPanel; + JTabbedPane objectPanel; + boolean materialFlushed; + Object3D latestObject; + cGridBag XYZPanel; + JSplitPane gridPanel; JSplitPane bigPanel; + cGridBag bigThree; cGridBag scenePanel; cGridBag centralPanel; @@ -4976,7 +5097,7 @@ cNumberSlider fogField; JLabel opacityPowerLabel; cNumberSlider opacityPowerField; - JTree jTree; + cTree jTree; //ObjectUI parent; cNumberSlider normalpushField; -- Gitblit v1.6.2