From 8088590686a45e71278f9a52bb9cc37943dc0c37 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Sun, 23 Jun 2019 08:18:35 -0400 Subject: [PATCH] Full-screen mode. --- ObjEditor.java | 99 +++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 90 insertions(+), 9 deletions(-) diff --git a/ObjEditor.java b/ObjEditor.java index 877fe87..9be4ae9 100644 --- a/ObjEditor.java +++ b/ObjEditor.java @@ -36,6 +36,8 @@ GroupEditor callee; JFrame frame; + static ObjEditor theFrame; + // SCRIPT transient JFrame textpanel = null; @@ -244,6 +246,7 @@ //localCopy.parent = null; frame = new JFrame(); + frame.setUndecorated(true); objEditor = this; this.callee = callee; @@ -583,19 +586,89 @@ } } +static GraphicsDevice device = GraphicsEnvironment + .getLocalGraphicsEnvironment().getScreenDevices()[0]; + + Rectangle keeprect; + cRadio radio; + +cButton keepButton; + cButton twoButton; // Full 3D + cButton sixButton; + cButton threeButton; + cButton sevenButton; + cButton fourButton; // full panel + cButton oneButton; // full XYZ + //cButton currentLayout; + + boolean maximized; + + void Minimize() + { + frame.setState(Frame.ICONIFIED); + } + + void Maximize() + { + if (maximized) + { + frame.setBounds(keeprect.x, keeprect.y, keeprect.width, keeprect.height); + } + else + { + keeprect = frame.getBounds(); + Rectangle rect = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds(); + Dimension rect2 = frame.getToolkit().getScreenSize(); + frame.setBounds(0, rect2.height - rect.height, rect.width, rect.height); +// frame.setState(Frame.MAXIMIZED_BOTH); + } + + maximized ^= true; + } + void ToggleFullScreen() { if (CameraPane.FULLSCREEN) { - frame.getContentPane().remove(/*"Center",*/bigThree); - framePanel.add(bigThree); - frame.getContentPane().add(/*"Center",*/framePanel); + device.setFullScreenWindow(null); + //frame.setVisible(false); +// frame.removeNotify(); +// frame.setUndecorated(false); +// frame.addNotify(); + //frame.setBounds(keeprect.x, keeprect.y, keeprect.width, keeprect.height); + +// X frame.getContentPane().remove(/*"Center",*/bigThree); +// X framePanel.add(bigThree); +// X frame.getContentPane().add(/*"Center",*/framePanel); + framePanel.setDividerLocation(1); + + //frame.setVisible(true); + radio.layout = keepButton; + //theFrame = null; + keepButton = null; + radio.layout.doClick(); + } else { - frame.getContentPane().remove(/*"Center",*/framePanel); - framePanel.remove(bigThree); - frame.getContentPane().add(/*"Center",*/bigThree); + keepButton = radio.layout; + //keeprect = frame.getBounds(); +// frame.setBounds(0, 0, frame.getToolkit().getScreenSize().width, +// frame.getToolkit().getScreenSize().height); + //frame.setVisible(false); + device.setFullScreenWindow(frame); +// frame.removeNotify(); +// frame.setUndecorated(true); +// frame.addNotify(); +// X frame.getContentPane().remove(/*"Center",*/framePanel); +// X framePanel.remove(bigThree); +// X frame.getContentPane().add(/*"Center",*/bigThree); + framePanel.setDividerLocation(0); + + radio.layout = twoButton; + radio.layout.doClick(); + //frame.setVisible(true); } + cameraView.ToggleFullScreen(); } @@ -947,7 +1020,7 @@ rewindCB.setToolTipText("Rewind animation"); randomCB = AddCheckBox(setupPanel2, "Rand", copy.random); - randomCB.setToolTipText("Rewind or Go back and forth randomly"); + randomCB.setToolTipText("Randomly Rewind or Go back and forth"); if (Globals.ADVANCED) { @@ -1184,8 +1257,11 @@ //worldPanel.setName("World"); centralPanel = new cGridBag(); centralPanel.preferredWidth = 20; - timelinePanel = new JPanel(new BorderLayout()); - timelineMenubar = new timeflow.app.TimeflowApp().TimeFlowWindow(timelinePanel); + + if (Globals.ADVANCED) + { + timelinePanel = new JPanel(new BorderLayout()); + timelineMenubar = new timeflow.app.TimeflowApp().TimeFlowWindow(timelinePanel); cameraPanel = new JSplitPane(JSplitPane.VERTICAL_SPLIT, cameraView, timelinePanel); cameraPanel.setContinuousLayout(true); @@ -1194,7 +1270,10 @@ // cameraPanel.setDividerSize(9); cameraPanel.setResizeWeight(1.0); + } + centralPanel.add(cameraView); + centralPanel.setFocusable(true); //frame.setJMenuBar(timelineMenubar); //centralPanel.add(timelinePanel); @@ -1392,6 +1471,8 @@ frame.setSize(1280, 860); frame.setVisible(true); + cameraView.requestFocusInWindow(); + gridPanel.setDividerLocation(1.0); frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE); -- Gitblit v1.6.2