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.

---
 GroupEditor.java |  145 +++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 123 insertions(+), 22 deletions(-)

diff --git a/GroupEditor.java b/GroupEditor.java
index 7bbf24b..14b61ed 100644
--- a/GroupEditor.java
+++ b/GroupEditor.java
@@ -246,7 +246,7 @@
 
                 cameraMenu.add(toggleDebugItem = new CheckboxMenuItem("Debug"));
                 toggleDebugItem.addItemListener(this);
-                toggleDebugItem.setState(CameraPane.DEBUG);
+                toggleDebugItem.setState(Globals.DEBUG);
 
                 cameraMenu.add(toggleFrustumItem = new CheckboxMenuItem("Frustum"));
                 toggleFrustumItem.addItemListener(this);
@@ -470,6 +470,14 @@
 		markleavesItem.addActionListener(this);
 		unmarkleavesItem = menu.add(new MenuItem("Unmark Leaves"));
 		unmarkleavesItem.addActionListener(this);
+		rewindleavesItem = menu.add(new MenuItem("Rewind Leaves"));
+		rewindleavesItem.addActionListener(this);
+		unrewindleavesItem = menu.add(new MenuItem("Unrewind Leaves"));
+		unrewindleavesItem.addActionListener(this);
+		randomleavesItem = menu.add(new MenuItem("Random Leaves"));
+		randomleavesItem.addActionListener(this);
+		unrandomleavesItem = menu.add(new MenuItem("Unrandom Leaves"));
+		unrandomleavesItem.addActionListener(this);
 		menu.add("-");
 		flipVItem = menu.add(new MenuItem("Flip V"));
 		flipVItem.addActionListener(this);
@@ -527,6 +535,18 @@
 	
 	void SetupUI2(ObjEditor oe)
 	{
+            // June 2019
+            if (oe == null)
+            {
+                //super.SetupUI2(this);
+                //return;
+            }
+            
+            if (copy != group)
+            {
+                //super.SetupUI2(this);
+            }
+            
             //new Exception().printStackTrace();
                 
         oe.radioPanel = new JPanel(new GridBagLayout());
@@ -557,15 +577,27 @@
          */
                 //this.AddOptions(oe.toolbarPanel, oe.aConstraints);
                 
-		oe.toolbarPanel.add(undoButton = new cButton("Undo", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);
+		//oe.toolbarPanel.add(minButton = new cButton("Min", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);
+                //minButton.setToolTipText("Minimize window");
+		//minButton.addActionListener(this);
+                
+		oe.toolbarPanel.add(maxButton = new cButton("\u271A", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);
+                maxButton.setToolTipText("Maximize window");
+		maxButton.addActionListener(this);
+                
+		oe.toolbarPanel.add(fullButton = new cButton("\u2b1c", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);
+                fullButton.setToolTipText("Full-screen window");
+		fullButton.addActionListener(this);
+                
+		oe.toolbarPanel.add(undoButton = new cButton("\u21a9", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);
                 undoButton.setToolTipText("Undo changes");
 		undoButton.addActionListener(this);
                 
-		oe.toolbarPanel.add(redoButton = new cButton("Redo", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);
+		oe.toolbarPanel.add(redoButton = new cButton("\u21aa", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);
                 redoButton.setToolTipText("Redo changes");
 		redoButton.addActionListener(this);
                 
-		oe.toolbarPanel.add(saveButton = new cButton("Save", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);
+		oe.toolbarPanel.add(saveButton = new cButton("\u21e3", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);
                 saveButton.setToolTipText("Save changes");
 		saveButton.addActionListener(this);
                 
@@ -573,7 +605,7 @@
                 liveCB.setToolTipText("Enable animation");
                                 liveCB.addItemListener(this);
 
-		oe.toolbarPanel.add(oneStepButton = new cButton("Step", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);
+		oe.toolbarPanel.add(oneStepButton = new cButton("\u29f4", !Grafreed.NIMBUSLAF)); //, oe.aConstraints);
                 oneStepButton.setToolTipText("Animate one step forward");
 		oneStepButton.addActionListener(this);
                 
@@ -581,7 +613,7 @@
                 fastCB.setToolTipText("Fast mode");
                                 fastCB.addItemListener(this);
                                 
-                oe.toolbarPanel.add(trackCB = new cCheckBox("Track", CameraPane.TRACK)); //, oe.aConstraints);
+                oe.toolbarPanel.add(trackCB = new cCheckBox(":", CameraPane.TRACK)); //, oe.aConstraints);
                 trackCB.setToolTipText("Enable tracking");
                                 trackCB.addItemListener(this);
 
@@ -809,6 +841,8 @@
         
         void SetupViews(ObjEditor oe)
         {
+                    theFrame = this;
+                    
             oe.SetupViews();
             
 		System.out.println("SetupViews");
@@ -1970,6 +2004,18 @@
 		{
                     DumpObject();
 		} else
+		if (source == minButton)
+		{
+			Minimize();
+		} else
+		if (source == maxButton)
+		{
+			Maximize();
+		} else
+		if (source == fullButton)
+		{
+			ToggleFullScreen();
+		} else
 		if (source == undoButton)
 		{
 			Undo();
@@ -2609,6 +2655,22 @@
                 {
 			MarkLeaves(false);
 		} else
+		if (source == rewindleavesItem)
+                {
+			RewindLeaves(true);
+		} else
+		if (source == unrewindleavesItem)
+                {
+			RewindLeaves(false);
+		} else
+		if (source == randomleavesItem)
+                {
+			RandomLeaves(true);
+		} else
+		if (source == unrandomleavesItem)
+                {
+			RandomLeaves(false);
+		} else
 		if (source == flipVItem)
                 {
 			FlipV(true);
@@ -2875,6 +2937,24 @@
                     bigThree.ClearUI();
                     bigThree.add(centralPanel);
                     bigThree.FlushUI();
+                    
+                    cameraView.requestFocusInWindow();
+                    
+//                    refreshContents(true);
+//                    
+//                    try
+//                    {
+//                        java.awt.Robot bot = new java.awt.Robot();
+//                        int mask = InputEvent.BUTTON1_MASK;
+//                        bot.mouseMove(100, 100);           
+//                        bot.mousePress(mask);     
+//                        bot.mouseRelease(mask);                    
+//                    }
+//                    catch (Exception e)
+//                    {
+//                        
+//                    }
+                    
                 } else
 		if (source == threeButton)
 		{
@@ -2911,6 +2991,8 @@
                     bigThree.add(centralPanel);
                     bigThree.add(XYZPanel);
                     bigThree.FlushUI();
+                    
+                    cameraView.requestFocusInWindow();
                 } else
 		if (source == fourButton)
 		{
@@ -2946,6 +3028,8 @@
                     bigThree.ClearUI();
                     bigThree.add(scenePanel);
                     bigThree.FlushUI();
+                    
+                    cameraView.requestFocusInWindow();
                 } else
 		if (source == sixButton)
 		{
@@ -2982,6 +3066,8 @@
                     bigThree.add(scenePanel);
                     bigThree.add(centralPanel);
                     bigThree.FlushUI();
+                    
+                    cameraView.requestFocusInWindow();
                 } else
 		if (source == sevenButton)
 		{
@@ -3019,6 +3105,8 @@
                     bigThree.add(centralPanel);
                     bigThree.add(XYZPanel);
                     bigThree.FlushUI();
+                    
+                    cameraView.requestFocusInWindow();
                 } else
 		if (source == rootButton)
 		{
@@ -3030,6 +3118,7 @@
                                 EditObject(obj);
                     }
 
+                    cameraView.requestFocusInWindow();
                     refreshContents(true);
 		} else
 		if (source == closeButton)
@@ -3051,6 +3140,8 @@
                                 break;
                             }
                     }
+                    
+                    cameraView.requestFocusInWindow();
                     refreshContents(true);
 		} else
 		if (source == editItem || source == editButton)
@@ -3155,7 +3246,7 @@
                     }
                     
 // fix "+" issue
-                    group.editWindow = this;
+                    //group.editWindow = this;
                     
                     /*
                     currentLayout = radio.layout;
@@ -3168,6 +3259,8 @@
                     //group.parent = null; // ROOT
                     //group.attributes = -1;
                     ResetModel();
+                    
+                    cameraView.requestFocusInWindow();
                     refreshContents(true);
                 } else if (event.getSource() == editCameraItem)
                 {
@@ -3191,7 +3284,6 @@
 	}
         
         boolean useclient = false;
-        cRadio radio;
         
         void ToggleRoot()
         {
@@ -4146,6 +4238,18 @@
 		refreshContents();
 	}
 	
+	void RewindLeaves(boolean hide)
+	{
+		group.selection.RewindLeaves(hide);
+		refreshContents();
+	}
+	
+	void RandomLeaves(boolean hide)
+	{
+		group.selection.RandomLeaves(hide);
+		refreshContents();
+	}
+	
 	void SetTexRes(int tr)
 	{
 		group.selection.SetTexRes(tr);
@@ -4329,6 +4433,7 @@
 					
 					//if (child.parent != null)
 						//child.parent.addSelectee(child);
+                    objEditor.SetMaterial(child);
 					group.addSelectee(child);
 				}
 			}
@@ -4369,15 +4474,12 @@
             {
                 objEditor.ClearInfo(); // .GetMaterial());
 
-                for (int i=0; i < group.selection.size(); i++)
+                for (int i=0; i < group.selection.Size(); i++)
                 {
-                    Object3D child = (Object3D) group.selection.reserve(i);
+                    Object3D child = (Object3D) group.selection.get(i);
 
-                    objEditor.SetMaterial(child);
                     objEditor.AddInfo(child, this, true);
     System.err.println("info : " + child.GetPath());
-
-                    group.selection.release(i);
                 }
 
                 objEditor.SetText(); // jan 2014
@@ -5185,9 +5287,12 @@
 	cButton clearpanelButton;
 	cButton unselectButton;
 	
-	cButton saveButton;
+	cButton minButton;
+	cButton maxButton;
+	cButton fullButton;
 	cButton undoButton;
 	cButton redoButton;
+	cButton saveButton;
 	cButton oneStepButton;
         
 	cButton screenfitButton;
@@ -5200,14 +5305,6 @@
 	cButton closeButton;
 
 	cButton setsupportButton;
-        
-	cButton twoButton;
-	cButton sixButton;
-	cButton threeButton;
-	cButton sevenButton;
-	cButton fourButton; // full panel
-	cButton oneButton; // full XYZ
-        //cButton currentLayout;
         
 	//
         //Composite
@@ -5285,6 +5382,10 @@
 	private MenuItem showleavesItem;
 	private MenuItem markleavesItem;
 	private MenuItem unmarkleavesItem;
+	private MenuItem rewindleavesItem;
+	private MenuItem unrewindleavesItem;
+	private MenuItem randomleavesItem;
+	private MenuItem unrandomleavesItem;
         
 	private MenuItem flipVItem;
 	private MenuItem unflipVItem;

--
Gitblit v1.6.2