#pragma once #include #include #include #include namespace dchat { using LoginHandler = std::function; using RegisterHandler = std::function; using RegisterPasswordMismatchHandler = std::function; class LoginWindow : public Gtk::Grid { public: LoginWindow(); void setLoginHandler(LoginHandler loginHandler); void setRegisterHandler(RegisterHandler registerHandler); void setRegisterPasswordMismatch(RegisterPasswordMismatchHandler passwordMismatchHandler); private: void setupLogin(); void setupRegister(); public: Gtk::Grid loginLayout; Gtk::Entry loginUsernameInput; Gtk::Entry loginPasswordInput; Gtk::Button loginButton; std::function loginHandler; LoginHandler loginHandlerUser; Gtk::Grid registerLayout; Gtk::Entry registerUsernameInput; Gtk::Entry registerPasswordInput; Gtk::Entry registerPasswordRepeatInput; Gtk::Button registerButton; std::function registerHandler; RegisterHandler registerHandlerUser; RegisterPasswordMismatchHandler passwordMismatchHandler; }; }