From 89b25e7cc97f6fe221dfd41c4d463500f8a31bc1 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Tue, 25 Jun 2019 23:58:09 -0400 Subject: [PATCH] Edit panel pin state. --- ObjEditor.java | 129 +++++++++++++++++++++++++++++++++++++----- 1 files changed, 112 insertions(+), 17 deletions(-) diff --git a/ObjEditor.java b/ObjEditor.java index a1683f8..d10d05b 100644 --- a/ObjEditor.java +++ b/ObjEditor.java @@ -52,6 +52,19 @@ } } + 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 @@ -194,7 +207,7 @@ objEditor.ctrlPanel.remove(namePanel); - if (!GroupEditor.allparams) + if (!allparams) return; // objEditor.ctrlPanel.remove(liveCB); @@ -324,6 +337,11 @@ return frame.action(event, obj); } + // Cannot work without static + static boolean allparams = true; + + static java.util.Vector<Object3D> listUI = new java.util.Vector<Object3D>(); + void SetupMenu() { frame.setMenuBar(menuBar = new MenuBar()); @@ -370,6 +388,32 @@ 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; +// } +// if (objectPanel.getSelectedIndex() == objectPanel.indexOfTab("Edit")) +// { +// if (listUI.size() == 0) +// EditSelection(false); +// } + + refreshContents(false); // To refresh Info tab + } + }; + objectPanel.addChangeListener(changeListener); + toolbarPanel = new JPanel(); toolbarPanel.setName("Toolbar"); treePanel = new cGridBag(); @@ -384,9 +428,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(); @@ -659,6 +706,8 @@ boolean maximized; + cButton fullscreenLayout; + void Minimize() { frame.setState(Frame.ICONIFIED); @@ -684,7 +733,9 @@ void ToggleFullScreen() { - if (CameraPane.FULLSCREEN) + cameraView.ToggleFullScreen(); + + if (!CameraPane.FULLSCREEN) { device.setFullScreenWindow(null); //frame.setVisible(false); @@ -720,12 +771,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() @@ -866,7 +915,12 @@ JCheckBox speedupCB; JCheckBox rewindCB; JCheckBox flipVCB; + + cCheckBox toggleTextureCB; + cCheckBox toggleSwitchCB; + JComboBox texresMenu; + JButton resetButton; JButton stepButton; JButton stepAllButton; @@ -1058,7 +1112,7 @@ oe.ctrlPanel.Return(); - if (!GroupEditor.allparams) + if (!allparams) return; setupPanel = new cGridBag().setVertical(false); @@ -1401,6 +1455,7 @@ // objectPanel.add(north); objectPanel.add(editPanel); objectPanel.add(infoPanel); + objectPanel.add(toolboxPanel); /* aConstraints.gridx = 0; @@ -1409,7 +1464,7 @@ aConstraints.gridy += 1; aConstraints.gridwidth = 1; mainPanel.add(objectPanel, aConstraints); - */ + */ scrollpane = new JScrollPane(mainPanel, ScrollPaneConstants.// VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDED, @@ -1426,9 +1481,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"); @@ -1436,6 +1489,8 @@ tabbedPane.add(optionsPanel); + tabbedPane.add(FSPane = new cFileSystemPane(this)); + scenePanel.add(tabbedPane); /* @@ -1528,6 +1583,8 @@ // aConstraints = gbc; // (GridBagConstraints) GrafreeD.clone(gbc); frame.setSize(1280, 860); + + frame.validate(); frame.setVisible(true); cameraView.requestFocusInWindow(); @@ -2847,6 +2904,8 @@ void SetMaterial(Object3D object) { + latestObject = object; + cMaterial mat = object.material; if (mat == null) @@ -3032,7 +3091,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(); @@ -3071,7 +3130,7 @@ frame.validate(); return; - } else if (event.getSource() == toggleSwitchItem) + } else if (event.getSource() == toggleSwitchItem || event.getSource() == toggleSwitchCB) { cameraView.ToggleSwitch(); cameraView.repaint(); @@ -3478,6 +3537,8 @@ tab.graphs[i] = null; } + SetUndoStates(); + // test save if (false) { @@ -3500,6 +3561,8 @@ void CopyChanged(Object3D obj) { + SetUndoStates(); + boolean temp = CameraPane.SWITCH; CameraPane.SWITCH = false; @@ -3537,6 +3600,17 @@ } refreshContents(); + } + + cButton undoButton; + cButton redoButton; + + void SetUndoStates() + { + cRadio tab = GetCurrentTab(); + + undoButton.setEnabled(tab.undoindex > 0); + redoButton.setEnabled(tab.graphs[tab.undoindex + 1] != null); } public void Undo() @@ -3726,7 +3800,7 @@ assert false; } - void EditSelection() + void EditSelection(boolean newWindow) { } @@ -4221,7 +4295,7 @@ void makeSomething(Object3D thing, boolean resetmodel) // deselect) { - if (Globals.SAVEONMAKE) + if (Globals.SAVEONMAKE) // && resetmodel) Save(); //Tween.set(thing, 0).target(1).start(tweenManager); //Tween.to(thing, 0, 0.5f).target(0).start(tweenManager); @@ -4309,6 +4383,12 @@ { ResetModel(); Select(thing.GetTreePath(), true, false); // unselect... false); + + if (thing.Size() == 0) + { + //EditSelection(false); + } + refreshContents(); } @@ -4710,6 +4790,8 @@ String filename = browser.getFile(); if (filename != null && filename.length() > 0) { + if (!filename.endsWith(".gfd")) + filename += ".gfd"; lastname = browser.getDirectory() + filename; save(); } @@ -4903,18 +4985,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; @@ -5029,7 +5124,7 @@ cNumberSlider fogField; JLabel opacityPowerLabel; cNumberSlider opacityPowerField; - JTree jTree; + cTree jTree; //ObjectUI parent; cNumberSlider normalpushField; -- Gitblit v1.6.2