/* * events.c * * Copyright (C) 2007 Pau Espin Pedrol (Sharwin_F) * * 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 */ #include #include #include #include #include #include "mpepcrypt.h" #include "widgets.h" GtkWidget *tmp; void filemanager_inserta(GtkFileSelection *fs ) { gtk_entry_set_text( GTK_ENTRY (tmp), gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs))); } void filemanager_obre( GtkWidget *entry ) { GtkWidget *filew = gtk_file_selection_new ("Seleccionant un fitxer"); tmp = entry; gtk_widget_show (filew); g_signal_connect_swapped(G_OBJECT (GTK_FILE_SELECTION (filew)->ok_button), "clicked", G_CALLBACK (filemanager_inserta), G_OBJECT (filew)); /* Destrueix widget, Cancel, Accept o X */ g_signal_connect_swapped(G_OBJECT (GTK_FILE_SELECTION (filew)->ok_button), "clicked", G_CALLBACK (gtk_widget_destroy), G_OBJECT (filew)); g_signal_connect_swapped(G_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button), "clicked", G_CALLBACK (gtk_widget_destroy), G_OBJECT (filew)); g_signal_connect_swapped(G_OBJECT (filew), "destroy", G_CALLBACK (gtk_widget_destroy), G_OBJECT (filew)); } void encrypt_process( GtkWidget **array ) { FILE *fp; GtkTextIter start, end; gchar *strin, *strout; const gchar *f_in, *f_out; GtkTextBuffer *buffer; const gchar *pass = gtk_entry_get_text( GTK_ENTRY(array[8]) ); int error; GError** gerror; //= g_error_new(); /* pillem string del quadre o del arxiu: */ //input arxiu: if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (array[0])) ) { f_in = gtk_entry_get_text( GTK_ENTRY (array[4]) ); if( ( fp=fopen(f_in, "r") ) == NULL ) { //llancem error alert("Error", "Error al obrir l'arxiu d'entrada per a llegir-ne el contingut.\n\n", errno); return; } else { fread(strin, sizeof(gchar), 1, fp); fclose(fp); } //input text } else { buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(array[5]) ); gtk_text_buffer_get_iter_at_offset(buffer, &start, 0); gtk_text_buffer_get_iter_at_offset(buffer, &end, -1); strin = gtk_text_buffer_get_text(buffer, &start, &end, TRUE); } //encriptem strin = g_locale_from_utf8(strin, strlen(strin), NULL, NULL, gerror); fprintf(stderr, "PASS:%s;\nIN:%s;\n;", pass, strin); strout = cripto(pass, strin, 1); strout = g_locale_to_utf8(strout, -1, NULL, NULL, NULL); fprintf(stderr, "STRLENOUT:%i;\nOUT:%s;\n", strlen(strin), strout ); //output arxiu: if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (array[2])) ) { f_out = gtk_entry_get_text( GTK_ENTRY (array[6]) ); if( ( fp=fopen(f_out, "w") ) == NULL ) { alert("Error", "Error al obrir l'arxiu de sortida per a escriure'n el contingut.\n\n", errno); return; } else { fwrite(strout, sizeof(gchar), 100, fp); fclose(fp); } //output text } else { buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(array[7]) ); gtk_text_buffer_get_iter_at_offset(buffer, &start, 0); gtk_text_buffer_get_iter_at_offset(buffer, &end, -1); gtk_text_buffer_set_text( buffer, strout, strlen(strout) ); } } void decrypt_process( GtkWidget **array ) { fprintf(stderr, "SIGNAL ACTIVAT\n"); FILE *fp; GtkTextIter start, end; gchar *strin, *strout; const gchar *f_in, *f_out; GtkTextBuffer *buffer; const gchar *pass = gtk_entry_get_text( GTK_ENTRY(array[8]) ); GError** gerror; // = g_error_new(); //pillen string del quadre o del arxiu: //input arxiu: if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (array[0])) ) { f_in = gtk_entry_get_text( GTK_ENTRY (array[4]) ); if( ( fp=fopen(f_in, "r") ) == NULL ) { alert("Error", "Error al obrir l'arxiu d'entrada per a llegir-ne el contingut.\n\n",errno); return; } else { fread(strin, sizeof(gchar), 1, fp); fclose(fp); } //input text } else { buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(array[5]) ); gtk_text_buffer_get_iter_at_offset(buffer, &start, 0); gtk_text_buffer_get_iter_at_offset(buffer, &end, -1); strin = gtk_text_buffer_get_text(buffer, &start, &end, TRUE); } //desencriptem fprintf(stderr, "PASS:%s;\nIN:%s;\n;", pass, strin); strin = g_locale_from_utf8(strin, strlen(strin), NULL, NULL, gerror); strout = cripto(pass, strin, 0); strout = g_locale_to_utf8(strout, -1, NULL, NULL, NULL); fprintf(stderr, "OUT:%s;\n", strout); //output arxiu: if( gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON (array[2])) ) { f_out = gtk_entry_get_text( GTK_ENTRY (array[6]) ); if( ( fp=fopen(f_out, "w") ) == NULL ) { alert("Error", "Error al obrir l'arxiu de sortida per a escriure'n el contingut.\n\n", errno); return; } else { fwrite(strout, sizeof(gchar), 100, fp); fclose(fp); } //output text } else { buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW(array[7]) ); gtk_text_buffer_get_iter_at_offset(buffer, &start, 0); gtk_text_buffer_get_iter_at_offset(buffer, &end, -1); gtk_text_buffer_set_text( buffer, strout, strlen(strout) ); } }