diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2013-09-12 23:39:34 +0200 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2013-09-12 23:39:34 +0200 |
| commit | ac7e437730ecbe32f9e4e168a3ee4a7b7f3cd761 (patch) | |
| tree | cb5b0e413373ed209d092d476f0abf4a0eeb8209 /src/client_manager.hh | |
| parent | 916a0cb52e8637d0e6ec456363ef6412142945da (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.hh | 34 |
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; }; |
