X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fshared%2Fstates.cpp;h=630d9a72e498cf87fae9d2793c4f4a48c9aac369;hb=307482574d3acac09e38263de521a1826ceec7ce;hp=b9a48b09a94ab53840070e13b173628bd223d214;hpb=69e4d6c0a86a27f9b3f1297e46c55b36059a24b9;p=blank.git diff --git a/src/shared/states.cpp b/src/shared/states.cpp index b9a48b0..630d9a7 100644 --- a/src/shared/states.cpp +++ b/src/shared/states.cpp @@ -14,16 +14,28 @@ ChatState::ChatState(Environment &env, State &parent, Responder &responder) : env(env) , parent(parent) , responder(responder) +, preset() , 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)); + input.Foreground(PrimitiveMesh::Color(255)); + input.Background(PrimitiveMesh::Color(127)); +} + +void ChatState::Preset(const std::string &text) { + preset = text; +} + +void ChatState::Clear() { + preset.clear(); } void ChatState::OnResume() { OnResize(env.viewport); input.Clear(); + if (!preset.empty()) { + input.Insert(preset.c_str()); + } input.Focus(env.viewport); } @@ -126,12 +138,12 @@ void MessageState::ClearMessage() { } void MessageState::Handle(const SDL_Event &e) { - if (e.type == SDL_KEYDOWN) { + if (e.type == SDL_QUIT || e.type == SDL_KEYDOWN) { env.state.Pop(); } } -void MessageState::Update(int dt) { +void MessageState::Update(int) { }