summaryrefslogtreecommitdiff
path: root/src/client_manager.hh
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2013-09-12 23:39:34 +0200
committerMaxime Coste <frrrwww@gmail.com>2013-09-12 23:39:34 +0200
commitac7e437730ecbe32f9e4e168a3ee4a7b7f3cd761 (patch)
treecb5b0e413373ed209d092d476f0abf4a0eeb8209 /src/client_manager.hh
parent916a0cb52e8637d0e6ec456363ef6412142945da (diff)
Move Client responsibilities to InputHandler
InputHandler owns it's UserInterface, and is directly stored by the ClientManager.
Diffstat (limited to 'src/client_manager.hh')
-rw-r--r--src/client_manager.hh34
1 files changed, 7 insertions, 27 deletions
diff --git a/src/client_manager.hh b/src/client_manager.hh
index 8501e3ea..ef668981 100644
--- a/src/client_manager.hh
+++ b/src/client_manager.hh
@@ -9,34 +9,14 @@ namespace Kakoune
struct client_removed{};
-class Client
-{
-public:
- Context& context() { return m_input_handler.context(); }
- const String& name() const { return m_name; }
-
-private:
- friend class ClientManager;
-
- Client(std::unique_ptr<UserInterface>&& ui,
- Window& window, String name);
- Client(Client&&) = delete;
- Client& operator=(Client&& other) = delete;
-
- const std::unique_ptr<UserInterface> m_user_interface;
- InputHandler m_input_handler;
- String m_name;
-};
-
-
class ClientManager : public Singleton<ClientManager>
{
public:
ClientManager();
~ClientManager();
- Client* create_client(std::unique_ptr<UserInterface>&& ui,
- const String& init_cmd);
+ InputHandler* create_client(std::unique_ptr<UserInterface>&& ui,
+ const String& init_cmd);
bool empty() const { return m_clients.empty(); }
size_t count() const { return m_clients.size(); }
@@ -46,15 +26,15 @@ public:
void redraw_clients() const;
- Client& get_client(const Context& context);
- Client& get_client(const String& name);
- void set_client_name(Client& client, String name);
- void remove_client(Client& client);
+ InputHandler& get_client(const Context& context);
+ InputHandler& get_client(const String& name);
+ void set_client_name(InputHandler& client, String name);
+ void remove_client(InputHandler& client);
private:
String generate_name() const;
- std::vector<std::unique_ptr<Client>> m_clients;
+ std::vector<std::unique_ptr<InputHandler>> m_clients;
std::vector<std::unique_ptr<Window>> m_windows;
};