Files
GabsPuNs-MinecraftConsoles/Minecraft.Client/ChatScreen.h
GabsPuNs 1ceeb2a647 Merge
Use Latest 4JLIBS
Swap to mimalloc-static
Merge keyboard commits except HTML ones.
2026-04-18 12:12:40 -04:00

41 lines
937 B
C++

#pragma once
#include "Screen.h"
#include <vector>
using namespace std;
class ChatScreen : public Screen
{
protected:
wstring message;
int cursorIndex;
void applyHistoryMessage();
private:
int frame;
static const size_t CHAT_HISTORY_MAX = 100;
static std::vector<wstring> s_chatHistory;
static int s_historyIndex;
static wstring s_historyDraft;
static int s_chatIndex;
static const wstring allowedChars;
static bool isAllowedChatChar(wchar_t c);
public:
ChatScreen();
virtual void init();
virtual void removed();
virtual void tick();
virtual void handlePasteRequest();
virtual void handleHistoryUp();
virtual void handleHistoryDown();
static int getChatIndex();
static void correctChatIndex(int newChatIndex);
static void setWheelValue(int wheel);
protected:
void keyPressed(wchar_t ch, int eventKey);
public:
void render(int xm, int ym, float a);
protected:
void mouseClicked(int x, int y, int buttonNum);
};