// // Created by selim on 03.01.2022. // #include "LoginWindow.h" #include "../services/Api.h" #include #include LoginWindow::LoginWindow() { set_title("Login"); set_default_size(640, 480); _emailField.set_placeholder_text("Email"); _passwordField.set_placeholder_text("Password"); _passwordField.set_input_purpose(Gtk::InputPurpose::PASSWORD); _passwordField.set_visibility(false); _emailField.signal_changed().connect(sigc::mem_fun(*this, &LoginWindow::ValidateFields)); _passwordField.signal_changed().connect(sigc::mem_fun(*this, &LoginWindow::ValidateFields)); _loginButton.set_margin_top(8); _loginButton.set_margin_bottom(8); _loginButton.set_label("Log in"); _loginButton.signal_clicked().connect(sigc::mem_fun(*this, &LoginWindow::LoginClicked)); _loginButton.set_sensitive(false); Gtk::Box box(Gtk::Orientation::VERTICAL, 8); box.set_margin(48); box.set_valign(Gtk::Align::CENTER); box.append(_emailField); box.append(_passwordField); box.append(_loginButton); box.append(_spinner); set_child(box); } //Task foo() { // co_return 42; //} // //Task bar() { // auto xxx = co_await foo(); // std::cout << "xxx: " << xxx << std::endl; //} void LoginWindow::LoginClicked() { auto email = _emailField.get_text(); auto password = _passwordField.get_text(); _loginButton.set_sensitive(false); _emailField.set_sensitive(false); _passwordField.set_sensitive(false); _spinner.start(); std::cout << "Login clicked" << std::endl; std::cout << "Login: " << email << std::endl; std::cout << "Password: " << password << std::endl; User user = co_await Api::login(email, password); } void LoginWindow::ValidateFields() { bool buttonEnabled = _emailField.get_text_length() > 0 && _passwordField.get_text_length() > 0; _loginButton.set_sensitive(buttonEnabled); }