Skip to content
Snippets Groups Projects
Commit 0aeb9c01 authored by v.tarantik's avatar v.tarantik
Browse files

#20 Two button dialog support, minor code refactoring

parent f69e3642
No related branches found
No related tags found
No related merge requests found
......@@ -23,8 +23,10 @@ import cz.nic.tablexia.loader.application.ApplicationTextureManager;
import cz.nic.tablexia.screen.AbstractTablexiaScreen;
import cz.nic.tablexia.screen.halloffame.assets.HallOfFameAssets;
import cz.nic.tablexia.screen.halloffame.helper.TrophyHelper;
import cz.nic.tablexia.util.Log;
import cz.nic.tablexia.util.ui.dialog.SingleButtonDialog;
import cz.nic.tablexia.util.ui.dialog.TablexiaDialog;
import cz.nic.tablexia.util.ui.dialog.TwoButtonDialog;
public class HallOfFameScreen extends AbstractTablexiaScreen<Void> {
......@@ -134,7 +136,18 @@ public class HallOfFameScreen extends AbstractTablexiaScreen<Void> {
Texture texture = ApplicationTextureManager.getInstance().getTexture(ApplicationTextureManager.DIALOG_BUBBLE);
NinePatch np = new NinePatch(texture);
NinePatchDrawable npd = new NinePatchDrawable(np);
new SingleButtonDialog(200,150, TablexiaDialog.DialogType.GAME_HOW_TO_PLAY,"DOBREEEJ").text("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean molestie interdum auctor.").show(getStage(), 800, 350);
new TwoButtonDialog(400,300, TablexiaDialog.DialogType.GAME_HOW_TO_PLAY,"DOBREEEJ","AHOOOJ"){
@Override
public void leftButtonAction() {
Log.info(this.getClass(),"Left Button clicked");
}
@Override
public void rightButtonAction() {
Log.info(this.getClass(),"Right button clicked");
}
}.text("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean molestie interdum auctor.").show(getStage(), 800, 350);
//TODO add action for leaving to main menu
}
......
......@@ -2,37 +2,56 @@ package cz.nic.tablexia.util.ui.dialog;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.NinePatch;
import com.badlogic.gdx.scenes.scene2d.InputListener;
import com.badlogic.gdx.scenes.scene2d.ui.Button;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
import com.badlogic.gdx.scenes.scene2d.utils.NinePatchDrawable;
import cz.nic.tablexia.util.Log;
/**
* Created by Václav Tarantík on 24.3.15.
*/
public class SingleButtonDialog extends TablexiaDialog {
private String buttonText;
public abstract class SingleButtonDialog extends TablexiaDialog {
private static final String BTN_DISABLED_ATLAS_NAME = "tablexiabutton_disabled";
private static final float BUTTON_WIDTH_RATIO = 0.4f;
private static final float BUTTON_HEIGHT_RATIO = 0.25f;
private static final String BTN_DRAWABLE_PRESSED_ENDING = "_pressed";
private static final String BTN_DRAWABLE_UNPRESSED_ENDING = "_unpressed";
private TextButton confirmButton;
public SingleButtonDialog(float width, float height, DialogType dialogType,String buttonText) {
super(width, height,dialogType);
prepareButton(buttonText);
}
private void prepareButton(String buttonText){
confirmButton = new TextButton(buttonText, new Skin(Gdx.files.internal("uiskin.json")));
NinePatch up = buttonAtlas.createPatch(dialogType.getButtonTextureName()+"_unpressed");
NinePatch up = buttonAtlas.createPatch(dialogType.getButtonTextureName()+BTN_DRAWABLE_UNPRESSED_ENDING);
NinePatchDrawable npdUp = new NinePatchDrawable(up);
NinePatch down = buttonAtlas.createPatch(dialogType.getButtonTextureName()+"_pressed");
NinePatch down = buttonAtlas.createPatch(dialogType.getButtonTextureName()+BTN_DRAWABLE_PRESSED_ENDING);
NinePatchDrawable npdDown = new NinePatchDrawable(down);
NinePatch dis = buttonAtlas.createPatch("tablexiabutton_disabled");
NinePatch dis = buttonAtlas.createPatch(BTN_DISABLED_ATLAS_NAME);
NinePatchDrawable npdDis = new NinePatchDrawable(dis);
confirmButton.setStyle(new TextButton.TextButtonStyle(npdUp, npdDown, npdDis,getStyle().titleFont));
confirmButton.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
buttonAction();
}
button(confirmButton);
;
});
getButtonTable().add(confirmButton).width(getPrefWidth()*BUTTON_WIDTH_RATIO).height(getPrefHeight()* BUTTON_HEIGHT_RATIO);
}
public abstract void buttonAction();
}
package cz.nic.tablexia.util.ui.dialog;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.NinePatch;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
import com.badlogic.gdx.scenes.scene2d.ui.TextButton;
import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
import com.badlogic.gdx.scenes.scene2d.utils.NinePatchDrawable;
/**
* Created by Václav Tarantík on 26.3.15.
*/
public abstract class TwoButtonDialog extends TablexiaDialog {
private static final String BTN_DISABLED_ATLAS_NAME = "tablexiabutton_disabled";
private static final float BUTTON_WIDTH_RATIO = 0.4f;
private static final float BUTTON_HEIGHT_RATIO = 0.25f;
private static final String BTN_DRAWABLE_PRESSED_ENDING = "_pressed";
private static final String BTN_DRAWABLE_UNPRESSED_ENDING = "_unpressed";
private TextButton leftButton;
private TextButton rightButton;
public TwoButtonDialog(float width, float height, DialogType dialogType, String buttonLeftText, String buttonRightText) {
super(width, height, dialogType);
prepareButtons(buttonLeftText,buttonRightText);
}
private void prepareButtons(String buttonLeftText,String buttonRightText){
Skin defaultSkin = new Skin(Gdx.files.internal("uiskin.json"));
NinePatch ninePatchBtnDisabled = buttonAtlas.createPatch(BTN_DISABLED_ATLAS_NAME);
NinePatchDrawable ninePatchDrawableBtnDisabled = new NinePatchDrawable(ninePatchBtnDisabled);
leftButton = new TextButton(buttonLeftText, defaultSkin);
NinePatch ninepatchBtnLeftUp = buttonAtlas.createPatch(dialogType.getButtonTextureName()+BTN_DRAWABLE_UNPRESSED_ENDING);
NinePatchDrawable ninePatchDrawableBtnLeftUp = new NinePatchDrawable(ninepatchBtnLeftUp);
NinePatch ninePatchBtnLeftDown = buttonAtlas.createPatch(dialogType.getButtonTextureName()+BTN_DRAWABLE_PRESSED_ENDING);
NinePatchDrawable ninePatchDrawableBtnLeftDown = new NinePatchDrawable(ninePatchBtnLeftDown);
leftButton.setStyle(new TextButton.TextButtonStyle(ninePatchDrawableBtnLeftUp, ninePatchDrawableBtnLeftDown, ninePatchDrawableBtnDisabled, getStyle().titleFont));
getButtonTable().add(leftButton).width(getPrefWidth()*BUTTON_WIDTH_RATIO).height(getPrefHeight()* BUTTON_HEIGHT_RATIO);
leftButton.addListener( new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
leftButtonAction();
};
});
rightButton = new TextButton(buttonRightText, defaultSkin);
NinePatch up = buttonAtlas.createPatch(dialogType.getButtonTextureName()+BTN_DRAWABLE_UNPRESSED_ENDING);
NinePatchDrawable npdUp = new NinePatchDrawable(up);
NinePatch down = buttonAtlas.createPatch(dialogType.getButtonTextureName()+BTN_DRAWABLE_PRESSED_ENDING);
NinePatchDrawable npdDown = new NinePatchDrawable(down);
rightButton.setStyle(new TextButton.TextButtonStyle(npdUp, npdDown, ninePatchDrawableBtnDisabled, getStyle().titleFont));
getButtonTable().add(rightButton).width(getPrefWidth()*BUTTON_WIDTH_RATIO).height(getPrefHeight()* BUTTON_HEIGHT_RATIO);
rightButton.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
rightButtonAction();
}
;
});
}
public abstract void leftButtonAction();
public abstract void rightButtonAction();
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment