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

#20 ImageDialog support, need to resolve text content rendering

parent 0aeb9c01
No related branches found
No related tags found
No related merge requests found
......@@ -16,6 +16,7 @@ import com.badlogic.gdx.scenes.scene2d.utils.ClickListener;
import com.badlogic.gdx.scenes.scene2d.utils.NinePatchDrawable;
import com.badlogic.gdx.scenes.scene2d.utils.SpriteDrawable;
import java.util.ArrayList;
import java.util.List;
import cz.nic.tablexia.TablexiaSettings;
......@@ -24,9 +25,11 @@ 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.ImageDialog;
import cz.nic.tablexia.util.ui.dialog.SingleButtonDialog;
import cz.nic.tablexia.util.ui.dialog.TablexiaDialog;
import cz.nic.tablexia.util.ui.dialog.TwoButtonDialog;
import cz.nic.tablexia.util.ui.dialog.text.DialogTextContent;
public class HallOfFameScreen extends AbstractTablexiaScreen<Void> {
......@@ -137,18 +140,11 @@ public class HallOfFameScreen extends AbstractTablexiaScreen<Void> {
NinePatch np = new NinePatch(texture);
NinePatchDrawable npd = new NinePatchDrawable(np);
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);
List<Texture> dialogTextures = new ArrayList<Texture>();
dialogTextures.add(getTexture(HallOfFameAssets.HALL_OF_FAME_DOOR));
dialogTextures.add(getTexture(HallOfFameAssets.HALL_OF_FAME_DOOR));
new TablexiaDialog(800,350,400,300, TablexiaDialog.DialogType.GAME_HOW_TO_PLAY,new DialogTextContent("HOJ","AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ AHOJ")).show(getStage());
//TODO add action for leaving to main menu
}
});
......
package cz.nic.tablexia.util.ui.dialog;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.scenes.scene2d.ui.Image;
import com.badlogic.gdx.scenes.scene2d.ui.Label;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import java.util.List;
import cz.nic.tablexia.util.ui.dialog.text.DialogTextContent;
/**
* Created by Václav Tarantík on 19.3.15.
*/
public class ImageDialog extends TablexiaDialog {
public ImageDialog(float width, float height,DialogType dialogType) {
super(width,height,dialogType);
private List<Texture> texturesList;
public ImageDialog(float x, float y,float width, float height,DialogType dialogType,List<Texture> texturesList, DialogTextContent dialogTextContent) {
super(x,y,width,height,dialogType,dialogTextContent);
this.texturesList = texturesList;
prepareContent(dialogTextContent);
}
private void prepareContent(DialogTextContent dialogTextContent){
Table imageGroup = new Table();
for(Texture texture:texturesList){
Image image = new Image(texture);
imageGroup.add(image).padBottom(20f);
imageGroup.row();
}
getContentTable().add(imageGroup).width(width/2);
prepareTextContent();
}
}
......@@ -8,6 +8,8 @@ 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.ui.dialog.text.DialogTextContent;
/**
* Created by Václav Tarantík on 24.3.15.
*/
......@@ -21,8 +23,8 @@ public abstract class SingleButtonDialog extends TablexiaDialog {
private TextButton confirmButton;
public SingleButtonDialog(float width, float height, DialogType dialogType,String buttonText) {
super(width, height,dialogType);
public SingleButtonDialog(float x, float y,float width, float height, DialogType dialogType,String buttonText,DialogTextContent dialogTextContent) {
super(x,y,width, height,dialogType,dialogTextContent);
prepareButton(buttonText);
}
......
package cz.nic.tablexia.util.ui.dialog;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.NinePatch;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.math.Interpolation;
......@@ -9,22 +10,28 @@ 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.ui.Skin;
import com.badlogic.gdx.scenes.scene2d.ui.VerticalGroup;
import com.badlogic.gdx.scenes.scene2d.utils.Align;
import com.badlogic.gdx.scenes.scene2d.utils.NinePatchDrawable;
import cz.nic.tablexia.util.ui.dialog.text.DialogTextContent;
import static com.badlogic.gdx.scenes.scene2d.actions.Actions.sequence;
/**
* Created by Václav Tarantík on 17.3.15.
*/
public class TablexiaDialog extends Dialog {
private static Skin skin;
protected static Skin skin;
public static TextureAtlas backgroundAtlas;
public static TextureAtlas buttonAtlas;
private float width;
private float height;
protected float width;
protected float height;
protected float x;
protected float y;
protected DialogType dialogType;
protected DialogTextContent dialogTextContent;
public enum DialogType{
HALLOFFAME_MOUSE("screen_halloffame_mouse_bubble",null,null),
......@@ -66,42 +73,60 @@ public class TablexiaDialog extends Dialog {
buttonAtlas = new TextureAtlas(Gdx.files.internal("atlases/buttons_atlas.pack"));
}
public TablexiaDialog(float width,float height, DialogType dialogType) {
public TablexiaDialog(float x, float y,float width,float height, DialogType dialogType,DialogTextContent dialogTextContent) {
super("",skin);
setModal(true);
setMovable(false);
setResizable(false);
this.x = x;
this.y = y;
this.width = width;
this.height = height;
this.dialogType = dialogType;
this.dialogTextContent = dialogTextContent;
NinePatch np = backgroundAtlas.createPatch(dialogType.dialogBackgroundTextureName);
NinePatchDrawable npd = new NinePatchDrawable(np);
setBackground(npd);
prepareTextContent();
}
@Override
public TablexiaDialog text(String text) {
Label label = new Label(text,skin);
label.setWrap(true);
label.setAlignment(Align.left);
getContentTable().add(label).prefWidth(width).prefHeight(height);
return this;
}
// @Override
// public TablexiaDialog text(String text) {
// Label label = new Label(text,skin);
// label.setWrap(true);
// label.setAlignment(Align.left);
// label.setColor(Color.BLACK);
// getContentTable().add(label).prefWidth(width).prefHeight(height);
//
// return this;
// }
@Override
public Dialog show(Stage stage) {
return show(stage, Math.round((stage.getWidth() - getWidth()) / 2), Math.round((stage.getHeight() - getHeight()) / 2));
}
public Dialog show(Stage stage, float positionX, float positionY) {
show(stage, sequence(Actions.alpha(0), Actions.fadeIn(0.4f, Interpolation.fade)));
setPosition(positionX, positionY);
setPosition(x, y);
return this;
}
protected void prepareTextContent(){
VerticalGroup verticalGroup = new VerticalGroup();
if(!dialogTextContent.getTitle().equals("")&&dialogTextContent.getTitle()!=null){
Label titleLabel = new Label(dialogTextContent.getTitle(),skin);
titleLabel.setWrap(true);
titleLabel.setAlignment(Align.center);
titleLabel.setColor(Color.BLACK);
getContentTable().add(titleLabel).prefWidth(width).prefHeight(height);
getContentTable().row();
}
Label label = new Label(dialogTextContent.getContent(),skin);
label.setWrap(true);
label.setAlignment(Align.left);
getContentTable().add(label).prefWidth(width).prefHeight(height);
}
@Override
public float getPrefWidth() {
return width;
......
......@@ -8,6 +8,8 @@ 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.ui.dialog.text.DialogTextContent;
/**
* Created by Václav Tarantík on 26.3.15.
*/
......@@ -23,8 +25,8 @@ public abstract class TwoButtonDialog extends TablexiaDialog {
private TextButton leftButton;
private TextButton rightButton;
public TwoButtonDialog(float width, float height, DialogType dialogType, String buttonLeftText, String buttonRightText) {
super(width, height, dialogType);
public TwoButtonDialog(float x, float y,float width, float height, DialogType dialogType, String buttonLeftText, String buttonRightText,DialogTextContent dialogTextContent) {
super(x,y,width, height, dialogType,dialogTextContent);
prepareButtons(buttonLeftText,buttonRightText);
}
......
package cz.nic.tablexia.util.ui.dialog.text;
/**
* Created by Václav Tarantík on 27.3.15.
*/
public class DialogTextContent {
private String title;
private String content;
public DialogTextContent(String title,String content){
this.title = title;
this.content = content;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
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