diff --git a/core/src/cz/nic/tablexia/TablexiaSettings.java b/core/src/cz/nic/tablexia/TablexiaSettings.java index 676e8584dfefa14aa6915c62a9680669a7aa0039..9eb44b02b66378353ecff06e4dfa024c44d69a20 100644 --- a/core/src/cz/nic/tablexia/TablexiaSettings.java +++ b/core/src/cz/nic/tablexia/TablexiaSettings.java @@ -11,6 +11,7 @@ import cz.nic.tablexia.game.GameDefinition; import cz.nic.tablexia.game.difficulty.GameDifficulty; import cz.nic.tablexia.loader.application.ApplicationTextManager; import cz.nic.tablexia.screen.AbstractTablexiaScreen; +import cz.nic.tablexia.screen.encyclopedia.EncyclopediaScreen; import cz.nic.tablexia.screen.gamemenu.GameMenuScreen; import cz.nic.tablexia.util.Log; @@ -21,7 +22,7 @@ public class TablexiaSettings { private static final int MIN_SCREEN_HEIGHT = (int) (DEFAULT_SCREEN_WIDTH * MAXIMUM_RATIO); private static final boolean DEBUG_SHOW_BOUNDING_BOXES = true; - public static final Class<? extends AbstractTablexiaScreen<?>> INITIAL_SCREEN = GameMenuScreen.class; + public static final Class<? extends AbstractTablexiaScreen<?>> INITIAL_SCREEN = EncyclopediaScreen.class; public static final int AVATAR_COUNT = 8; private static final String PREFERENCES_KEY = "cz.nic.tablexia."; diff --git a/core/src/cz/nic/tablexia/screen/encyclopedia/EncyclopediaScreen.java b/core/src/cz/nic/tablexia/screen/encyclopedia/EncyclopediaScreen.java index 97f02ecd06f8a41729d40a4f2c744067df2702d1..b197ad87dee62750d2a7d30e8c77f8a699fccb00 100644 --- a/core/src/cz/nic/tablexia/screen/encyclopedia/EncyclopediaScreen.java +++ b/core/src/cz/nic/tablexia/screen/encyclopedia/EncyclopediaScreen.java @@ -1,23 +1,71 @@ package cz.nic.tablexia.screen.encyclopedia; -import com.badlogic.gdx.graphics.Color; -import com.badlogic.gdx.scenes.scene2d.ui.Label; -import com.badlogic.gdx.scenes.scene2d.ui.Label.LabelStyle; -import com.badlogic.gdx.scenes.scene2d.ui.Table; +import com.badlogic.gdx.scenes.scene2d.Group; +import com.badlogic.gdx.scenes.scene2d.ui.HorizontalGroup; +import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane; +import com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup; +import com.badlogic.gdx.scenes.scene2d.ui.WidgetGroup; import java.util.Map; +import cz.nic.tablexia.TablexiaSettings; +import cz.nic.tablexia.game.games.pursuit.model.Point; import cz.nic.tablexia.screen.AbstractTablexiaScreen; +import cz.nic.tablexia.screen.encyclopedia.widget.ResizableVerticalGroup; public class EncyclopediaScreen extends AbstractTablexiaScreen<Void> { - - @Override - protected void screenLoaded(Map<String, String> screenState) { - Label label = new Label(getClass().getSimpleName(), new LabelStyle(getDefaultRegularFont(), Color.WHITE)); - Table table = new Table(); - table.add(label); - label.setPosition(getStage().getWidth() / 2, getStage().getHeight() / 2); - getStage().addActor(label); - } + private static final Point SCREEN_SIZE = new Point(TablexiaSettings.getWorldWidth(), TablexiaSettings.getMinWorldHeight()); + private static final float RIGHT_PANEL_RELATIVE_WIDTH = 0.25f; + private static final float MENU_RELATIVE_HEIGHT = 0.85f; + private HorizontalGroup container; + private Group content; + private ScrollPane contentScrollPane; + private VerticalGroup rightPanel; + private VerticalGroup menu; + private ScrollPane menuScrollPane; + private HorizontalGroup buttonsPanel; + + @Override + protected void screenLoaded(Map<String, String> screenState) { + container = new HorizontalGroup(); + container.setFillParent(true); + getStage().addActor(container); + + prepareContent(); + prepareRightMenu(); + + boolean showBoundingBoxes = TablexiaSettings.getInstance().isShowBoundingBoxes(); + contentScrollPane.setDebug(showBoundingBoxes); + rightPanel.setDebug(showBoundingBoxes); + menu.setDebug(showBoundingBoxes); + menuScrollPane.setDebug(showBoundingBoxes); + buttonsPanel.setDebug(showBoundingBoxes); + } + + private void prepareContent(){ + content = new WidgetGroup(); + content.setSize((1 - RIGHT_PANEL_RELATIVE_WIDTH) * SCREEN_SIZE.x, SCREEN_SIZE.y); + contentScrollPane = new ScrollPane(content); + contentScrollPane.setScrollingDisabled(false, true); + + container.addActor(contentScrollPane); + } + + private void prepareRightMenu() { + float rightPanelWidth = (1 - RIGHT_PANEL_RELATIVE_WIDTH) * SCREEN_SIZE.x; + menu = new ResizableVerticalGroup(new Point(rightPanelWidth, SCREEN_SIZE.y * MENU_RELATIVE_HEIGHT)); + menuScrollPane = new ScrollPane(menu); + menuScrollPane.setScrollingDisabled(false, true); + menuScrollPane.setSize(rightPanelWidth, SCREEN_SIZE.y * MENU_RELATIVE_HEIGHT); + + buttonsPanel = new HorizontalGroup(); + + rightPanel = new VerticalGroup(); + rightPanel.setSize(rightPanelWidth, SCREEN_SIZE.y); + rightPanel.addActor(menu); + rightPanel.addActor(buttonsPanel); + + container.addActor(rightPanel); + } } diff --git a/core/src/cz/nic/tablexia/screen/encyclopedia/widget/ResizableVerticalGroup.java b/core/src/cz/nic/tablexia/screen/encyclopedia/widget/ResizableVerticalGroup.java new file mode 100644 index 0000000000000000000000000000000000000000..355ba060135f1805f8e01653a4e25e4892605332 --- /dev/null +++ b/core/src/cz/nic/tablexia/screen/encyclopedia/widget/ResizableVerticalGroup.java @@ -0,0 +1,27 @@ +package cz.nic.tablexia.screen.encyclopedia.widget; + +import com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup; + +import cz.nic.tablexia.game.games.pursuit.model.Point; +import cz.nic.tablexia.util.Log; + +/** + * Created by Václav TarantĂk on 21.8.15. + */ +public class ResizableVerticalGroup extends VerticalGroup { + private Point size; + + public ResizableVerticalGroup(Point size){ + this.size = size; + } + + @Override + public float getPrefWidth() { + return size.x; + } + + @Override + public float getPrefHeight() { + return size.y; + } +}