]> git.localhorst.tv Git - blank.git/blobdiff - src/shared/states.cpp
make gcc nag more
[blank.git] / src / shared / states.cpp
index b9a48b09a94ab53840070e13b173628bd223d214..630d9a72e498cf87fae9d2793c4f4a48c9aac369 100644 (file)
@@ -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) {
 
 }