X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2FguiChatConsole.h;h=3013a1d3134d905d4c0c4424cda38b2d6e30bb72;hb=759fbabaea6fbd21497a1dc62a395af6e385518e;hp=9e76a116e72c1e4000e07ec7801deef42c0738c2;hpb=037b2591971d752e67fa7d47095b996b3f56da5a;p=minetest.git diff --git a/src/guiChatConsole.h b/src/guiChatConsole.h index 9e76a116e..3013a1d31 100644 --- a/src/guiChatConsole.h +++ b/src/guiChatConsole.h @@ -1,6 +1,6 @@ /* -Minetest-c55 -Copyright (C) 2011 celeron55, Perttu Ahola +Minetest +Copyright (C) 2013 celeron55, Perttu Ahola This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -20,8 +20,10 @@ with this program; if not, write to the Free Software Foundation, Inc., #ifndef GUICHATCONSOLE_HEADER #define GUICHATCONSOLE_HEADER -#include "common_irrlicht.h" +#include "irrlichttypes_extrabloated.h" +#include "modalMenu.h" #include "chat.h" +#include "config.h" class Client; @@ -32,13 +34,17 @@ class GUIChatConsole : public gui::IGUIElement gui::IGUIElement* parent, s32 id, ChatBackend* backend, - Client* client); + Client* client, + IMenuManager* menumgr); virtual ~GUIChatConsole(); // Open the console (height = desired fraction of screen size) // This doesn't open immediately but initiates an animation. // You should call isOpenInhibited() before this. void openConsole(f32 height); + + bool isOpen() const; + // Check if the console should not be opened at the moment // This is to avoid reopening the console immediately after closing bool isOpenInhibited() const; @@ -47,11 +53,16 @@ class GUIChatConsole : public gui::IGUIElement void closeConsole(); // Close the console immediately, without animation. void closeConsoleAtOnce(); + // Set whether to close the console after the user presses enter. + void setCloseOnEnter(bool close) { m_close_on_enter = close; } // Return the desired height (fraction of screen size) // Zero if the console is closed or getting closed f32 getDesiredHeight() const; + // Replace actual line when adding the actual to the history (if there is any) + void replaceAndAddToHistory(std::wstring line); + // Change how the cursor looks void setCursor( bool visible, @@ -66,6 +77,8 @@ class GUIChatConsole : public gui::IGUIElement virtual bool OnEvent(const SEvent& event); + virtual void setVisible(bool visible); + private: void reformatConsole(); void recalculateConsolePosition(); @@ -77,11 +90,9 @@ class GUIChatConsole : public gui::IGUIElement void drawPrompt(); private: - // pointer to the chat backend ChatBackend* m_chat_backend; - - // pointer to the client Client* m_client; + IMenuManager* m_menumgr; // current screen size v2u32 m_screensize; @@ -91,6 +102,8 @@ class GUIChatConsole : public gui::IGUIElement // should the console be opened or closed? bool m_open; + // should it close after you press enter? + bool m_close_on_enter; // current console height [pixels] s32 m_height; // desired height [pixels]