summaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c128
1 files changed, 2 insertions, 126 deletions
diff --git a/src/main.c b/src/main.c
index b29b081..45ea3cd 100644
--- a/src/main.c
+++ b/src/main.c
@@ -7,136 +7,12 @@
#include "auth.h"
#include "http.h"
#include "timeline.h"
-#include "window.h"
+#include "login_window.h"
-static GtkWidget *window;
-static GtkWidget *box;
-static GtkWidget *instance_name_box, *email_box, *password_box;
-static GtkWidget *submit_button;
-static GtkWidget *spinner;
-
-static void login_callback(bool success)
-{
- if (!success) {
- fprintf(stderr, "login_callback(): login failed\n");
- gtk_spinner_stop(GTK_SPINNER(spinner));
- return;
- }
-
- printf("login success\n");
- gtk_spinner_stop(GTK_SPINNER(spinner));
-}
-
-static void register_callback(bool success)
-{
- if (!success) {
- gtk_spinner_stop(GTK_SPINNER(spinner));
- fprintf(stderr, "register_callback(): register failed\n");
- return;
- }
- printf("register success\n");
-
- const char *email, *password;
- email = gtk_entry_get_text(GTK_ENTRY(email_box));
- password = gtk_entry_get_text(GTK_ENTRY(password_box));
-
- if (login(email, password, &login_callback)) {
- gtk_spinner_stop(GTK_SPINNER(spinner));
- return;
- }
-}
-
-static void submit_login_form()
-{
- gtk_spinner_start(GTK_SPINNER(spinner));
- const char *instance_name;
- instance_name = gtk_entry_get_text(GTK_ENTRY(instance_name_box));
- if (register_app(instance_name, &register_callback)) {
- gtk_spinner_stop(GTK_SPINNER(spinner));
- return;
- }
-}
-
-static void submit_button_clicked(GtkButton *button, gpointer user_data)
-{
- submit_login_form();
-}
-
-static void form_on_activate(GtkEntry *entry, gpointer user_data)
-{
- submit_login_form();
-}
-
-static bool is_form_valid()
-{
- if (strlen(gtk_entry_get_text(GTK_ENTRY(instance_name_box))) < 1 ||
- strlen(gtk_entry_get_text(GTK_ENTRY(email_box))) < 1 ||
- strlen(gtk_entry_get_text(GTK_ENTRY(password_box))) < 1)
- return false;
- return true;
-}
-
-static void on_form_changed(GtkWidget *widget, gpointer data)
-{
- if (is_form_valid())
- gtk_widget_set_sensitive(GTK_WIDGET(submit_button), true);
- else
- gtk_widget_set_sensitive(GTK_WIDGET(submit_button), false);
-}
static void activate(GtkApplication *app, gpointer user_data)
{
- window = gtk_application_window_new(app);
- gtk_window_set_title(GTK_WINDOW(window), "ap_client");
- gtk_window_set_default_size(GTK_WINDOW(window), 800, 600);
- gtk_container_set_border_width(GTK_CONTAINER(window), 10);
-
- box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 6);
- gtk_widget_set_valign(GTK_WIDGET(box), GTK_ALIGN_CENTER);
- gtk_widget_set_halign(GTK_WIDGET(box), GTK_ALIGN_CENTER);
-
- instance_name_box = gtk_entry_new();
- gtk_entry_set_placeholder_text(
- GTK_ENTRY(instance_name_box), "Instance domain");
- g_signal_connect(GTK_ENTRY(instance_name_box), "activate",
- G_CALLBACK(form_on_activate), NULL);
- g_signal_connect(G_OBJECT(instance_name_box), "changed",
- G_CALLBACK(on_form_changed), NULL);
-
- email_box = gtk_entry_new();
- gtk_entry_set_placeholder_text(GTK_ENTRY(email_box), "Email");
- gtk_entry_set_input_purpose(GTK_ENTRY(email_box), GTK_INPUT_PURPOSE_EMAIL);
- g_signal_connect(GTK_ENTRY(email_box), "activate",
- G_CALLBACK(form_on_activate), NULL);
- g_signal_connect(G_OBJECT(email_box), "changed",
- G_CALLBACK(on_form_changed), NULL);
-
- password_box = gtk_entry_new();
- gtk_entry_set_placeholder_text(GTK_ENTRY(password_box), "Password");
- gtk_entry_set_input_purpose(
- GTK_ENTRY(password_box), GTK_INPUT_PURPOSE_PASSWORD);
- gtk_entry_set_visibility(GTK_ENTRY(password_box), false);
- g_signal_connect(GTK_ENTRY(password_box), "activate",
- G_CALLBACK(form_on_activate), NULL);
- g_signal_connect(G_OBJECT(password_box), "changed",
- G_CALLBACK(on_form_changed), NULL);
-
- submit_button = gtk_button_new();
- g_signal_connect(GTK_BUTTON(submit_button), "clicked",
- G_CALLBACK(submit_button_clicked), G_OBJECT(window));
- gtk_button_set_label(GTK_BUTTON(submit_button), "Submit");
- gtk_widget_set_sensitive(GTK_WIDGET(submit_button), false);
-
- spinner = gtk_spinner_new();
-
- gtk_container_add(GTK_CONTAINER(window), box);
- gtk_container_add(GTK_CONTAINER(box), instance_name_box);
- gtk_container_add(GTK_CONTAINER(box), email_box);
- gtk_container_add(GTK_CONTAINER(box), password_box);
- gtk_container_add(GTK_CONTAINER(box), submit_button);
- gtk_container_add(GTK_CONTAINER(box), spinner);
-
- gtk_widget_show_all(window);
+ create_login_window(app, user_data);
}
int main(int argc, char **argv)