/*
 * Gnophone: A client for the Asterisk PBX
 *
 * Copyright (C) 2000-2005, Digium, Inc.
 *
 * Written by Mark Spencer
 *
 * Linux/UNIX version distributed under the terms of
 * the GNU General Public License
 *
 * about.c: Cute little about box thingie.
 *
 */

#include "gnophone.h"

GtkWidget *about = NULL;

const gchar *authors[12] = { "Travis \"goatmilk\" Axtell", "Russell \"drumkilla\" Bryant", "", "Original developers:", "\tMark Spencer", "\tMark Holcomb", "\tMatthew Fredrickson", "\tRob Flynn", "", "Special thanks to everyone", "who has contributed!", (const char*)NULL };

extern GdkPixbuf *mk_pixbif(char *filename);

void destroy_about(GtkWidget *w, GtkWidget *win)
{
	if (about)
		gtk_widget_destroy(about);

	about = NULL;
}

void show_about()
{
	if (!about)
	{

#if GTK26	
		about = gtk_about_dialog_new();
		gtk_container_set_border_width(GTK_CONTAINER(about), 5);
/*		gtk_widget_set_usize(GTK_WIDGET(about), 595, 283);*/

		gtk_window_set_title(GTK_WINDOW(about), "About Gnophone");
		/*gtk_widget_realize(GTK_WIDGET(about));*/

		gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(about), "Gnophone");
		gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(about), VERSION_LONG);
		gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(about), "Copyright (C) 2000-2005 Digium, Inc.");
		gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(about),  "Gnophone is an Open Source internet telephone that allows you to make calls to other Gnophone users or to an Asterisk PBX gateway.  It is written in C and uses the Gtk+ and iaxclient libraries.  Are you interested in helping out with Gnophone development? Contact us!");
		gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(about), (const gchar **)&authors);
		gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(about), "http://www.gnophone.com");
		gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(about), mk_pixbuf("logo.png"));
		/*gtk_about_dialog_set_website_labe(GTK_ABOUT_DIALOG(about),"");*/
		
/*		vbox = gtk_vbox_new(FALSE, 0);
		gtk_container_add(GTK_CONTAINER(about), vbox);
		gtk_widget_show(vbox);

		frame = gtk_frame_new("About Gnophone");
		gtk_widget_show(frame);
		gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0);
*/
		/* Image and text */
/*		hbox = gtk_hbox_new(FALSE, 0);
		gtk_widget_show(hbox);
		gtk_container_add(GTK_CONTAINER(frame), hbox);

		pm = gdk_pixmap_create_from_xpm_d(about->window, &bm, &style->bg[GTK_STATE_NORMAL], (gchar **) gno_logo_xpm);

		image_frame = gtk_frame_new(NULL);
		gtk_widget_show(image_frame);
		gtk_frame_set_shadow_type(GTK_FRAME(image_frame), GTK_SHADOW_IN);

		image = gtk_pixmap_new(pm, bm);

		gdk_pixmap_unref(pm);
		gdk_bitmap_unref(bm);

		gtk_widget_show(image);

		gtk_container_add(GTK_CONTAINER(image_frame), image);
		gtk_box_pack_start(GTK_BOX(hbox), image_frame, FALSE, FALSE, 5);
		
		sw = gtk_scrolled_window_new(NULL, NULL);
		gtk_widget_show(sw);
		gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);

		gtk_box_pack_start(GTK_BOX(hbox), sw, TRUE, TRUE, 0); 

		text = gtk_text_new(NULL, NULL);
		gtk_widget_show(text);
		gtk_container_add(GTK_CONTAINER(sw), text);

		gtk_text_insert(GTK_LABEL(text), NULL, NULL, NULL, "GnoPhone is an Open Source internet telephone that allows you to\nmake calls to other GnoPhone users or to an Asterisk PBX gateway.\nIt is written in C and uses Gtk+.  Are you interested in helping out with\nGnoPhone development? Contact us!\n\nDevelopers\n==========\nMark Spencer\nMark Holcomb\nMatthew Fredrickson\nRob Flynn", 318);
*/
		/* Bottom set of buttons */
/*		hbox = gtk_hbox_new(FALSE, 0);
		gtk_widget_show(hbox);
		gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5);

		button = image_button_new(about, IMAGE_BUTTON_TYPE_BUTTON, "Close", close_xpm);
		gtk_widget_set_usize(button, 80, 40);
		gtk_widget_show(button);
		gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
		gtk_container_set_border_width(GTK_CONTAINER(button), 5);
*/
		/* Now for the signals */
/*		gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(destroy_about), GTK_OBJECT(about));
		gtk_signal_connect(GTK_OBJECT(about), "destroy", GTK_SIGNAL_FUNC(destroy_about), GTK_OBJECT(about));
*/	}

	gtk_widget_show_all(about);
#else
	}
#endif /* GTK26 */

}
