/* Copyright (C) 1999 Southern Gold Development * * 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 2 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "gview.h" #include "icons/dir.xpm" void saveImSave(GtkWidget *widget, gpointer data) { ren *renD; gchar *fName; gint res; renD = (ren *) data; fName = gtk_entry_get_text(GTK_ENTRY (renD->ent)); res = gdk_imlib_save_image(renD->view->currPic, fName, NULL); if (res != 1) g_print("gView - Error saving %s", fName); if (renD->browser) gtk_widget_destroy(renD->browser); gtk_widget_destroy(renD->rsp); } void saveImBOK(GtkWidget *widget, gpointer data) { ren *renD; gchar *fName; renD = (ren *) data; fName = gtk_file_selection_get_filename(GTK_FILE_SELECTION (renD->browser)); gtk_entry_set_text(GTK_ENTRY (renD->ent), fName); gtk_widget_destroy(renD->browser); renD->browser = NULL; } void saveImBCancel(GtkWidget *widget, gpointer data) { ren *renD; renD = (ren *) data; gtk_widget_destroy(renD->browser); renD->browser = NULL; } void saveImBrowse(GtkWidget *widget, gpointer data) { ren *renD; renD = (ren *) data; renD->browser = gtk_file_selection_new(_("Choose a file to overwrite")); gtk_signal_connect(GTK_OBJECT (GTK_FILE_SELECTION (renD->browser)->ok_button), "clicked", (GtkSignalFunc) saveImBOK, data); gtk_signal_connect(GTK_OBJECT (GTK_FILE_SELECTION (renD->browser)->cancel_button), "clicked", (GtkSignalFunc) saveImBCancel, data); gtk_widget_show(renD->browser); } void saveImCancel(GtkWidget *widget, gpointer data) { ren *renD; renD = (ren *) data; if (renD->browser) gtk_widget_destroy(renD->browser); gtk_widget_destroy(renD->rsp); } void saveImKill(GtkWidget *widget, gpointer data) { g_free((ren *) data); } void saveImageDialog(GtkWidget *widget, gpointer data) { sgview *view; GtkWidget *win, *fix, *hbox, *btn, *lbl, *ent, *pixm; GdkPixmap *pix; GdkBitmap *mask; GtkStyle *style; ren *renD; view = (sgview *) data; renD = g_malloc(sizeof(ren)); renD->view = view; renD->browser = NULL; win = gtk_window_new(GTK_WINDOW_DIALOG); renD->rsp = win; gtk_window_set_position(GTK_WINDOW (win), GTK_WIN_POS_MOUSE); gtk_window_set_policy(GTK_WINDOW (win), FALSE, FALSE, FALSE); gtk_widget_set_usize(GTK_WIDGET (win), 180, 85); gtk_window_set_title(GTK_WINDOW (win), _("Save File As")); gtk_signal_connect(GTK_OBJECT (win), "destroy", (GtkSignalFunc) saveImKill, (gpointer) renD); gtk_container_border_width(GTK_CONTAINER (win), 5); fix = gtk_fixed_new(); gtk_container_add(GTK_CONTAINER (win), fix); lbl = gtk_label_new(_("Filename")); gtk_fixed_put(GTK_FIXED (fix), lbl, 0, 0); gtk_widget_show(lbl); ent = gtk_entry_new(); renD->ent = ent; gtk_widget_set_usize(GTK_WIDGET (ent), 145, 24); gtk_fixed_put(GTK_FIXED (fix), ent, 0, 20); gtk_widget_show(ent); style = gtk_widget_get_style(view->disp); pix = gdk_pixmap_create_from_xpm_d(view->disp->window, &mask, &style->bg[GTK_STATE_NORMAL], dir_xpm); pixm = gtk_pixmap_new(pix, mask); btn = gtk_button_new(); gtk_tooltips_set_tip(view->tips, btn, _("Browse for a file to overwrite."), NULL); gtk_signal_connect(GTK_OBJECT (btn), "clicked", (GtkSignalFunc) saveImBrowse, (gpointer) renD); gtk_widget_set_usize(GTK_WIDGET (btn), 20, 24); gtk_container_add(GTK_CONTAINER (btn), pixm); gtk_fixed_put(GTK_FIXED (fix), btn, 150, 20); gtk_widget_show(pixm); gtk_widget_show(btn); hbox = gtk_hbox_new(TRUE, 10); gtk_widget_set_usize(GTK_WIDGET (hbox), 170, 25); gtk_fixed_put(GTK_FIXED (fix), hbox, 0, 50); gAddButtonBox(view, (gpointer) renD, GTK_BOX (hbox), _("Save"), _("Save the file."), (GtkSignalFunc) saveImSave); gAddButtonBox(view, (gpointer) renD, GTK_BOX (hbox), _("Cancel"), _("Cancel the save."), (GtkSignalFunc) saveImCancel); gtk_widget_show(hbox); gtk_widget_show(fix); gtk_widget_show(win); }