File: NetPlayChatUI.h

package info (click to toggle)
dolphin-emu 2512%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 76,328 kB
  • sloc: cpp: 499,023; ansic: 119,674; python: 6,547; sh: 2,338; makefile: 1,093; asm: 726; pascal: 257; javascript: 183; perl: 97; objc: 75; xml: 30
file content (36 lines) | stat: -rw-r--r-- 816 bytes parent folder | download | duplicates (3)
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
// Copyright 2019 Dolphin Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#include <array>
#include <deque>
#include <functional>
#include <memory>
#include <string>
#include <utility>

class NetPlayChatUI
{
public:
  explicit NetPlayChatUI(std::function<void(const std::string&)> callback);
  ~NetPlayChatUI();

  using Color = std::array<float, 3>;

  void Display();
  void AppendChat(std::string message, Color color);
  void SendMessage();
  void Activate();

private:
  char m_message_buf[256] = {};
  bool m_scroll_to_bottom = false;
  bool m_activate = false;
  bool m_is_scrolled_to_bottom = true;

  std::deque<std::pair<std::string, Color>> m_messages;
  std::function<void(const std::string&)> m_message_callback;
};

extern std::unique_ptr<NetPlayChatUI> g_netplay_chat_ui;