From e78caa64f83f209ea3e30f890ae3733e136032d6 Mon Sep 17 00:00:00 2001 From: Anton Danilov <anton.danilov@nic.cz> Date: Thu, 21 Jan 2016 18:25:00 +0100 Subject: [PATCH] #123 Refactored classes, added change language button into intro screen (need to fix vertical alignment, when only few players are shown) --- .../cz/nic/tablexia/menu/AbstractMenu.java | 43 ++++++++++++++++++- .../cz/nic/tablexia/menu/main/MainMenu.java | 23 ++-------- 2 files changed, 45 insertions(+), 21 deletions(-) diff --git a/core/src/cz/nic/tablexia/menu/AbstractMenu.java b/core/src/cz/nic/tablexia/menu/AbstractMenu.java index 8adf48307..948027637 100644 --- a/core/src/cz/nic/tablexia/menu/AbstractMenu.java +++ b/core/src/cz/nic/tablexia/menu/AbstractMenu.java @@ -12,6 +12,7 @@ import com.badlogic.gdx.scenes.scene2d.ui.Button; import com.badlogic.gdx.scenes.scene2d.ui.Container; import com.badlogic.gdx.scenes.scene2d.ui.HorizontalGroup; import com.badlogic.gdx.scenes.scene2d.ui.Image; +import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.Stack; import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; @@ -27,7 +28,9 @@ import cz.nic.tablexia.TablexiaSettings; import cz.nic.tablexia.bus.ApplicationBus; import cz.nic.tablexia.loader.application.ApplicationAtlasManager; import cz.nic.tablexia.loader.application.ApplicationExternalSoundManager; +import cz.nic.tablexia.loader.application.ApplicationFontManager; import cz.nic.tablexia.loader.application.ApplicationInternalSoundManager; +import cz.nic.tablexia.menu.main.locale.LocaleSelectBox; import cz.nic.tablexia.util.Log; import cz.nic.tablexia.util.ui.TablexiaNoBlendingImage; @@ -121,6 +124,14 @@ public abstract class AbstractMenu extends Stack implements Disposable { private static final float REACTION_BORDER_WIDTH_RATIO = 1f / 3; private static final int MAX_OPEN_CLOSE_BUTTON_WIDTH = 65; + private static final float MAINMENU_PADDING = 10f; + private static final int SELECTBOX_LOCALE_HEIGHT = 40; + private static final float SELECTBOX_LOCALE_WIDTH_RATIO = 2f/5; + private static final ApplicationFontManager.FontType APP_NAME_TEXT_FONT = ApplicationFontManager.FontType.ROBOTO_REGULAR_10; + private static final int APP_NAME_TEXT_ALIGN = Align.center; + private static final float APP_NAME_TEXT_PADDING_LEFT = 10f; + private static final float APP_NAME_WIDTH_RATIO = 3f/5; + private final Container<Group> layoutContainer; private float menuHidePositionX; private float menuClosePositionX; @@ -155,9 +166,26 @@ public abstract class AbstractMenu extends Stack implements Disposable { layoutContainer.setDebug(TablexiaSettings.getInstance().isShowBoundingBoxes(), false); layoutContainer.align(LAYOUT_CONTAINER_ALIGN); + Table localeTable = getLocaleMenu(); + Container<Table> localMenuContainer = new Container<Table>(); + + Table completeMenuTable = new Table(); + completeMenuTable.setFillParent(true); + Container<Table> completeMenuContainer = new Container<Table>(); + + localeTable.pad(MAINMENU_PADDING); + localeTable.setFillParent(true); + + localMenuContainer.setActor(localeTable); + + completeMenuTable.add(layoutContainer); + completeMenuTable.row(); + completeMenuTable.add(localMenuContainer).fill().bottom(); + completeMenuContainer.setActor(completeMenuTable); + backgroundStack = new Stack(); backgroundStack.add(background); - backgroundStack.add(layoutContainer); + backgroundStack.add(completeMenuContainer); if (getMenuControlType().isDraggable()) { backgroundStack.addListener(dragListener); } @@ -253,6 +281,19 @@ public abstract class AbstractMenu extends Stack implements Disposable { } } + private Table getLocaleMenu() { + Table footerTable = new Table(); + float footerContentWidth = getBackground().getDrawable().getMinWidth() - (2 * MAINMENU_PADDING) - APP_NAME_TEXT_PADDING_LEFT; + footerTable.add(new LocaleSelectBox(SELECTBOX_LOCALE_HEIGHT)).width(footerContentWidth * SELECTBOX_LOCALE_WIDTH_RATIO).center(); + Label appName = new Label(TablexiaSettings.getInstance().getAppName() + System.lineSeparator() + TablexiaSettings.getInstance().getVersionName(), + new Label.LabelStyle(ApplicationFontManager.getInstance().getFont(APP_NAME_TEXT_FONT), Color.BLACK)); + appName.setAlignment(APP_NAME_TEXT_ALIGN); + appName.setWrap(true); + footerTable.add(appName).width(footerContentWidth * APP_NAME_WIDTH_RATIO).padLeft(APP_NAME_TEXT_PADDING_LEFT); + + return footerTable; + } + @Override protected void sizeChanged() { if (background != null && border != null) { diff --git a/core/src/cz/nic/tablexia/menu/main/MainMenu.java b/core/src/cz/nic/tablexia/menu/main/MainMenu.java index 4bb3153ab..c03d833a0 100644 --- a/core/src/cz/nic/tablexia/menu/main/MainMenu.java +++ b/core/src/cz/nic/tablexia/menu/main/MainMenu.java @@ -1,11 +1,9 @@ package cz.nic.tablexia.menu.main; -import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.scenes.scene2d.Group; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.ui.Container; -import com.badlogic.gdx.scenes.scene2d.ui.Label; import com.badlogic.gdx.scenes.scene2d.ui.ScrollPane; import com.badlogic.gdx.scenes.scene2d.ui.Table; import com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup; @@ -17,14 +15,12 @@ import net.engio.mbassy.listener.Handler; import java.util.HashMap; import java.util.Map; -import cz.nic.tablexia.TablexiaSettings; import cz.nic.tablexia.bus.ApplicationBus; import cz.nic.tablexia.bus.event.SubMenuControlEvent; import cz.nic.tablexia.loader.application.ApplicationFontManager; import cz.nic.tablexia.loader.application.ApplicationInternalSoundManager; import cz.nic.tablexia.menu.AbstractMenu; import cz.nic.tablexia.menu.IMenuItem; -import cz.nic.tablexia.menu.main.locale.LocaleSelectBox; import cz.nic.tablexia.menu.main.user.UserSelectBox; /** @@ -41,12 +37,7 @@ public class MainMenu extends AbstractMenu { private static final float SCROLLBAR_PADDING_BOTTOM = 10f; private static final float SCROLLBAR_PADDING_TOP = 10f; private static final int SELECTBOX_USER_HEIGHT = 70; - private static final int SELECTBOX_LOCALE_HEIGHT = 40; - private static final float SELECTBOX_LOCALE_WIDTH_RATIO = 2f/5; - private static final ApplicationFontManager.FontType APP_NAME_TEXT_FONT = ApplicationFontManager.FontType.ROBOTO_REGULAR_10; - private static final int APP_NAME_TEXT_ALIGN = Align.left; private static final float APP_NAME_TEXT_PADDING_LEFT = 10f; - private static final float APP_NAME_WIDTH_RATIO = 3f/5; private Map<IMenuItem, Group> subMenus = new HashMap<IMenuItem, Group>(); private VerticalGroup menuItemsLayout; @@ -88,17 +79,6 @@ public class MainMenu extends AbstractMenu { layoutTable.add(scrollPane).fill().padBottom(SCROLLBAR_PADDING_BOTTOM).padTop(SCROLLBAR_PADDING_TOP).expandY(); layoutTable.row(); - // Locale SelectBox and App name - Table footerTable = new Table(); - float footerContentWidth = getBackground().getDrawable().getMinWidth() - (2 * MAINMENU_PADDING) - APP_NAME_TEXT_PADDING_LEFT; - footerTable.add(new LocaleSelectBox(SELECTBOX_LOCALE_HEIGHT)).width(footerContentWidth * SELECTBOX_LOCALE_WIDTH_RATIO); - Label appName = new Label(TablexiaSettings.getInstance().getAppName() + System.lineSeparator() + TablexiaSettings.getInstance().getVersionName(), - new Label.LabelStyle(ApplicationFontManager.getInstance().getFont(APP_NAME_TEXT_FONT), Color.BLACK)); - appName.setAlignment(APP_NAME_TEXT_ALIGN); - appName.setWrap(true); - footerTable.add(appName).width(footerContentWidth * APP_NAME_WIDTH_RATIO).padLeft(APP_NAME_TEXT_PADDING_LEFT); - layoutTable.add(footerTable).fillX(); - for (final IMenuItem menuItem : MainMenuDefinition.getItemsForMenu()) { Group menuItemContainer = getGroupForMenuItem(menuItem, getWidth()); @@ -129,7 +109,10 @@ public class MainMenu extends AbstractMenu { } } + float menuWidth = getBackground().getDrawable().getMinWidth() - (2 * MAINMENU_PADDING) - APP_NAME_TEXT_PADDING_LEFT; + layoutContainer.align(Align.bottom); + layoutTable.getCells().get(0).width(menuWidth); layoutContainer.setActor(layoutTable); } -- GitLab