aboutsummaryrefslogtreecommitdiff
path: root/src/LoginWindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/LoginWindow.cpp')
-rw-r--r--src/LoginWindow.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/LoginWindow.cpp b/src/LoginWindow.cpp
index 4232982..5dfbed6 100644
--- a/src/LoginWindow.cpp
+++ b/src/LoginWindow.cpp
@@ -10,12 +10,19 @@ namespace dchat
LoginWindow::LoginWindow() :
loginButton("Login")
{
+ loginHandler = [this]
+ {
+ if(loginHandlerUser)
+ loginHandlerUser(usernameInput.get_text(), passwordInput.get_text());
+ };
+
Gtk::Label *username = Gtk::manage(new Gtk::Label());
username->set_text("Username");
username->set_halign(Gtk::ALIGN_START);
attach(*username, 0, 0, 1, 1);
usernameInput.set_size_request(200);
+ usernameInput.signal_activate().connect(loginHandler);
attach_next_to(usernameInput, *username, Gtk::POS_BOTTOM, 3, 1);
Gtk::Alignment *usernamePasswordSpacer = Gtk::manage(new Gtk::Alignment());
@@ -29,6 +36,7 @@ namespace dchat
passwordInput.set_visibility(false);
passwordInput.set_size_request(200);
+ passwordInput.signal_activate().connect(loginHandler);
attach_next_to(passwordInput, *password, Gtk::POS_BOTTOM, 3, 1);
Gtk::Alignment *loginButtonSpacerTop = Gtk::manage(new Gtk::Alignment());
@@ -39,6 +47,7 @@ namespace dchat
attach_next_to(*loginButtonSpacer, *loginButtonSpacerTop, Gtk::POS_BOTTOM, 2, 1);
loginButton.set_halign(Gtk::ALIGN_END);
+ loginButton.signal_clicked().connect(loginHandler);
attach_next_to(loginButton, *loginButtonSpacer, Gtk::POS_RIGHT, 1, 1);
set_halign(Gtk::ALIGN_CENTER);
@@ -46,11 +55,8 @@ namespace dchat
get_style_context()->add_class("login-window");
}
- void LoginWindow::setLoginHandler(std::function<void()> loginHandler)
+ void LoginWindow::setLoginHandler(LoginHandler loginHandler)
{
- assert(loginHandler);
- usernameInput.signal_activate().connect(loginHandler);
- passwordInput.signal_activate().connect(loginHandler);
- loginButton.signal_clicked().connect(loginHandler);
+ loginHandlerUser = loginHandler;
}
} \ No newline at end of file