X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2FguiChatConsole.h;h=0332678c759667cd9d66ddcac93b22d8094fd4b9;hb=da88a186766020762f5c86bc6ba1624e4feaae2c;hp=5991157b276bc06003f8c5b4c6bbc622655fd2bd;hpb=7cb521725569b7eda98af40f7e4b4eb63afff633;p=minetest.git diff --git a/src/guiChatConsole.h b/src/guiChatConsole.h index 5991157b2..0332678c7 100644 --- a/src/guiChatConsole.h +++ b/src/guiChatConsole.h @@ -21,7 +21,9 @@ with this program; if not, write to the Free Software Foundation, Inc., #define GUICHATCONSOLE_HEADER #include "irrlichttypes_extrabloated.h" +#include "modalMenu.h" #include "chat.h" +#include "config.h" class Client; @@ -32,13 +34,14 @@ 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); + void openConsole(f32 scale); bool isOpen() const; @@ -50,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, @@ -69,6 +77,8 @@ class GUIChatConsole : public gui::IGUIElement virtual bool OnEvent(const SEvent& event); + virtual void setVisible(bool visible); + private: void reformatConsole(); void recalculateConsolePosition(); @@ -80,20 +90,20 @@ 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; // used to compute how much time passed since last animate() - u32 m_animate_time_old; + u64 m_animate_time_old; // 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]