From 087701bc2c41c58262027597ae8587db794fbadd Mon Sep 17 00:00:00 2001
From: "v.tarantik" <v.tarantik@gmail.com>
Date: Fri, 6 Mar 2015 13:03:00 +0100
Subject: [PATCH] HOF screen double layered content of ScrollPane

---
 .../screen/halloffame/HallOfFameScreen.java   | 83 +++++++++----------
 1 file changed, 40 insertions(+), 43 deletions(-)

diff --git a/core/src/cz/nic/tablexia/screen/halloffame/HallOfFameScreen.java b/core/src/cz/nic/tablexia/screen/halloffame/HallOfFameScreen.java
index 84f1f40de..b44da9f38 100644
--- a/core/src/cz/nic/tablexia/screen/halloffame/HallOfFameScreen.java
+++ b/core/src/cz/nic/tablexia/screen/halloffame/HallOfFameScreen.java
@@ -7,14 +7,15 @@ import com.badlogic.gdx.scenes.scene2d.InputEvent;
 import com.badlogic.gdx.scenes.scene2d.ui.HorizontalGroup;
 import com.badlogic.gdx.scenes.scene2d.ui.Image;
 import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane;
+import com.badlogic.gdx.scenes.scene2d.ui.Stack;
 import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
 import com.badlogic.gdx.scenes.scene2d.utils.SpriteDrawable;
 
 import java.util.List;
 
+import cz.nic.tablexia.TablexiaSettings;
 import cz.nic.tablexia.screen.AbstractTablexiaScreen;
 import cz.nic.tablexia.screen.halloffame.assets.HallOfFameAssets;
-import cz.nic.tablexia.util.Log;
 
 public class HallOfFameScreen extends AbstractTablexiaScreen<Void> {
     private static enum TrophyHeapAssets {
@@ -66,76 +67,71 @@ public class HallOfFameScreen extends AbstractTablexiaScreen<Void> {
     }
     private static final int     BACKGROUND_TILE_REPEAT_COUNT = 37;
 
-    private HorizontalGroup group;
+    private Stack contentStack;
+    private HorizontalGroup backgroundGroup;
+    private Group foregroundGroup;
 
     @Override
     protected void screenLoaded() {
-        prepareScrollPane();
-        //prepareDoorButton();
+        contentStack = new Stack();
+        contentStack.setHeight(getStage().getHeight());
+        prepareBackgroundLayer();
+        prepareForegroundLayer();
+
+        contentStack.addActor(backgroundGroup);
+        contentStack.addActor(foregroundGroup);
+        contentStack.setDebug(TablexiaSettings.isShowBoudingBoxes());
+
+        ScrollPane scrollPane = new ScrollPane(contentStack);
+        scrollPane.setScrollingDisabled(false, true);
+        scrollPane.setSize(getStage().getWidth(), getStage().getHeight());
+
+        getStage().addActor(scrollPane);
     }
 
 
 
-    private void prepareScrollPane(){
-       group = new HorizontalGroup();
-        group.setHeight(getStage().getHeight());
+    private void prepareBackgroundLayer(){
+        backgroundGroup = new HorizontalGroup();
+        backgroundGroup.setHeight(getStage().getHeight());
 
-        Group doorGroup = new Group();
-        doorGroup.setHeight(getStage().getHeight());
         Texture textureDoor = getTexture(HallOfFameAssets.HALL_OF_FAME_DOOR);
         Image imgDoor = new Image(textureDoor);
         imgDoor.setHeight(getStage().getHeight());
-        doorGroup.setSize(imgDoor.getWidth(),imgDoor.getHeight());
-        doorGroup.addActor(imgDoor);
-
-        final Texture textureDoorButton = getTexture(HallOfFameAssets.HALL_OF_FAME_DOOR_BUTTON_UNPRESSED);
-        final Image imgDoorButton = new Image(textureDoorButton);
-        imgDoorButton.setHeight(getStage().getHeight());
-
-        imgDoorButton.addListener(new ClickListener() {
-            @Override
-            public void clicked(InputEvent event, float x, float y) {
-                Texture textureDoor = getTexture(HallOfFameAssets.HALL_OF_FAME_DOOR_BUTTON_PRESSED);
-                imgDoorButton.setDrawable(new SpriteDrawable(new Sprite(textureDoor)));
-            }
-        });
-        imgDoorButton.setZIndex(2);
-        doorGroup.addActor(imgDoorButton);
-
-        group.addActor(doorGroup);
+        backgroundGroup.addActor(imgDoor);
 
         Texture textureTile = getTexture(HallOfFameAssets.HALL_OF_FAME_BACKGROUND_TILE);
 
-
         for (int i = 0; i < BACKGROUND_TILE_REPEAT_COUNT; i++) {
             Image imgBackground = new Image(textureTile);
             imgBackground.setHeight(getStage().getHeight());
 
-            group.addActor(imgBackground);
+            backgroundGroup.addActor(imgBackground);
         }
-        ScrollPane scrollPane = new ScrollPane(group);
-        scrollPane.setScrollingDisabled(false,true);
-        scrollPane.setHeight(getStage().getHeight());
-        scrollPane.setWidth(getStage().getWidth());
 
-         getStage().addActor(scrollPane);
     }
 
     private void prepareDoorButton(){
-        //TODO positioning
-        final Texture textureDoor = getTexture(HallOfFameAssets.HALL_OF_FAME_DOOR_BUTTON_PRESSED);
-        final Image imgDoor = new Image(textureDoor);
-        imgDoor.setHeight(getStage().getHeight());
+        final Texture textureDoorButton = getTexture(HallOfFameAssets.HALL_OF_FAME_DOOR_BUTTON_UNPRESSED);
+        final Image imgDoorButton = new Image(textureDoorButton);
+        imgDoorButton.setHeight(getStage().getHeight());
 
-        imgDoor.addListener(new ClickListener() {
+        imgDoorButton.addListener(new ClickListener() {
             @Override
             public void clicked(InputEvent event, float x, float y) {
-                Texture textureDoor = getTexture(HallOfFameAssets.HALL_OF_FAME_DOOR_BUTTON_UNPRESSED);
-                imgDoor.setDrawable(new SpriteDrawable(new Sprite(textureDoor)));
+                Texture textureDoor = getTexture(HallOfFameAssets.HALL_OF_FAME_DOOR_BUTTON_PRESSED);
+                imgDoorButton.setDrawable(new SpriteDrawable(new Sprite(textureDoor)));
             }
         });
-        imgDoor.setZIndex(5);
-        group.addActorAt(0, imgDoor);
+        foregroundGroup.addActor(imgDoorButton);
+
+    }
+
+    private void prepareForegroundLayer(){
+        foregroundGroup = new Group();
+        foregroundGroup.setHeight(getStage().getHeight());
+
+        prepareDoorButton();
     }
 
     @Override
@@ -151,4 +147,5 @@ public class HallOfFameScreen extends AbstractTablexiaScreen<Void> {
             texturesFileNames.add(asset.getTrophyHeapAssetName());
         }
     }
+
 }
\ No newline at end of file
-- 
GitLab