-
Notifications
You must be signed in to change notification settings - Fork 2
/
keyboardhistory.cpp
75 lines (65 loc) · 1.21 KB
/
keyboardhistory.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include "main.h"
#include "gui/gui.h"
#include "game/game.h"
#include "vendor/imgui/imgui_internal.h"
#include "keyboardhistory.h"
#include "keyboard.h"
extern CGUI* pGUI;
extern CKeyBoard* pKeyBoard;
CKeyBoardHistory::CKeyBoardHistory()
{
Log("Initalizing KeyBoardHistory..");
m_iCounter = 0;
}
CKeyBoardHistory::~CKeyBoardHistory()
{
}
void CKeyBoardHistory::AddStringToHistory(const std::string& msg)
{
if (msg.size() == 0) return;
m_Buffer.insert(m_Buffer.begin(), msg);
while (m_Buffer.size() >= 20)
{
m_Buffer.pop_back();
}
}
void CKeyBoardHistory::PageUp()
{
if (!m_Buffer.size())
{
m_iCounter = 0;
return;
}
m_iCounter++;
if (m_iCounter >= m_Buffer.size() + 1)
{
m_iCounter = m_Buffer.size();
return;
}
pKeyBoard->Flush();
AddTextToBuffer(m_Buffer[m_iCounter - 1]);
}
void CKeyBoardHistory::PageDown()
{
m_iCounter--;
if (m_iCounter <= 0)
{
m_iCounter = 0;
pKeyBoard->Flush();
return;
}
pKeyBoard->Flush();
AddTextToBuffer(m_Buffer[m_iCounter - 1]);
}
void CKeyBoardHistory::ResetPointer()
{
m_iCounter = 0;
}
void CKeyBoardHistory::AddTextToBuffer(const std::string& msg)
{
if (pKeyBoard)
{
for (int i = 0; i < msg.size(); i++)
pKeyBoard->AddCharToInput((char)msg[i]);
}
}