diff options
author | Joursoir <chat@joursoir.net> | 2020-12-06 19:47:25 +0000 |
---|---|---|
committer | Joursoir <chat@joursoir.net> | 2020-12-06 19:47:25 +0000 |
commit | e99a03a838ddcf9eecadc10a7f71837afac3b99c (patch) | |
tree | 092ac919a8a8090df9c01536f5169e27952f7776 /src/client_clui/clui.hpp | |
parent | 91d777da4f5baeac47b3097913b2407b45bc031e (diff) | |
download | want-chat-e99a03a838ddcf9eecadc10a7f71837afac3b99c.tar.gz want-chat-e99a03a838ddcf9eecadc10a7f71837afac3b99c.tar.bz2 want-chat-e99a03a838ddcf9eecadc10a7f71837afac3b99c.zip |
some changes in reg/auth; client: remove name in arguments
Diffstat (limited to 'src/client_clui/clui.hpp')
-rw-r--r-- | src/client_clui/clui.hpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/client_clui/clui.hpp b/src/client_clui/clui.hpp new file mode 100644 index 0000000..0373f95 --- /dev/null +++ b/src/client_clui/clui.hpp @@ -0,0 +1,61 @@ +// CLUI - Command Line User Interface + +#ifndef COMMANDLINEUI_H +#define COMMANDLINEUI_H + +#include <ncurses.h> +#include "../const_vars.hpp" + +class Interface_wc { + WINDOW *w; + int ny, nx; + int beg_y, beg_x; + int ch_line; +public: + Interface_wc(int num_y, int num_x, int by, int bx, char ch); + + WINDOW *GetWindow() { return w; } + void SetCursor(int y, int x) { wmove(w, y, x); } + void Clear(bool full); + void Update() { wrefresh(w); } + void Delete() { delwin(w); } + + void Hide(); +}; + +class ChatRoom { + Interface_wc *chat; + Interface_wc *players; + Interface_wc *input; + int i_nx, i_ny; + + struct message { + char msg[max_msg_len]; + int num_lines; // number of lines + int type; + message *prev; + }; + message *first; +public: + ChatRoom(); + ~ChatRoom(); + + // for chat: + void AddMessage(char *msg, int type); + + // for players: + //void AddPlayer() + + // for input: + int InputGetch() { return wgetch(input->GetWindow()); } + bool AddCharToSendMsg(char ch); + bool RemoveCharFromMsg(); + void InputClear() { input->Clear(false); } + void SetInputCursor(int y, int x); +private: + // for chat: + void ChatRedraw(); + void PrintMessage(int line, message *m); +}; + +#endif
\ No newline at end of file |