package com.alastar.game.gui.constructed; import ru.alastar.main.net.responses.ChatSendResponse; import ru.alastar.net.Client; import com.alastar.game.ErderGame; import com.alastar.game.GameManager; import com.alastar.game.MainScreen; import com.alastar.game.gui.GUIButton; import com.alastar.game.gui.GUIChatWindow; import com.alastar.game.gui.GUITextField; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.Stage; import com.badlogic.gdx.scenes.scene2d.ui.TextButton; import com.badlogic.gdx.scenes.scene2d.ui.TextField; import com.badlogic.gdx.scenes.scene2d.ui.Window; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; import com.badlogic.gdx.scenes.scene2d.utils.FocusListener; public class ChatGUI extends BaseConstructed { private GUIChatWindow window; private GUITextField field; private GUIButton sendMsg; public ChatGUI(Stage s) { super(s, "Chat"); field = new GUITextField("", new TextField("", GameManager.getSkin(GameManager.selectedSkin), "textField")); field.setWidth(250); field.setPosition(new Vector2(10, 1800)); window = new GUIChatWindow("Chat", new Window("Chat", GameManager.getSkin(GameManager.selectedSkin), "window"), new Vector2(10, 1850), new Vector2(300, 100), 10, 10, 0, 0); ChangeListener e = new ChangeListener() { @Override public void changed(ChangeEvent event, Actor actor) { ChatSendResponse r = new ChatSendResponse(); r.msg = field.getText(); field.clear(); Client.Send(r); } }; FocusListener fl = new FocusListener() { @Override public void keyboardFocusChanged(FocusEvent event, Actor actor, boolean focused) { focusChanged(event); } @Override public void scrollFocusChanged(FocusEvent event, Actor actor, boolean focused) { focusChanged(event); } private void focusChanged(FocusEvent event) { if (event.isFocused()) { System.out.println("focus"); ErderGame.canMove = false; } else { System.out.println("Unfocus"); ErderGame.canMove = true; } } }; field.setEventListener(fl); sendMsg = new GUIButton("send_to_chat", new TextButton("^", GameManager.getSkin(GameManager.selectedSkin), "button"), e); sendMsg.setPosition(new Vector2(270, 1800)); actors.add(window); actors.add(field); actors.add(sendMsg); MainScreen.currentStage.addActor(window.getElementAsActor()); MainScreen.currentStage.addActor(field.getElementAsActor()); MainScreen.currentStage.addActor(sendMsg.getElementAsActor()); window.Show(); } public void addEntry(String name, String msg) { window.addEntry(name, msg); } @Override public void Destroy() { window.Destroy(); field.Destroy(); sendMsg.Destroy(); } }