+++ /dev/null
-#include "ChatState.hpp"
-
-#include "Environment.hpp"
-#include "../io/event.hpp"
-
-#include <iostream>
-
-
-namespace blank {
-
-ChatState::ChatState(Environment &env, State &parent, Responder &responder)
-: env(env)
-, parent(parent)
-, responder(responder)
-, input(env.assets.small_ui_font) {
- input.Position(glm::vec3(25.0f, -25.0f, -1.0f), Gravity::SOUTH_WEST, Gravity::SOUTH_WEST);
- input.Width(env.viewport.Width() - 50.0f);
- input.Foreground(glm::vec4(1.0f));
- input.Background(glm::vec4(0.5f));
-}
-
-void ChatState::OnResume() {
- OnResize(env.viewport);
- input.Clear();
- input.Focus(env.viewport);
-}
-
-void ChatState::OnPause() {
- input.Blur();
-}
-
-void ChatState::OnResize(Viewport &viewport) {
- input.Width(viewport.Width() - 50.0f);
-}
-
-
-void ChatState::Handle(const SDL_Event &e) {
- switch (e.type) {
- case SDL_KEYDOWN:
- switch (e.key.keysym.sym) {
- case SDLK_ESCAPE:
- Quit();
- break;
- case SDLK_KP_ENTER:
- case SDLK_RETURN:
- responder.OnLineSubmit(input.GetInput());
- Quit();
- break;
-
- case SDLK_BACKSPACE:
- input.Backspace();
- break;
- case SDLK_DELETE:
- input.Delete();
- break;
-
- case SDLK_LEFT:
- input.MoveBackward();
- break;
- case SDLK_RIGHT:
- input.MoveForward();
- break;
-
- case SDLK_HOME:
- input.MoveBegin();
- break;
- case SDLK_END:
- input.MoveEnd();
- break;
-
- default:
- break;
- }
- break;
-
- case SDL_QUIT:
- env.state.PopAll();
- break;
-
- case SDL_TEXTINPUT:
- input.Handle(e.text);
- break;
-
- case SDL_TEXTEDITING:
- std::cout << e << std::endl;
- input.Handle(e.edit);
- break;
-
- default:
- break;
- }
-}
-
-void ChatState::Quit() {
- env.state.PopUntil(this);
-}
-
-void ChatState::Update(int dt) {
- parent.Update(dt);
-}
-
-void ChatState::Render(Viewport &viewport) {
- parent.Render(viewport);
- input.Render(viewport);
-}
-
-}