Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <gtk/gtk.h>
- #include <stdlib.h>
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <errno.h>
- #include <unistd.h>
- #include <stdio.h>
- #include <netdb.h>
- #include <string.h>
- extern int errno;
- int sd;
- static void inregistrare_admin(GtkButton *button, gpointer menu);
- static void login_admin(GtkButton *button, gpointer menu);
- static void inregistrare_utilizator(GtkButton *button, gpointer menu);
- static void logare_utilizator(GtkButton *button, gpointer menu);
- static void quit_out(GtkButton *button, gpointer menu);
- static void on_renunta(GtkButton *button, gpointer menu);
- static void quit_meniu(GtkButton *button, gpointer menu)
- {
- GtkWidget *parent = menu;
- int size_comm = strlen("quit");
- if(write(sd, &size_comm, sizeof(int)) <= 0)
- {
- perror("Eroare la scriere catre server");
- return errno;
- }
- if(write(sd, "quit", size_comm) <= 0)
- {
- perror("Eroare la scriere catre server");
- return errno;
- }
- // close(sd);
- }
- static void on_continua_top(GtkButton *button, GObject *context_object)
- {
- GtkWindow *parent = g_object_get_data(context_object, "parent");
- GtkEntry *entry = g_object_get_data(context_object, "entry");
- char *nume = gtk_entry_get_text(entry);
- int ok = 1;
- if(strlen(nume) == 0)
- ok = 0;
- if(ok)
- {
- int size_nume = strlen(nume);
- if(write(sd, &size_nume, sizeof(int)) <= 0)
- {
- perror("Eroare la write() catre server");
- return errno;
- }
- if(write(sd, nume, size_nume) <= 0)
- {
- perror("Eroare la write() catre server");
- return errno;
- }
- int ex = 0;
- if(read(sd, &ex, sizeof(int)) <= 0)
- {
- perror("Eroare la read() de la server");
- return errno;
- }
- if(ex == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Genul nu exista!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }else{
- char matrix[100][100];
- bzero(matrix, sizeof(matrix));
- if(read(sd, matrix, sizeof(matrix)) <= 0)
- {
- perror("Eroare la read de la server");
- return errno;
- }
- char text[1000];
- bzero(text, 1000);
- strcat(text, "Topul pentru genul ");
- strcat(text, nume);
- strcat(text, " este:\n");
- for(int i = 0; i < 100; i++)
- {
- if(strlen(matrix[i]) == 0)
- continue;
- strcat(text, matrix[i]);
- strcat(text, "\n");
- }
- GtkWindow *new_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- g_signal_connect(new_window, "delete-event", G_CALLBACK(quit_meniu), new_window);
- gtk_window_set_default_size(GTK_WINDOW(new_window), 400, 200);
- gtk_window_set_title(GTK_WINDOW(new_window), nume);
- GtkWidget *scrolled_window = gtk_scrolled_window_new(NULL, NULL);
- gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 10);
- GtkWidget *label = gtk_label_new(text);
- gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), label);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_container_add (GTK_CONTAINER (new_window), scrolled_window);
- gtk_widget_destroy(parent);
- gtk_widget_show_all(new_window);
- }
- }
- }
- static void top_pe_genuri(GtkButton *button, gpointer menu)
- {
- GtkWindow *parent = menu;
- GtkWindow *top = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(top), "Top pe genuri");
- gtk_window_set_default_size(GTK_WINDOW(top), 400, 200);
- int size_comm = strlen("top_pe_genuri");
- if(write(sd, &size_comm, sizeof(int)) <= 0)
- {
- perror("Eroare la write() catre server");
- return errno;
- }
- if(write(sd, "top_pe_genuri", size_comm) <= 0)
- {
- perror("Eroare la write() catre server");
- return errno;
- }
- char matrix[100][100];
- bzero(matrix, sizeof(matrix));
- if(read(sd, matrix, sizeof(matrix)) <= 0)
- {
- perror("Eroare la read() de la server");
- return errno;
- }
- char text[1000];
- bzero(text, 1000);
- strcat(text, "Poti vedea topul pentru urmatoarele genuri:\n");
- for(int i = 0; i < 100; i++)
- {
- if(strlen(matrix[i]) == 0)
- continue;
- strcat(text, matrix[i]);
- strcat(text, "\n");
- }
- GtkWidget *box;
- box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
- GtkWidget *label = gtk_label_new(text);
- GtkWidget *entry = gtk_entry_new();
- GtkWidget *continua = gtk_button_new_with_label("Continua");
- GtkWidget *renunta = gtk_button_new_with_label("Renunta");
- GtkWidget *hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
- GtkWidget *label_gen = gtk_label_new("Introdu genul:");
- GtkWidget *scrolled_window = gtk_scrolled_window_new(NULL, NULL);
- GtkWidget *hhbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
- gtk_box_pack_start(GTK_BOX(hhbox), label_gen, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(hhbox), entry, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), scrolled_window, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), hhbox, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(hbox), renunta, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(hbox), continua, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 10);
- gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 10);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_container_add (GTK_CONTAINER (top), box);
- g_object_set_data(G_OBJECT(continua), "parent", top);
- g_object_set_data(G_OBJECT(continua), "entry", entry);
- g_signal_connect(GTK_BUTTON(renunta), "clicked", G_CALLBACK(on_renunta), top);
- g_signal_connect(GTK_BUTTON(continua), "clicked", G_CALLBACK(on_continua_top), continua);
- gtk_widget_show_all(top);
- }
- static void on_continua_cauta_melodie(GtkButton *button, GObject *context_object)
- {
- GtkWindow *parent = g_object_get_data(context_object, "parent");
- GtkEntry *entry = g_object_get_data(context_object, "entry");
- char *nume = gtk_entry_get_text(entry);
- int ok = 1;
- if(strlen(nume) == 0)
- ok = 0;
- if(ok == 1)
- {
- int size_comm = strlen("cauta_melodie");
- if(write(sd, &size_comm, sizeof(int)) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- if(write(sd, "cauta_melodie", size_comm) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- int size_nume = strlen(nume);
- if(write(sd, &size_nume, sizeof(int)) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- if(write(sd, nume, size_nume) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- int exists = 0;
- if(read(sd, &exists, sizeof(int)) <= 0)
- {
- perror("Eroare la read de la server");
- return errno;
- }
- if(exists == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Melodia nu exista!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }else{
- char rating[100];
- bzero(rating, 100);
- if(read(sd, rating, 100) <= 0)
- {
- perror("Eroare la read() de la server");
- return errno;
- }
- char comentarii[100][100];
- bzero(comentarii, sizeof(comentarii));
- if(read(sd, comentarii, sizeof(comentarii)) <= 0)
- {
- perror("Eroare la read() de la server");
- return errno;
- }
- char text[1000];
- bzero(text, 1000);
- strcat(text, nume);
- strcat(text, " are ratingul: ");
- strcat(text, rating);
- strcat(text, "\n\n\n");
- for(int i = 0; i < 100; i++)
- {
- if(strlen(comentarii[i]) == 0)
- continue;
- strcat(text, comentarii[i]);
- strcat(text,"\n\n");
- }
- GtkWidget *label = gtk_label_new(text);
- GtkWidget *new_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(new_window), nume);
- gtk_window_set_default_size(GTK_WINDOW(new_window), 400, 200);
- gtk_widget_destroy(GTK_WIDGET(parent));
- GtkWidget *scrolled_window = gtk_scrolled_window_new(NULL, NULL);
- gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 10);
- gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), label);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_container_add (GTK_CONTAINER (new_window), scrolled_window);
- gtk_widget_show_all(new_window);
- }
- }
- }
- static void on_cauta_melodie(GtkButton *button, gpointer menu)
- {
- GtkWindow *parent = menu;
- GtkWidget *cauta_melodie = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(cauta_melodie), "Cauta o melodie");
- gtk_window_set_default_size(GTK_WINDOW(cauta_melodie), 400, 200);
- GtkWidget *entry, *label, *continua, *renunta;
- entry = gtk_entry_new();
- label = gtk_label_new("Introdu numele aici: ");
- continua = gtk_button_new_with_label("Continua");
- renunta = gtk_button_new_with_label("Renunta");
- GtkLayout *layout = gtk_layout_new(NULL, NULL);
- gtk_layout_put(GTK_LAYOUT(layout), label,10, 30);
- gtk_layout_put(GTK_LAYOUT(layout), entry, 200, 25);
- gtk_layout_put(GTK_LAYOUT(layout), continua, 300, 110);
- gtk_layout_put(GTK_LAYOUT(layout), renunta,10, 110);
- g_object_set_data(G_OBJECT(continua), "parent", cauta_melodie);
- g_object_set_data(G_OBJECT(continua), "entry", entry);
- g_signal_connect(GTK_BUTTON(renunta), "clicked", G_CALLBACK(on_renunta), cauta_melodie);
- g_signal_connect(GTK_BUTTON(continua), "clicked", G_CALLBACK(on_continua_cauta_melodie), continua);
- gtk_container_add(GTK_CONTAINER(cauta_melodie), layout);
- gtk_widget_show_all(cauta_melodie);
- }
- static void on_continua_adauga_comentariu(GtkButton *button, GObject *context_object)
- {
- GtkWindow *parent = g_object_get_data(context_object, "parent");
- GtkEntry *entry_nume = g_object_get_data(context_object, "entry_nume");
- GtkEntry *entry_comm = g_object_get_data(context_object, "entry_comm");
- char *nume, *comm;
- nume = gtk_entry_get_text(entry_nume);
- comm = gtk_entry_get_text(entry_comm);
- int ok = 1;
- if(strlen(nume) == 0 || strlen(comm) == 0)
- {
- ok = 0;
- }
- if(ok == 1)
- {
- int size_comm = strlen("adauga_comentariu");
- if(write(sd, &size_comm, sizeof(int)) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- if(write(sd, "adauga_comentariu", size_comm) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- int size_nume = strlen(nume);
- if(write(sd, &size_nume, sizeof(int)) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- if(write(sd, nume, size_nume) <= 0)
- {
- perror("Eroare la write catre server!");
- return errno;
- }
- int size_c = strlen(comm);
- if(write(sd, &size_c, sizeof(int)) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- if(write(sd, comm, size_c) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- int ex = 0;
- if(read(sd, &ex, sizeof(int)) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- if(ex == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Melodia nu exista!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- else{
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Comentariu adaugat cu succes!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- }
- }
- static void on_adauga_comm(GtkButton *button, gpointer menu)
- {
- GtkWindow *parent = menu;
- GtkWidget *adauga_comentariu = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(adauga_comentariu), "Adauga comentariu");
- gtk_window_set_default_size(GTK_WINDOW(adauga_comentariu), 400, 200);
- GtkWidget *entry_nume, *entry_comentariu, *label_nume, *label_comentariu, *continua, *renunta;
- entry_nume = gtk_entry_new();
- entry_comentariu = gtk_entry_new();
- label_nume = gtk_label_new("Introdu numele melodiei :");
- label_comentariu = gtk_label_new("Introdu comentariul :");
- continua = gtk_button_new_with_label("Continua");
- renunta = gtk_button_new_with_label("Renunta");
- GtkLayout *layout = gtk_layout_new(NULL, NULL);
- gtk_layout_put(GTK_LAYOUT(layout), label_nume, 10, 30);
- gtk_layout_put(GTK_LAYOUT(layout), entry_nume, 200, 25);
- gtk_layout_put(GTK_LAYOUT(layout), label_comentariu, 10, 70);
- gtk_layout_put(GTK_LAYOUT(layout), entry_comentariu, 200, 65);
- gtk_layout_put(GTK_LAYOUT(layout), renunta, 10, 110);
- gtk_layout_put(GTK_LAYOUT(layout), continua, 300, 110);
- g_object_set_data(G_OBJECT(continua), "parent", adauga_comentariu);
- g_object_set_data(G_OBJECT(continua), "entry_nume", entry_nume);
- g_object_set_data(G_OBJECT(continua), "entry_comm", entry_comentariu);
- g_signal_connect(GTK_BUTTON(renunta), "clicked", G_CALLBACK(on_renunta), adauga_comentariu);
- g_signal_connect(GTK_BUTTON(continua), "clicked", G_CALLBACK(on_continua_adauga_comentariu), continua);
- gtk_container_add(GTK_CONTAINER(adauga_comentariu), layout);
- gtk_widget_show_all(adauga_comentariu);
- }
- static void top_general(GtkButton *button, gpointer menu)
- {
- GtkWindow *parent = menu;
- GtkWidget *top = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(top), "Top General");
- gtk_window_set_default_size(GTK_WINDOW(top), 400, 300);
- int size_comm = strlen("top_general");
- if(write(sd, &size_comm, sizeof(int)) <= 0)
- {
- perror("Eroare la write catre server!");
- return errno;
- }
- if(write(sd, "top_general", size_comm) <= 0)
- {
- perror("Eroare la write catre server!");
- return errno;
- }
- char rez[100][100];
- bzero(rez, sizeof(rez));
- if(read(sd, rez, sizeof(rez)) <= 0)
- {
- perror("Eroare la read() de la server");
- return errno;
- }
- char labell[10000];
- bzero(labell, 10000);
- strcat(labell, "Top general : \n");
- for(int i = 0; i < 100; i++)
- {
- if(strlen(rez[i]) == 0)
- continue;
- strcat(labell, rez[i]);
- strcat(labell, "\n");
- }
- GtkWidget *scrolled_window = gtk_scrolled_window_new(NULL, NULL);
- gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 10);
- GtkWidget *label = gtk_label_new(labell);
- gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled_window), label);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_container_add (GTK_CONTAINER (top), scrolled_window);
- gtk_widget_show_all(top);
- }
- static void on_continua_voteaza_melodie(GtkButton *button, GObject *context_object)
- {
- GtkWindow *parent, *entry;
- parent = g_object_get_data(context_object, "parent");
- entry = g_object_get_data(context_object, "entry");
- char *nume = gtk_entry_get_text(entry);
- int ok = 1;
- if(strlen(nume) == 0)
- ok = 0;
- if(ok == 1)
- {
- int size_comm = strlen("voteaza_melodie");
- if(write(sd, &size_comm, sizeof(int)) <= 0)
- {
- perror("Eroare la write() catre server");
- return errno;
- }
- if(write(sd, "voteaza_melodie", size_comm) <= 0)
- {
- perror("Eroare la write() catre server");
- return errno;
- }
- int size_nume = strlen(nume);
- if(write(sd, &size_nume, sizeof(int)) <= 0)
- {
- perror("Eroare la write() catre server");
- return errno;
- }
- if(write(sd, nume, size_nume) <= 0)
- {
- perror("Eroare la write() catre server!");
- return errno;
- }
- int exists = 0;
- if(read(sd, &exists, sizeof(int)) <= 0)
- {
- perror("Eroare la write() catre server");
- return errno;
- }
- if(exists == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Melodia nu exista!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- else{
- int can_vote = 0;
- if(read(sd, &can_vote, sizeof(int)) <= 0)
- {
- perror("Eroare la read() de la server!");
- return errno;
- }
- if(can_vote == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Nu ai drept de vot!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- else{
- int vot = 0;
- if(read(sd, &vot, sizeof(int)) <= 0)
- {
- perror("Eroare la read() de la server");
- return errno;
- }
- if(vot == 1)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Ai votat deja pentru aceasta melodie!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }else{
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Votul tau a fost inregistrat cu succes!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- }
- }
- }
- }
- static void on_voteaza_melodie(GtkButton *button, gpointer menu)
- {
- GtkWindow *parent = menu;
- GtkWidget *voteaza_melodie, *label, *entry, *continua, *renunta;
- voteaza_melodie = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(voteaza_melodie), "Voteaza o melodie");
- gtk_window_set_default_size(GTK_WINDOW(voteaza_melodie), 400, 200);
- label = gtk_label_new("Introdu numele melodiei: ");
- entry = gtk_entry_new();
- continua = gtk_button_new_with_label("Continua");
- renunta = gtk_button_new_with_label("Renunta");
- GtkLayout *layout = gtk_layout_new(NULL, NULL);
- gtk_layout_put(GTK_LAYOUT(layout), label, 10, 30);
- gtk_layout_put(GTK_LAYOUT(layout), entry, 200, 25);
- gtk_layout_put(GTK_LAYOUT(layout), renunta, 10, 70);
- gtk_layout_put(GTK_LAYOUT(layout), continua, 300, 70);
- gtk_container_add(GTK_CONTAINER(voteaza_melodie), layout);
- g_object_set_data(G_OBJECT(continua), "parent", voteaza_melodie);
- g_object_set_data(G_OBJECT(continua), "entry", entry);
- g_signal_connect(GTK_BUTTON(renunta), "clicked", G_CALLBACK(on_renunta), voteaza_melodie);
- g_signal_connect(GTK_BUTTON(continua), "clicked", G_CALLBACK(on_continua_voteaza_melodie), continua);
- gtk_widget_show_all(voteaza_melodie);
- }
- static void on_continue_adauga_melodie(GtkButton *button, GObject *context_object)
- {
- GtkWindow *parent = g_object_get_data(context_object, "parent");
- GtkEntry *entry_nume = g_object_get_data(context_object, "entry_nume");
- GtkEntry *entry_desc = g_object_get_data(context_object, "entry_desc");
- GtkEntry *entry_link = g_object_get_data(context_object, "entry_link");
- GtkEntry *entry_gen1 = g_object_get_data(context_object, "entry_gen1");
- GtkEntry *entry_gen2 = g_object_get_data(context_object, "entry_gen2");
- GtkEntry *entry_gen3 = g_object_get_data(context_object, "entry_gen3");
- char *nume = gtk_entry_get_text(entry_nume);
- char *desc = gtk_entry_get_text(entry_desc);
- char *link = gtk_entry_get_text(entry_link);
- char *gen1 = gtk_entry_get_text(entry_gen1);
- char *gen2 = gtk_entry_get_text(entry_gen2);
- char *gen3 = gtk_entry_get_text(entry_gen3);
- int ok = 1;
- if(strlen(nume) == 0 || strlen(desc) == 0 || strlen(link) == 0 || strlen(gen1) == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Completati toate campurile!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- ok = 0;
- }
- if(ok == 1)
- {
- int size_comm = strlen("adauga_melodie");
- if(write(sd, &size_comm, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- if(write(sd, "adauga_melodie", size_comm) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- int size_nume = strlen(nume);
- if(write(sd, &size_nume, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- if(write(sd, nume, size_nume) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- int size_desc = strlen(desc);
- if(write(sd, &size_desc, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- if(write(sd, desc, size_desc) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- int size_link = strlen(link);
- if(write(sd, &size_link, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- if(write(sd, link, size_link) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- int size_gen1 = strlen(gen1);
- if(write(sd, &size_gen1, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- if(write(sd, gen1, size_gen1) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- int count = 0;
- if(strlen(gen2) > 0)
- count ++;
- if(strlen(gen3) > 0)
- count++;
- if(write(sd, &count, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- if(count == 1)
- {
- int size_gen2 = strlen(gen2);
- if(write(sd, &size_gen2, gen2) <= 0)
- {
- perror("Eroare la write catre server!");
- return errno;
- }
- if(write(sd, gen2, size_gen2) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- }
- if(count == 2)
- {
- int size_gen2 = strlen(gen2);
- if(write(sd, &size_gen2, sizeof(int)) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- if(write(sd, gen2, size_gen2) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- int size_gen3 = strlen(gen3);
- if(write(sd, &size_gen3, sizeof(int)) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- if(write(sd, gen3, size_gen3) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- }
- int ok_gen = 0;
- if(read(sd, &ok_gen, sizeof(int)) <= 0)
- {
- perror("Eroare la read catre server!");
- return errno;
- }
- if(ok_gen == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Genul introdus de tine nu exista!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- else{
- int exists = 0;
- if(read(sd, &exists, sizeof(int)) <= 0)
- {
- perror("Eroare la read de la server");
- return errno;
- }
- if(exists == 1)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Melodia exista deja in baza de date!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- else{
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Melodie adaugata cu succes!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- }
- }
- }
- static void on_adauga_melodie(GtkButton *button, gpointer menu)
- {
- GtkWindow *parent = menu;
- GtkWidget *adauga_mel = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(adauga_mel), "Adauga o melodie");
- gtk_window_set_default_size(GTK_WINDOW(adauga_mel), 400, 350);
- GtkWidget *label_nume, *entry_nume, *label_desc, *entry_desc, *label_link, *entry_link, *entry_gen1, *entry_gen2, *entry_gen3, *label_gen1, *label_gen2, *label_gen3;
- label_nume = gtk_label_new("Introdu numele:");
- entry_nume = gtk_entry_new();
- label_desc = gtk_label_new("Introdu decrierea:");
- entry_desc = gtk_entry_new();
- label_link = gtk_label_new("Introdu link-ul:");
- entry_link = gtk_entry_new();
- entry_gen1 = gtk_entry_new();
- entry_gen2 = gtk_entry_new();
- entry_gen3 = gtk_entry_new();
- label_gen1 = gtk_label_new("Genul 1 (obligatoriu) :");
- label_gen2 = gtk_label_new("Genul 2 (optional) :");
- label_gen3 = gtk_label_new("Genul 3 (optional) :");
- GtkWidget *continua, *renunta;
- continua = gtk_button_new_with_label("Continua");
- renunta = gtk_button_new_with_label("Renunta");
- GtkLayout *layout = gtk_layout_new(NULL, NULL);
- gtk_layout_put(GTK_LAYOUT(layout), label_nume, 10, 30);
- gtk_layout_put(GTK_LAYOUT(layout), entry_nume , 180, 25);
- gtk_layout_put(GTK_LAYOUT(layout), label_desc, 10, 70);
- gtk_layout_put(GTK_LAYOUT(layout), entry_desc, 180, 65);
- gtk_layout_put(GTK_LAYOUT(layout), label_link, 10, 110);
- gtk_layout_put(GTK_LAYOUT(layout), entry_link, 180, 105);
- gtk_layout_put(GTK_LAYOUT(layout), label_gen1, 10, 150);
- gtk_layout_put(GTK_LAYOUT(layout), entry_gen1, 180, 145);
- gtk_layout_put(GTK_LAYOUT(layout), label_gen2, 10, 190);
- gtk_layout_put(GTK_LAYOUT(layout), entry_gen2, 180, 185);
- gtk_layout_put(GTK_LAYOUT(layout), label_gen3, 10, 230);
- gtk_layout_put(GTK_LAYOUT(layout), entry_gen3, 180, 225);
- gtk_layout_put(GTK_LAYOUT(layout), renunta, 10, 270);
- gtk_layout_put(GTK_LAYOUT(layout), continua, 300, 270);
- g_object_set_data(G_OBJECT(continua), "parent", adauga_mel);
- g_object_set_data(G_OBJECT(continua), "entry_nume", entry_nume);
- g_object_set_data(G_OBJECT(continua), "entry_desc", entry_desc);
- g_object_set_data(G_OBJECT(continua), "entry_link", entry_link);
- g_object_set_data(G_OBJECT(continua), "entry_gen1", entry_gen1);
- g_object_set_data(G_OBJECT(continua), "entry_gen2", entry_gen2);
- g_object_set_data(G_OBJECT(continua), "entry_gen3", entry_gen3);
- g_signal_connect(GTK_BUTTON(renunta), "clicked", G_CALLBACK(on_renunta), adauga_mel);
- g_signal_connect(GTK_BUTTON(continua), "clicked", G_CALLBACK(on_continue_adauga_melodie), continua);
- gtk_container_add(GTK_CONTAINER(adauga_mel), layout);
- gtk_widget_show_all(adauga_mel);
- }
- static void on_continua_adauga_gen(GtkButton *button, GObject *context_object)
- {
- GtkWindow *parent = g_object_get_data(context_object, "parent");
- GtkEntry *entry_nume = g_object_get_data(context_object, "entry");
- int ok = 1;
- char *nume = gtk_entry_get_text(entry_nume);
- if(strlen(nume) == 0)
- {
- ok = 0;
- }
- if(ok == 1)
- {
- int size_comm = strlen("adauga_gen");
- if(write(sd, &size_comm, sizeof(int)) <= 0)
- {
- perror("Eroare la scriere catre server");
- return errno;
- }
- if(write(sd, "adauga_gen", size_comm) <= 0)
- {
- perror("Eroare la scriere catre server");
- return errno;
- }
- int size_nume = strlen(nume);
- if(write(sd, &size_nume, sizeof(int)) <= 0)
- {
- perror("Eroare la scriere catre server");
- return errno;
- }
- if(write(sd, nume, size_nume) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- int exists = 0;
- if(read(sd, &exists, sizeof(int)) <= 0)
- {
- perror("Eroare la read de la server");
- return errno;
- }
- if(exists == 1)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Genul exista in baza de date!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- else
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Gen adaugat cu succes!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- }
- }
- static void on_adauga_gen(GtkButton *button, gpointer _parent)
- {
- GtkWindow *parent = _parent;
- GtkWidget *adauga_gen, *label, *entry, *continua, *renunta;
- adauga_gen = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(adauga_gen), "Adauga un gen muzical");
- gtk_window_set_default_size(GTK_WINDOW(adauga_gen), 400, 200);
- label = gtk_label_new("Introdu noul gen aici: ");
- entry = gtk_entry_new();
- continua = gtk_button_new_with_label("Continua");
- renunta = gtk_button_new_with_label("Renunta");
- GtkLayout *layout = gtk_layout_new(NULL, NULL);
- gtk_layout_put(GTK_LAYOUT(layout), label, 10, 30);
- gtk_layout_put(GTK_LAYOUT(layout), entry, 180, 25);
- gtk_layout_put(GTK_LAYOUT(layout), renunta, 10, 70);
- gtk_layout_put(GTK_LAYOUT(layout), continua, 300, 70);
- gtk_container_add(GTK_CONTAINER(adauga_gen), layout);
- g_object_set_data(G_OBJECT(continua), "parent", adauga_gen);
- g_object_set_data(G_OBJECT(continua), "entry", entry);
- g_signal_connect(GTK_BUTTON(renunta), "clicked", G_CALLBACK(on_renunta), adauga_gen);
- g_signal_connect(GTK_BUTTON(continua), "clicked", G_CALLBACK(on_continua_adauga_gen), continua);
- gtk_widget_show_all(adauga_gen);
- }
- static void on_back_admin(GtkButton *button, gpointer parent)
- {
- GtkWindow *_parent = parent;
- int size_comm = strlen("back");
- if(write(sd, &size_comm, sizeof(int)) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- if(write(sd, "back", size_comm) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- gtk_widget_destroy(_parent);
- }
- static void on_respinge_admin(GtkButton *button, GObject *context_object)
- {
- GtkWindow *parent = g_object_get_data(context_object, "parent");
- GtkEntry *entry_nume = g_object_get_data(context_object, "entry");
- char *nume = gtk_entry_get_text(entry_nume);
- int ok = 1;
- if(strlen(nume) == 0)
- {
- ok = 0;
- }
- if(ok == 1)
- {
- int size_comm = strlen("respinge_admin");
- if(write(sd, &size_comm, sizeof(int)) <= 0)
- {
- perror("Eroare la scriere catre server");
- return errno;
- }
- if(write(sd, "respinge_admin", size_comm) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- int size_nume = strlen(nume);
- if(write(sd, &size_nume, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- if(write(sd, nume, size_nume) <= 0)
- {
- perror("Erore la scriere catre server");
- return errno;
- }
- int exists = 0;
- if(read(sd, &exists, sizeof(int)) <= 0)
- {
- perror("Eroare la citire de la server");
- return errno;
- }
- if(exists == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Utilizatorul nu a fost gasit in baza de date!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- else
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Admin respins cu succes!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- }
- }
- static void accepta_accepta_admin(GtkButton *button, GObject *context_object)
- {
- GtkWindow *parent = g_object_get_data(context_object, "parent");
- GtkEntry *entry_nume = g_object_get_data(context_object, "entry");
- int ok = 1;
- char *nume = gtk_entry_get_text(entry_nume);
- if(strlen(nume) == 0)
- ok = 0;
- if(ok == 1)
- {
- int size_comm = strlen("accepta_admin");
- if(write(sd, &size_comm, sizeof(int)) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- if(write(sd, "accepta_admin", size_comm) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- int size_name = strlen(nume);
- if(write(sd, &size_name, sizeof(int)) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- if(write(sd, nume, size_name) <= 0)
- {
- perror("Eroare la write catre server");
- return errno;
- }
- int exists = 0;
- if(read(sd, &exists, sizeof(int)) <= 0)
- {
- perror("Eroare la read de la server");
- return errno;
- }
- if(exists == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Utilizatorul nu a fost gasit in baza de date!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }else{
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Admin acceptat cu succes!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- }
- }
- static void on_continua_sterge_melodie(GtkButton *button, GObject *context_object)
- {
- GtkWindow *parent = g_object_get_data(context_object, "parent");
- GtkEntry *nume = g_object_get_data(context_object, "entry");
- int ok = 1;
- char *titlu_melodie = gtk_entry_get_text(nume);
- if(strlen(titlu_melodie) == 0)
- {
- ok = 0;
- }
- if(ok == 1){
- int size_comm = strlen("sterge_melodie");
- if(write(sd, &size_comm, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea catre server!");
- return errno;
- }
- if(write(sd, "sterge_melodie", size_comm) <= 0)
- {
- perror("Eroare la scrierea catre server!");
- return errno;
- }
- int size_titlu = strlen(titlu_melodie);
- if(write(sd, &size_titlu, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- if(write(sd, titlu_melodie, size_titlu) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- int exists = 0;
- if(read(sd, &exists, sizeof(int)) <= 0)
- {
- perror("Eroare la read de la server");
- return errno;
- }
- if(exists == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Melodia nu exista in baza de date!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- else{
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Melodie stearsa cu succes!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- }
- }
- static void on_sterge_melodie(GtkButton *button, gpointer menu)
- {
- GtkWindow *parent = menu;
- GtkWidget *sterge_melodie = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(sterge_melodie), "Blocheaza un utilizator!");
- gtk_window_set_default_size(GTK_WINDOW(sterge_melodie), 400, 200);
- GtkWidget *entry_nume, *continua, *renunta, *entry_label;
- entry_nume = gtk_entry_new();
- entry_label = gtk_label_new("Introdu numele melodiei :");
- continua = gtk_button_new_with_label("Continua");
- renunta = gtk_button_new_with_label("Renunta");
- GtkLayout *layout = gtk_layout_new(NULL, NULL);
- gtk_layout_put(GTK_LAYOUT(layout), entry_label, 10, 30);
- gtk_layout_put(GTK_LAYOUT(layout), entry_nume, 180, 25);
- gtk_layout_put(GTK_LAYOUT(layout), renunta, 10, 70);
- gtk_layout_put(GTK_LAYOUT(layout), continua, 300, 70);
- gtk_container_add(GTK_CONTAINER(sterge_melodie), layout);
- g_object_set_data(G_OBJECT(continua), "parent", sterge_melodie);
- g_object_set_data(G_OBJECT(continua), "entry", entry_nume);
- g_signal_connect(GTK_BUTTON(renunta), "clicked", G_CALLBACK(on_renunta), sterge_melodie);
- g_signal_connect(GTK_BUTTON(continua), "clicked", G_CALLBACK(on_continua_sterge_melodie), continua);
- gtk_widget_show_all(sterge_melodie);
- }
- static void on_accepta_admin(GtkButton *button, gpointer menu)
- {
- GtkWindow *parent = menu;
- int size_comm = strlen("accepta_admin");
- if(write(sd, &size_comm, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- if(write(sd, "accepta_admin", size_comm) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- int k = 0;
- if(read(sd, &k, sizeof(int)) <= 0)
- {
- perror("Eroare la read() de la server");
- return errno;
- }
- char nume[100][100];
- bzero(nume, sizeof(nume));
- for(int i = 0; i < k; i++)
- {
- if(read(sd, nume[i], 100) <= 0)
- {
- perror("eroare la read() de la server");
- return errno;
- }
- }
- GtkWidget *entry, *accepta_admin, *label, *back, *accepta, *respinge;
- accepta_admin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(accepta_admin), "Adauga un admin!");
- gtk_window_set_default_size(GTK_WINDOW(accepta_admin), 400, 200);
- char text[200];
- bzero(text, 200);
- strcat(text, "Cereri :");
- for(int i = 0; i < k; i++)
- {
- if(i != 0)
- strcat(text, ",");
- strcat(text, nume[i]);
- }
- label = gtk_label_new(text);
- accepta = gtk_button_new_with_label("Accepta");
- respinge = gtk_button_new_with_label("Respinge");
- back = gtk_button_new_with_label("Back");
- entry = gtk_entry_new();
- GtkWidget *entry_label = gtk_label_new("Introdu numele :");
- GtkLayout *layout = gtk_layout_new(NULL, NULL);
- gtk_layout_put(GTK_LAYOUT(layout), label, 10, 30);
- gtk_layout_put(GTK_LAYOUT(layout), entry_label, 10, 70);
- gtk_layout_put(GTK_LAYOUT(layout), entry, 180, 65);
- gtk_layout_put(GTK_LAYOUT(layout), respinge, 10, 110);
- gtk_layout_put(GTK_LAYOUT(layout), accepta, 300, 110);
- gtk_layout_put(GTK_LAYOUT(layout), back, 10, 160);
- gtk_container_add(GTK_CONTAINER(accepta_admin), layout);
- g_object_set_data(G_OBJECT(accepta), "entry", entry);
- g_object_set_data(G_OBJECT(accepta), "parent", accepta_admin);
- g_object_set_data(G_OBJECT(respinge), "entry", entry);
- g_object_set_data(G_OBJECT(respinge), "parent", accepta_admin);
- g_signal_connect(GTK_BUTTON(accepta), "clicked", G_CALLBACK(accepta_accepta_admin), accepta);
- g_signal_connect(GTK_BUTTON(respinge), "clicked", G_CALLBACK(on_respinge_admin), respinge);
- g_signal_connect(GTK_BUTTON(back), "clicked", G_CALLBACK(on_back_admin), accepta_admin);
- gtk_widget_show_all(accepta_admin);
- }
- static void on_renunta(GtkButton *button, gpointer destroy)
- {
- GtkWindow *_destroy = destroy;
- gtk_widget_destroy(GTK_WIDGET(_destroy));
- }
- static void on_continue_block_user(GtkButton *button, GObject *context_object)
- {
- GtkEntry *name = g_object_get_data(context_object, "nume");
- GtkEntry *parent = g_object_get_data(context_object, "parent");
- char *nume = gtk_entry_get_text(name);
- int ok = 1;
- if(strlen(nume) == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Completati campul!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- ok = 0;
- }
- //trimitem comanda la server
- if(ok == 1){
- int size_comm = strlen("blocare_user");
- if(write(sd, &size_comm, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea catre server!");
- return errno;
- }
- if(write(sd, "blocare_user", size_comm) <= 0)
- {
- perror("Eroare la scrierea catre server!");
- return errno;
- }
- //trimitem numele la server
- int size_nume = strlen(nume);
- if(write(sd, &size_nume, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea catre server!");
- return errno;
- }
- if(write(sd, nume, size_nume) <= 0)
- {
- perror("Eroare la scrierea catre server!");
- return errno;
- }
- int exists = 0;
- if(read(sd, &exists, sizeof(int)) <= 0)
- {
- perror("Eroare la citirea de la server");
- return errno;
- }
- if(exists == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Utilizatorul nu exista in baza de date");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- if(exists == 1)
- {
- int is_blocked = 0;
- if(read(sd, &is_blocked, sizeof(int)) <= 0)
- {
- perror("Eroare la citirea de la server");
- return errno;
- }
- if(is_blocked == 1)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "User-ul este deja blocat!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- else{
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Utilizator blocat!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- gtk_widget_destroy(GTK_WIDGET(parent));
- }
- }
- }
- }
- static void on_blocheaza_user(GtkButton *button, gpointer menu_admin)
- {
- GtkWindow *parent = menu_admin;
- GtkWidget *block_user = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_title(GTK_WINDOW(block_user), "Blocheaza un utilizator!");
- gtk_window_set_default_size(GTK_WINDOW(block_user), 400, 200);
- GtkWidget *entry_nume, *entry_label;
- entry_label = gtk_label_new("Introdu numele :");
- entry_nume = gtk_entry_new();
- GtkWidget *renunta, *continua;
- renunta = gtk_button_new_with_label("Renunta");
- continua = gtk_button_new_with_label("Continua");
- GtkLayout *layout = gtk_layout_new(NULL, NULL);
- gtk_layout_put(GTK_LAYOUT(layout), entry_label, 10, 30);
- gtk_layout_put(GTK_LAYOUT(layout), entry_nume, 180, 25);
- gtk_layout_put(GTK_LAYOUT(layout), renunta, 10, 70);
- gtk_layout_put(GTK_LAYOUT(layout), continua, 300, 70);
- gtk_container_add(GTK_CONTAINER(block_user), layout);
- g_object_set_data(G_OBJECT(continua), "nume", entry_nume);
- g_object_set_data(G_OBJECT(continua), "parent", block_user);
- g_signal_connect(GTK_BUTTON(renunta), "clicked", G_CALLBACK(on_renunta), block_user);
- g_signal_connect(GTK_BUTTON(continua), "clicked", G_CALLBACK(on_continue_block_user), continua);
- gtk_widget_show_all(block_user);
- }
- static void back_to_menu(GtkButton *button, gpointer parent)
- {
- GtkWindow *_parent = parent;
- gtk_widget_destroy(GTK_WIDGET(_parent));
- GtkWidget *menu;
- GtkWidget *main_menu = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_default_size(GTK_WINDOW(main_menu), 400, 400);
- gtk_window_set_title(GTK_WINDOW(main_menu), "TopMusic");
- GtkWidget *label, *inreg_admin, *inreg_user, *logare_admin, *logare_user, *quit;
- label = gtk_label_new("Alege una din optiunile de mai jos:");
- inreg_admin = gtk_button_new_with_label("Inregistrare ca admin");
- inreg_user = gtk_button_new_with_label("Inregistrare");
- logare_admin = gtk_button_new_with_label("Logare ca admin");
- logare_user = gtk_button_new_with_label("Logare");
- quit = gtk_button_new_with_label("Quit");
- GtkWidget *box;
- box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
- gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), inreg_admin, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), logare_admin, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), inreg_user, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), logare_user, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), quit, TRUE, TRUE, 10);
- g_signal_connect(GTK_BUTTON(inreg_admin), "clicked", G_CALLBACK(inregistrare_admin), main_menu);
- g_signal_connect(GTK_BUTTON(logare_admin), "clicked", G_CALLBACK(login_admin), main_menu);
- g_signal_connect(GTK_BUTTON(inreg_user), "clicked", G_CALLBACK(inregistrare_utilizator), main_menu);
- g_signal_connect(GTK_BUTTON(logare_user), "clicked", G_CALLBACK(logare_utilizator), main_menu);
- g_signal_connect(GTK_BUTTON(quit), "clicked", G_CALLBACK(quit_out), main_menu);
- gtk_container_add(GTK_CONTAINER(main_menu), box);
- gtk_widget_show_all(main_menu);
- }
- static void on_inregistrare_user(GtkButton *button, GObject *context_object)
- {
- GtkEntry *name_entry = g_object_get_data(context_object, "nume");
- GtkEntry *pass_entry = g_object_get_data(context_object, "parola");
- GtkEntry *re_pass = g_object_get_data(context_object, "re_pass");
- GtkEntry *parent = g_object_get_data(context_object, "parent");
- char *nume, *parola, *re_parola;
- nume = gtk_entry_get_text(name_entry);
- parola = gtk_entry_get_text(pass_entry);
- re_parola = gtk_entry_get_text(re_pass);
- int ok = 1;
- if(strlen(nume) == 0 || strlen(parola) == 0 || strlen(re_parola) == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Completati toate campurile");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- ok = 0;
- }
- if(strcmp(parola, re_parola) != 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Parolele nu se potrivesc");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- ok = 0;
- }
- //trimitem datele catre server
- if(ok == 1){
- int size_comm = strlen("inregistrare_user");
- if(write(sd, &size_comm, sizeof(int)) <= 0)
- {
- perror("Eroare la scriere catre server");
- return errno;
- }
- if(write(sd, "inregistrare_user", size_comm) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- int size_nume = strlen(nume);
- if(write(sd, &size_nume, sizeof(int)) <= 0)
- {
- perror("Eroare la scriere catre server");
- return errno;
- }
- if(write(sd, nume, size_nume) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- int size_pass = strlen(parola);
- if(write(sd, &size_pass, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- if(write(sd, parola, size_pass) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- int exists = 0;
- if(read(sd, &exists, sizeof(int)) <= 0)
- {
- perror("Eroare la citirea de la server");
- return errno;
- }
- if(exists == 1)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "User-name folosit! Te rugam alege altul!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- else
- g_print("Succes!");
- }
- }
- static void on_logare_user(GtkButton *button, GObject *context_object)
- {
- GtkEntry *name_entry = g_object_get_data(context_object, "nume");
- GtkEntry *pass_entry = g_object_get_data(context_object, "parola");
- GtkWindow *parent = g_object_get_data(context_object, "parent");
- char *nume, *pass;
- nume = gtk_entry_get_text(name_entry);
- pass = gtk_entry_get_text(pass_entry);
- int okk = 1;
- if(strlen(nume) == 0 || strlen(pass) == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Completati toate campurile");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- okk = 0;
- }
- //gooo
- if(okk == 1){
- int size_comm = strlen("logare_user");
- if(write(sd, &size_comm, sizeof(int)) <= 0)
- {
- perror("Eroare la scriere catre server!");
- return errno;
- gtk_destroy_widget(GTK_WIDGET(parent));
- }
- if(write(sd, "logare_user", strlen("logare_user")) <= 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Eroare la scriere! Aplicatia se va inchide!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- gtk_widget_destroy(GTK_WIDGET(parent));
- }
- //trimite size_nume
- int size_nume = strlen(nume);
- if(write(sd, &size_nume, sizeof(int)) <= 0)
- {
- perror("Eroare la scriere catre server");
- return errno;
- gtk_widget_destroy(GTK_WIDGET(parent));
- }
- //trimitem numele
- if(write(sd, nume, strlen(nume)) <= 0)
- {
- perror("Eroare la scriere catre server");
- return errno;
- gtk_widget_destroy(GTK_WIDGET(parent));
- }
- //trimitem size_pass
- int size_pass = strlen(pass);
- if(write(sd, &size_pass, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- gtk_widget_destroy(GTK_WIDGET(parent));
- }
- //trimitem parola
- if(write(sd, pass, strlen(pass)) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- gtk_widget_destroy(GTK_WIDGET(parent));
- }
- int ok;
- printf("socket- ul %d \n", sd);
- //asteptam raspunsul de la server
- if(read(sd, &ok, sizeof(int)) <= 0)
- {
- perror("Eroare la citirea de la server --- raspuns");
- return errno;
- gtk_widget_destroy(GTK_WIDGET(parent));
- }
- if(ok == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Userul/parola nu se potrivesc!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- else if(ok == 1)
- {
- g_print("Felicitari te-ai logat cu succes! ");
- gtk_widget_destroy(GTK_WIDGET(parent));
- GtkWidget *meniu_user = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- g_signal_connect(meniu_user, "delete_event", G_CALLBACK(quit_meniu), meniu_user);
- gtk_window_set_default_size(GTK_WINDOW(meniu_user), 400, 400);
- gtk_window_set_title(GTK_WINDOW(meniu_user), "TopMusic");
- GtkWidget *cauta_melodie, *adauga_melodie, *voteaza_melodie, *vezi_topul;
- GtkWidget *adauga_un_comentariu, *vezi_top_pe_genuri, *quit;
- adauga_melodie = gtk_button_new_with_label("Adauga o melodie");
- cauta_melodie = gtk_button_new_with_label("Cauta o melodie");
- voteaza_melodie = gtk_button_new_with_label("Voteaza o melodie");
- vezi_topul = gtk_button_new_with_label("Vezi topul general");
- adauga_un_comentariu = gtk_button_new_with_label("Adauga un comentariu");
- vezi_top_pe_genuri = gtk_button_new_with_label("Vezi topul pe genuri");
- quit = gtk_button_new_with_label("Quit");
- GtkWidget *label = gtk_label_new("Alege una din urmatoarele optiuni:");
- GtkWidget *box;
- box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
- gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 5);
- gtk_box_pack_start(GTK_BOX(box), adauga_melodie, TRUE, TRUE, 5);
- gtk_box_pack_start(GTK_BOX(box), cauta_melodie, TRUE, TRUE, 5);
- gtk_box_pack_start(GTK_BOX(box), voteaza_melodie, TRUE, TRUE, 5);
- gtk_box_pack_start(GTK_BOX(box), vezi_topul, TRUE, TRUE, 5);
- gtk_box_pack_start(GTK_BOX(box), adauga_un_comentariu, TRUE, TRUE, 5);
- gtk_box_pack_start(GTK_BOX(box), vezi_top_pe_genuri, TRUE, TRUE, 5);
- gtk_box_pack_start(GTK_BOX(box), quit, TRUE, TRUE, 5);
- g_signal_connect(GTK_BUTTON(adauga_un_comentariu), "clicked", G_CALLBACK(on_adauga_comm), meniu_user);
- g_signal_connect(GTK_BUTTON(quit), "clicked", G_CALLBACK(quit_out), meniu_user);
- g_signal_connect(GTK_BUTTON(vezi_topul), "clicked", G_CALLBACK(top_general), meniu_user);
- g_signal_connect(GTK_BUTTON(adauga_melodie), "clicked", G_CALLBACK(on_adauga_melodie), meniu_user);
- g_signal_connect(GTK_BUTTON(voteaza_melodie), "clicked", G_CALLBACK(on_voteaza_melodie), meniu_user);
- g_signal_connect(GTK_BUTTON(cauta_melodie), "clicked", G_CALLBACK(on_cauta_melodie), meniu_user);
- g_signal_connect(GTK_BUTTON(vezi_top_pe_genuri), "clicked", G_CALLBACK(top_pe_genuri), meniu_user);
- gtk_container_add(GTK_CONTAINER(meniu_user), box);
- gtk_widget_show_all(meniu_user);
- }
- }
- }
- static void on_submit_inregistrare_admin(GtkButton *button, GObject *context_object)
- {
- GtkEntry *name_entry = g_object_get_data(context_object, "user");
- GtkEntry *pass_entry = g_object_get_data(context_object, "pass");
- GtkEntry *re_pass = g_object_get_data(context_object, "re_pass");
- GtkEntry *mail = g_object_get_data(context_object, "mail");
- GtkWindow *parent = g_object_get_data(context_object, "parent");
- char *e_mail, *nume, *pass, *pass_re;
- nume = gtk_entry_get_text(name_entry);
- pass = gtk_entry_get_text(pass_entry);
- pass_re = gtk_entry_get_text(re_pass);
- e_mail = gtk_entry_get_text(mail);
- g_print("%s", e_mail);
- int ok = 1;
- if(strlen(nume) == 0 || strlen(pass) == 0 || strlen(pass_re) == 0 || strlen(e_mail) == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Completati toate campurile");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- ok = 0;
- }
- if(strcmp(pass, pass_re) != 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Parolele nu se potrivesc!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- ok = 0;
- }
- // start
- if(ok == 1){
- int size_comanda = strlen("inregistrare_admin");
- //trimitem size_comanda
- if(write(sd, &size_comanda, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea in socket!");
- return errno;
- }
- if(write(sd, "inregistrare_admin", strlen("inregistrare_admin")) <= 0)
- {
- perror("Eroare la scriere! \n");
- return errno;
- }
- int size_nume = strlen(nume);
- if(write(sd, &size_nume, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea in socket!");
- return errno;
- }
- if(write(sd, nume, strlen(nume)) <= 0)
- {
- perror("Eroare la scrierea in socket!");
- return errno;
- }
- int size_pass = strlen(pass);
- if(write(sd, &size_pass, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea in socket!");
- return errno;
- }
- if(write(sd, pass, size_pass) <= 0)
- {
- perror("Eroare la scrierea in socket!");
- return errno;
- }
- int size_mail = strlen(e_mail);
- if(write(sd, &size_mail, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea in socket!");
- return errno;
- }
- if(write(sd, e_mail, size_mail) <= 0)
- {
- perror("Eroare la scrierea in socket!");
- return errno;
- }
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Cererea ta va fi analizata de catre echipa noastra. Vei primi un e-mail in cel mai scurt timp!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- close(sd);
- gtk_widget_destroy(GTK_WIDGET(parent));
- }
- }
- static void on_log_admin(GtkButton *button, GObject *context_object)
- {
- GtkEntry *name = g_object_get_data(context_object, "user");
- GtkEntry *pass = g_object_get_data(context_object, "pass");
- GtkWindow *parent = g_object_get_data(context_object, "parent");
- char *nume, *parola;
- nume = gtk_entry_get_text(name);
- parola = gtk_entry_get_text(pass);
- int ok = 1;
- if(strlen(nume) == 0 || strlen(parola) == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Completati toate campurile");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- ok = 0;
- }
- //trimitem datele la server
- if(ok == 1)
- {
- int size_comm = strlen("logare_admin");
- if(write(sd, &size_comm, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- if(write(sd, "logare_admin", size_comm) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- int size_nume = strlen(nume);
- if(write(sd, &size_nume, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- if(write(sd, nume, size_nume) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- int size_pass = strlen(parola);
- if(write(sd, &size_pass, sizeof(int)) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- if(write(sd, parola, size_pass) <= 0)
- {
- perror("Eroare la scrierea catre server");
- return errno;
- }
- int accept;
- //asteptam raspunsul de la server
- if(read(sd, &accept, sizeof(int)) <= 0)
- {
- perror("Eroare la citirea de la server --- raspuns");
- return errno;
- gtk_widget_destroy(GTK_WIDGET(parent));
- }
- if(accept == 0)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(parent, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Userul/parola nu se potrivesc!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- }
- else if(accept == 1)
- {
- g_print("Felicitari te-ai logat cu succes adminule! \n");
- gtk_widget_destroy(GTK_WIDGET(parent));
- GtkWidget *meniu_admin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- g_signal_connect(GTK_WINDOW(meniu_admin), "delete-event", G_CALLBACK(quit_meniu), meniu_admin);
- gtk_window_set_default_size(GTK_WINDOW(meniu_admin), 400, 400);
- gtk_window_set_title(GTK_WINDOW(meniu_admin), "TopMusic");
- GtkWidget *sterge_melodie, *blocheaza_user, *accepta_admin;
- GtkWidget *label = gtk_label_new("Alege una din urmatoarele optiuni: ");
- GtkWidget *quit = gtk_button_new_with_label("Quit");
- sterge_melodie = gtk_button_new_with_label("Sterge o melodie ");
- blocheaza_user = gtk_button_new_with_label("Blocheaza un user");
- accepta_admin = gtk_button_new_with_label("Accepta un admin ");
- GtkWidget *adauga_gen = gtk_button_new_with_label("Adauga gen ");
- GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
- gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), blocheaza_user,TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), sterge_melodie, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), accepta_admin, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), adauga_gen, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), quit, TRUE, TRUE, 10);
- g_signal_connect(GTK_BUTTON(blocheaza_user), "clicked", G_CALLBACK(on_blocheaza_user), meniu_admin);
- g_signal_connect(GTK_BUTTON(accepta_admin), "clicked", G_CALLBACK(on_accepta_admin), meniu_admin);
- g_signal_connect(GTK_BUTTON(quit), "clicked", G_CALLBACK(quit_out), meniu_admin);
- g_signal_connect(GTK_BUTTON(sterge_melodie), "clicked", G_CALLBACK(on_sterge_melodie), meniu_admin);
- g_signal_connect(GTK_BUTTON(adauga_gen), "clicked", G_CALLBACK(on_adauga_gen), meniu_admin);
- gtk_container_add(GTK_CONTAINER(meniu_admin), box);
- gtk_widget_show_all(meniu_admin);
- }
- }
- }
- static void inregistrare_admin(GtkButton *button, gpointer menu)
- {
- GtkWindow *main_menu = menu;
- gtk_widget_destroy(GTK_WIDGET(main_menu));
- GtkWidget *inreg_admin;
- inreg_admin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_default_size(GTK_WINDOW(inreg_admin), 400, 400);
- gtk_window_set_title(GTK_WINDOW(inreg_admin), "TopMusic");
- GtkWidget *name_entry, *pass_entry, *label_name, *label_password, *label_re, *re_pass_entry, *submit;
- name_entry = gtk_entry_new();
- pass_entry = gtk_entry_new();
- label_name = gtk_label_new("Introduceti numele :");
- label_password = gtk_label_new("Introduceti parola :");
- label_re = gtk_label_new("Reintroduceti parola :");
- re_pass_entry = gtk_entry_new();
- submit = gtk_button_new_with_label("Submit");
- GtkWidget *back = gtk_button_new_with_label("Back");
- GtkWidget *label_mail, *entry_mail;
- label_mail = gtk_label_new("Introduceti e-mailul");
- entry_mail = gtk_entry_new();
- GtkWidget *layout = gtk_layout_new(NULL, NULL);
- gtk_layout_put(GTK_LAYOUT(layout), label_name, 10, 30);
- gtk_layout_put(GTK_LAYOUT(layout), name_entry, 180, 25);
- gtk_layout_put(GTK_LAYOUT(layout), label_mail, 10, 70);
- gtk_layout_put(GTK_LAYOUT(layout), entry_mail, 180, 65);
- gtk_layout_put(GTK_LAYOUT(layout), label_password, 10, 110);
- gtk_layout_put(GTK_LAYOUT(layout), pass_entry, 180, 105);
- gtk_layout_put(GTK_LAYOUT(layout), label_re, 10, 150);
- gtk_layout_put(GTK_LAYOUT(layout), re_pass_entry, 180, 145);
- gtk_layout_put(GTK_LAYOUT(layout), submit, 285, 185);
- gtk_layout_put(GTK_LAYOUT(layout), back, 10, 185);
- gtk_container_add(GTK_CONTAINER(inreg_admin), layout);
- g_object_set_data(G_OBJECT(submit), "user", name_entry);
- g_object_set_data(G_OBJECT(submit), "pass", pass_entry);
- g_object_set_data(G_OBJECT(submit), "re_pass", re_pass_entry);
- g_object_set_data(G_OBJECT(submit), "parent", inreg_admin);
- g_object_set_data(G_OBJECT(submit), "mail", entry_mail);
- g_signal_connect(GTK_BUTTON(submit), "clicked", G_CALLBACK(on_submit_inregistrare_admin), submit);
- g_signal_connect(GTK_BUTTON(back), "clicked", G_CALLBACK(back_to_menu), inreg_admin);
- gtk_widget_show_all(inreg_admin);
- }
- static void login_admin(GtkButton *button, gpointer menu)
- {
- GtkWindow *main_menu = menu;
- gtk_widget_destroy(GTK_WIDGET(main_menu));
- GtkWidget *log_admin;
- log_admin = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_default_size(GTK_WINDOW(log_admin), 400, 400);
- gtk_window_set_title(GTK_WINDOW(log_admin), "TopMusic");
- GtkWidget *user, *parola, *user_label, *parola_label, *logare;
- user = gtk_entry_new();
- parola = gtk_entry_new();
- user_label = gtk_label_new("Introduceti numele :");
- parola_label = gtk_label_new("Introduceti parola :");
- logare = gtk_button_new_with_label("Logare");
- GtkWidget *layout = gtk_layout_new(NULL, NULL);
- GtkWidget *back = gtk_button_new_with_label("Back");
- gtk_layout_put(GTK_LAYOUT(layout), user_label, 10, 30);
- gtk_layout_put(GTK_LAYOUT(layout), user, 180, 25);
- gtk_layout_put(GTK_LAYOUT(layout), parola_label, 10, 70);
- gtk_layout_put(GTK_LAYOUT(layout), parola, 180, 65);
- gtk_layout_put(GTK_LAYOUT(layout), logare, 285, 105);
- gtk_layout_put(GTK_LAYOUT(layout), back, 10, 105);
- gtk_container_add(GTK_CONTAINER(log_admin), layout);
- g_object_set_data(G_OBJECT(logare), "user", user);
- g_object_set_data(G_OBJECT(logare), "pass", parola);
- g_object_set_data(G_OBJECT(logare), "parent", log_admin);
- g_signal_connect(GTK_BUTTON(logare), "clicked", G_CALLBACK(on_log_admin), logare);
- g_signal_connect(GTK_BUTTON(back), "clicked", G_CALLBACK(back_to_menu), log_admin);
- gtk_widget_show_all(log_admin);
- }
- static void inregistrare_utilizator(GtkButton *button, gpointer menu)
- {
- GtkWindow *main_menu = menu;
- gtk_widget_destroy(GTK_WIDGET(main_menu));
- GtkWidget *inreg_user;
- inreg_user = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_default_size(GTK_WINDOW(inreg_user), 400, 400);
- gtk_window_set_title(GTK_WINDOW(inreg_user), "TopMusic");
- GtkWidget *label_nume, *entry_nume, *label_pass, *entry_pass, *label_re_pass, *entry_re_pass, *submit;
- label_nume = gtk_label_new("Introduceti numele :");
- label_pass = gtk_label_new("Introduceti parola :");
- label_re_pass = gtk_label_new("Reintroduceti parola :");
- entry_nume = gtk_entry_new();
- entry_pass = gtk_entry_new();
- entry_re_pass = gtk_entry_new();
- submit = gtk_button_new_with_label("Submit");
- GtkWidget *layout = gtk_layout_new(NULL, NULL);
- GtkWidget *back = gtk_button_new_with_label("Back");
- gtk_layout_put(GTK_LAYOUT(layout), label_nume, 10, 30);
- gtk_layout_put(GTK_LAYOUT(layout), entry_nume, 180, 25);
- gtk_layout_put(GTK_LAYOUT(layout), label_pass, 10, 70);
- gtk_layout_put(GTK_LAYOUT(layout), entry_pass, 180, 65);
- gtk_layout_put(GTK_LAYOUT(layout), label_re_pass, 10, 110);
- gtk_layout_put(GTK_LAYOUT(layout), entry_re_pass, 180, 105);
- gtk_layout_put(GTK_LAYOUT(layout), submit, 285, 145);
- gtk_layout_put(GTK_LAYOUT(layout), back, 10, 145);
- gtk_container_add(GTK_CONTAINER(inreg_user), layout);
- g_object_set_data(G_OBJECT(submit), "nume", entry_nume);
- g_object_set_data(G_OBJECT(submit), "parola", entry_pass);
- g_object_set_data(G_OBJECT(submit), "re_pass", entry_re_pass);
- g_object_set_data(G_OBJECT(submit), "parent", inreg_user);
- g_signal_connect(GTK_BUTTON(submit), "clicked", G_CALLBACK(on_inregistrare_user), submit);
- g_signal_connect(GTK_BUTTON(back), "clicked", G_CALLBACK(back_to_menu), inreg_user);
- gtk_widget_show_all(inreg_user);
- }
- static void logare_utilizator(GtkButton *button, gpointer menu)
- {
- GtkWindow *main_menu = menu;
- gtk_widget_destroy(main_menu);
- GtkWidget *logare_user;
- logare_user = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_default_size(GTK_WINDOW(logare_user), 400, 400);
- gtk_window_set_title(GTK_WINDOW(logare_user), "TopMusic");
- GtkWidget *label_nume, *label_pass, *entry_nume, *entry_pass, *logare;
- label_nume = gtk_label_new("Introduceti numele :");
- label_pass = gtk_label_new("Introduceti parola :");
- entry_nume = gtk_entry_new();
- entry_pass = gtk_entry_new();
- logare = gtk_button_new_with_label("Logare");
- GtkWidget *layout = gtk_layout_new(NULL, NULL);
- GtkWidget *back = gtk_button_new_with_label("Back");
- gtk_layout_put(GTK_LAYOUT(layout), label_nume, 10, 30);
- gtk_layout_put(GTK_LAYOUT(layout), entry_nume, 180, 25);
- gtk_layout_put(GTK_LAYOUT(layout), label_pass, 10, 70);
- gtk_layout_put(GTK_LAYOUT(layout), entry_pass, 180, 65);
- gtk_layout_put(GTK_LAYOUT(layout), logare, 285, 105);
- gtk_layout_put(GTK_LAYOUT(layout), back, 10, 105);
- gtk_container_add(GTK_CONTAINER(logare_user), layout);
- g_object_set_data(G_OBJECT(logare), "nume", entry_nume);
- g_object_set_data(G_OBJECT(logare), "parola", entry_pass);
- g_object_set_data(G_OBJECT(logare), "parent", logare_user);
- g_signal_connect(GTK_BUTTON(logare), "clicked", G_CALLBACK(on_logare_user), logare);
- g_signal_connect(GTK_BUTTON(back), "clicked", G_CALLBACK(back_to_menu), logare_user);
- gtk_widget_show_all(logare_user);
- }
- static void quit_out(GtkButton *button, gpointer menu)
- {
- int size = strlen("quit");
- if(write(sd, &size, sizeof(int)) <= 0)
- {
- perror("Eroare la write() catre server");
- return errno;
- }
- if(write(sd, "quit", sizeof(int)) <= 0)
- {
- perror("Eroare la write() catre server");
- return errno;
- }
- GtkWindow *main_menu = menu;
- gtk_widget_destroy(GTK_WIDGET(main_menu));
- close(sd);
- }
- static void on_connect(GtkButton *button, GObject *context_object)
- {
- GtkEntry *ip_entry = g_object_get_data(context_object, "ip-entry");
- GtkEntry *port_entry = g_object_get_data(context_object, "port-entry");
- GtkWindow *page_1 = g_object_get_data(context_object, "page_1");
- // int sd; // descriptorul de socket
- struct sockaddr_in server; // structura folosita pentru conectare
- /* stabilim portul */
- int port = atoi (gtk_entry_get_text(port_entry));
- /* cream socketul */
- if ((sd = socket (AF_INET, SOCK_STREAM, 0)) == -1)
- {
- perror ("Eroare la socket().\n");
- return errno;
- }
- /* umplem structura folosita pentru realizarea conexiunii cu serverul */
- /* familia socket-ului */
- server.sin_family = AF_INET;
- /* adresa IP a serverului */
- server.sin_addr.s_addr = inet_addr(gtk_entry_get_text(ip_entry));
- /* portul de conectare */
- server.sin_port = htons (port);
- /* ne conectam la server */
- int ok = 1;
- if (connect (sd, (struct sockaddr *) &server,sizeof (struct sockaddr)) == -1)
- {
- GtkDialogFlags flags = GTK_DIALOG_DESTROY_WITH_PARENT;
- GtkWidget *warning = gtk_message_dialog_new(page_1, flags, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Eroare la conectare!");
- gtk_window_set_title(GTK_WINDOW(warning), "WARNING!");
- gtk_dialog_run(GTK_DIALOG(warning));
- gtk_widget_destroy(warning);
- ok = 0;
- }
- if(ok){
- gtk_widget_destroy(page_1);
- GtkWidget *main_menu = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_default_size(GTK_WINDOW(main_menu), 400, 400);
- gtk_window_set_title(GTK_WINDOW(main_menu), "TopMusic");
- GtkWidget *label, *inreg_admin, *inreg_user, *logare_admin, *logare_user, *quit;
- label = gtk_label_new("Alege una din optiunile de mai jos:");
- inreg_admin = gtk_button_new_with_label("Inregistrare ca admin");
- inreg_user = gtk_button_new_with_label("Inregistrare");
- logare_admin = gtk_button_new_with_label("Logare ca admin");
- logare_user = gtk_button_new_with_label("Logare");
- quit = gtk_button_new_with_label("Quit");
- GtkWidget *box;
- box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
- gtk_box_pack_start(GTK_BOX(box), label, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), inreg_admin, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), logare_admin, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), inreg_user, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), logare_user, TRUE, TRUE, 10);
- gtk_box_pack_start(GTK_BOX(box), quit, TRUE, TRUE, 10);
- g_signal_connect(GTK_BUTTON(inreg_admin), "clicked", G_CALLBACK(inregistrare_admin), main_menu);
- g_signal_connect(GTK_BUTTON(logare_admin), "clicked", G_CALLBACK(login_admin), main_menu);
- g_signal_connect(GTK_BUTTON(inreg_user), "clicked", G_CALLBACK(inregistrare_utilizator), main_menu);
- g_signal_connect(GTK_BUTTON(logare_user), "clicked", G_CALLBACK(logare_utilizator), main_menu);
- g_signal_connect(GTK_BUTTON(quit), "clicked", G_CALLBACK(quit_out), main_menu);
- gtk_container_add(GTK_CONTAINER(main_menu), box);
- gtk_widget_show_all(main_menu);
- }
- }
- int main(int argc, char *argv[])
- {
- gtk_init(&argc, &argv);
- GtkWidget *ip, *port, *ip_entry, *port_entry;
- GtkWidget *page_1 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_default_size(GTK_WINDOW(page_1), 400, 400);
- gtk_window_set_title(GTK_WINDOW(page_1), "TopMusic");
- ip = gtk_label_new("IP");
- ip_entry = gtk_entry_new();
- port = gtk_label_new("Port");
- port_entry = gtk_entry_new();
- GtkWidget *grid = gtk_grid_new();
- gtk_grid_attach(GTK_GRID(grid), ip, 1, 1, 1, 1);
- gtk_grid_attach(GTK_GRID(grid), port, 1, 2, 1, 1);
- gtk_grid_attach(GTK_GRID(grid), ip_entry, 2, 1, 1, 1);
- gtk_grid_attach(GTK_GRID(grid), port_entry, 2, 2, 1, 1);
- GtkWidget *connect;
- connect = gtk_button_new_with_label("Connect");
- gtk_grid_attach(GTK_GRID(grid), connect, 2, 3, 1, 1);
- g_object_set_data(G_OBJECT(connect), "ip-entry", ip_entry);
- g_object_set_data(G_OBJECT(connect), "port-entry", port_entry);
- g_object_set_data(G_OBJECT(connect), "page_1", page_1);
- g_signal_connect(GTK_BUTTON(connect), "clicked", G_CALLBACK(on_connect), connect);
- gtk_container_add(GTK_CONTAINER(page_1), grid);
- gtk_widget_show_all(page_1);
- gtk_main();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement