cmkl/fall-2025/sen-210/Assessments/Desktop/jobwizarddesktop-c/src/main.c

87 lines
3.3 KiB
C

/* main.c
*
* Copyright 2025 Win
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-3.0-or-later
*/
#include "config.h"
#include <glib/gi18n.h>
#include "jobwizarddesktop-c-application.h"
static void goto_register(GtkButton *btn, gpointer stack) {
adw_view_stack_set_visible_child_name(ADW_VIEW_STACK(stack), "register-window");
}
static void goto_login(GtkButton *btn, gpointer stack) {
adw_view_stack_set_visible_child_name(ADW_VIEW_STACK(stack), "login-window");
}
static void on_activate(GApplication *app) {
GtkBuilder *b_win = gtk_builder_new_from_resource("/me/winsdominoes/jobwizarddesktop/jobwizarddesktop-c-window.ui");
GtkWidget *win = GTK_WIDGET(gtk_builder_get_object(b_win, "window"));
GtkWidget *stack = GTK_WIDGET(gtk_builder_get_object(b_win, "stack"));
gtk_window_set_application(GTK_WINDOW(win), GTK_APPLICATION(app));
GtkBuilder *b_login = gtk_builder_new_from_resource("/me/winsdominoes/jobwizarddesktop/login-window.ui");
GtkWidget *login_page = GTK_WIDGET(gtk_builder_get_object(b_login, "login_page"));
GtkWidget *btn_reg = GTK_WIDGET(gtk_builder_get_object(b_login, "register_button"));
GtkBuilder *b_reg = gtk_builder_new_from_resource("/me/winsdominoes/jobwizarddesktop/register-window.ui");
GtkWidget *reg_page = GTK_WIDGET(gtk_builder_get_object(b_reg, "register_page"));
GtkWidget *btn_login = GTK_WIDGET(gtk_builder_get_object(b_reg, "login_button"));
// Add pages to ViewStack
adw_view_stack_add_titled(ADW_VIEW_STACK(stack), login_page, "login-window", "Login");
adw_view_stack_add_titled(ADW_VIEW_STACK(stack), reg_page, "register-window", "Register");
// Connect button actions
g_signal_connect(btn_reg, "clicked", G_CALLBACK(goto_register), stack);
g_signal_connect(btn_login, "clicked", G_CALLBACK(goto_login), stack);
gtk_window_present(GTK_WINDOW(win));
}
int
main (int argc,
char *argv[])
{
/*
g_autoptr(JobwizarddesktopCApplication) app = NULL;
int ret;
bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
textdomain (GETTEXT_PACKAGE);
app = jobwizarddesktop_c_application_new ("me.winsdominoes.jobwizarddesktop", G_APPLICATION_DEFAULT_FLAGS);
g_signal_connect(app, "activate", G_CALLBACK(on_activate), NULL);
ret = g_application_run (G_APPLICATION (app), argc, argv);
return ret;
* */
g_autoptr(JobwizarddesktopCApplication) app = jobwizarddesktop_c_application_new(
"me.winsdominoes.jobwizarddesktop", G_APPLICATION_FLAGS_NONE
);
g_signal_connect(app, "activate", G_CALLBACK(on_activate), NULL);
return g_application_run(G_APPLICATION(app), argc, argv);
}