diff --git a/core/src/cz/nic/tablexia/TablexiaSettings.java b/core/src/cz/nic/tablexia/TablexiaSettings.java index 3398d8a7076cfaf83bc5bebd09b3b267d4d1eade..046fd67f4c8cd52b4a2d3d1508adca61cf27eed5 100644 --- a/core/src/cz/nic/tablexia/TablexiaSettings.java +++ b/core/src/cz/nic/tablexia/TablexiaSettings.java @@ -15,6 +15,7 @@ import cz.nic.tablexia.game.games.night_watch.NightWatchScreen; import cz.nic.tablexia.loader.application.ApplicationTextManager; import cz.nic.tablexia.screen.AbstractTablexiaScreen; import cz.nic.tablexia.screen.createuser.FormScreen; +import cz.nic.tablexia.screen.halloffame.HallOfFameScreen; import cz.nic.tablexia.util.Log; import cz.nic.tablexia.util.Utility; @@ -25,7 +26,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 = FormScreen.class; + public static final Class<? extends AbstractTablexiaScreen<?>> INITIAL_SCREEN = HallOfFameScreen.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/game/AbstractTablexiaGame.java b/core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java index c3e3eacf3af3ec7a4bb61b0599e5c6b845119e06..1bdb9c1bbbe62d80a7715e58110406c5b4d693ed 100644 --- a/core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java +++ b/core/src/cz/nic/tablexia/game/AbstractTablexiaGame.java @@ -145,6 +145,8 @@ public abstract class AbstractTablexiaGame<T> extends AbstractTablexiaScreen<T> TablexiaButton.ButtonType.GREEN, ApplicationTextManager.getInstance().getText(ApplicationTextManager.ApplicationTextsAssets.VICTORYSCREEN_BUTTON_CHANGEGAME), ApplicationTextManager.getInstance().getText(ApplicationTextManager.ApplicationTextsAssets.VICTORYSCREEN_BUTTON_REPLAY)); + //dialog does not hide on click outside the BG area + setHideOnOutsideClick(false); } @Override diff --git a/core/src/cz/nic/tablexia/util/ui/dialog/TablexiaDialog.java b/core/src/cz/nic/tablexia/util/ui/dialog/TablexiaDialog.java index 380954cd188daab69134a0803da02d94fdebb59d..f8c25e59d88cab861bd15045df45db8d24a903e6 100644 --- a/core/src/cz/nic/tablexia/util/ui/dialog/TablexiaDialog.java +++ b/core/src/cz/nic/tablexia/util/ui/dialog/TablexiaDialog.java @@ -2,15 +2,24 @@ package cz.nic.tablexia.util.ui.dialog; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.Pixmap; +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.BitmapFont; +import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.math.Interpolation; +import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.actions.Actions; import com.badlogic.gdx.scenes.scene2d.ui.Dialog; import com.badlogic.gdx.scenes.scene2d.ui.Label; +import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; +import com.badlogic.gdx.scenes.scene2d.utils.Drawable; import com.badlogic.gdx.scenes.scene2d.utils.NinePatchDrawable; +import com.badlogic.gdx.scenes.scene2d.utils.SpriteDrawable; import cz.nic.tablexia.loader.application.ApplicationFontManager; +import cz.nic.tablexia.util.Log; import cz.nic.tablexia.util.ui.dialog.text.DialogTextContent; import static com.badlogic.gdx.scenes.scene2d.actions.Actions.sequence; @@ -23,7 +32,7 @@ public class TablexiaDialog extends Dialog { public static TextureAtlas backgroundAtlas; public static TextureAtlas buttonAtlas; - protected DialogTextContent dialogTextContent; + private boolean hideOnOutsideClick = true; public enum BackGroundType { BUBBLE_CLASSIC("bubble_classic"), @@ -47,9 +56,9 @@ public class TablexiaDialog extends Dialog { } public TablexiaDialog(float x, float y,float width,float height, BackGroundType backGroundType) { - super("", new WindowStyle(ApplicationFontManager.getInstance().getDefaultApplicationRegularFont(), - Color.BLACK, - new NinePatchDrawable(backgroundAtlas.createPatch(backGroundType.dialogBackgroundTextureName)))); + super("", new DialogStyle(ApplicationFontManager.getInstance().getDefaultApplicationRegularFont(), + Color.BLACK, + new NinePatchDrawable(backgroundAtlas.createPatch(backGroundType.dialogBackgroundTextureName)), createDrawable(new Color(0, 0, 0, 0.5f)))); setModal(true); setMovable(false); @@ -58,6 +67,23 @@ public class TablexiaDialog extends Dialog { setBounds(x, y, width, height); getBackground().setMinWidth(width); getBackground().setMinHeight(height); + + final float dialogX = x; + final float dialogY = y; + final float dialogWidth = width; + final float dialogHeight = height; + + addListener(new ClickListener(){ + @Override + public void clicked(InputEvent event, float x, float y) { + if((x<0||x>(dialogWidth))||(y<0||y>dialogHeight)){ + //user clicked outside the dialog window + if(hideOnOutsideClick){ + hide(); + } + } + } + }); } @Override @@ -70,4 +96,24 @@ public class TablexiaDialog extends Dialog { protected void prepareContent(){ //no content here } -} \ No newline at end of file + + public static Drawable createDrawable (Color c) { + Pixmap p = new Pixmap(1, 1, Pixmap.Format.RGBA8888); + p.setColor(c); + p.drawPixel(0, 0); + + return new SpriteDrawable(new Sprite(new Texture(p))); + } + + public static class DialogStyle extends WindowStyle{ + public DialogStyle (BitmapFont titleFont, Color titleFontColor, Drawable background,Drawable stageBackground){ + super(titleFont,titleFontColor,background); + super.stageBackground = stageBackground; + } + } + + //hide dialog on click outside the background area? true by default + public void setHideOnOutsideClick(boolean hideOnOutsideClick){ + this.hideOnOutsideClick = hideOnOutsideClick; + } +}