/* This file is a part of XBibFile - a system for handling BibTeX references * * Author: Ross Maloney * Date: October 1999 * Renamed, reformed, and reworked: January 2002 * */ #include //extern void close_window(); /* contained in cleanup.c */ //extern void article(); /* contained in article.c */ //extern void book(); /* contained in book.c */ //extern void linkwindow(); //extern int format; /* This procedure produces a window allowing selection of the * 14 BibTeX reference formats */ void available(GtkWidget *widget) { GtkTooltips *tooltips; GtkWidget *window, *panel, *description, *selectionKeypad, *separ, *finish; GtkWidget *artkey, *bookkey; GtkWidget *bookletkey, *confkey; GtkWidget *inbookkey, *incolkey; GtkWidget *inprockey, *mankey; GtkWidget *masterskey, *misckey; GtkWidget *procedkey, *phdkey; GtkWidget *techkey, *unpubkey; extern void article(); extern void book(); extern void inproc(); extern void phd(); extern void masters(); extern void incol(); extern void booklet(); /* contained in file booklet.c */ extern void conference(); /* contained in file conference.c */ extern void inbook(); /* contained in file inbook.c */ extern void unpublished(); /* contained in file unpublished.c */ extern void manual(); /* contained in file manual.c */ extern void misc(); /* contained in file misc.c */ extern void proceedings(); /* contained in file proceedings.c */ extern void techreport(); /* contained in file techreport.c */ extern void close_window(GtkWidget); /* contained in file cleanup.c */ /* create the tooltip help feature */ tooltips = gtk_tooltips_new(); /* form the outline of the window */ window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "XBibFile select"); gtk_window_position(GTK_WINDOW(window), GTK_WIN_POS_MOUSE); gtk_window_set_default_size(GTK_WINDOW(window), 250, 300); panel = gtk_vbox_new(FALSE, 10); description = gtk_label_new("Select a reference type"); gtk_box_pack_start_defaults(GTK_BOX(panel), description); selectionKeypad = gtk_table_new(7, 2, TRUE); gtk_widget_set_usize(GTK_WIDGET(selectionKeypad), 230, 210); gtk_container_add(GTK_CONTAINER(window), panel); gtk_container_set_border_width(GTK_CONTAINER(window), 10); gtk_box_pack_start_defaults(GTK_BOX(panel), selectionKeypad); separ = gtk_hseparator_new(); gtk_box_pack_start_defaults(GTK_BOX(panel), separ); finish = gtk_button_new_with_label("Cancel"); gtk_widget_set_usize(GTK_WIDGET(finish), 130, 30); g_signal_connect(GTK_OBJECT(finish), "clicked", G_CALLBACK(close_window), NULL); gtk_box_pack_start_defaults(GTK_BOX(panel), finish); gtk_tooltips_set_tip(tooltips, finish, "Finished inserting into this reference database", NULL); /* connect the Article reference type */ artkey = gtk_button_new_with_label("Article"); gtk_table_attach_defaults(GTK_TABLE(selectionKeypad), artkey, 0, 1, 0 ,1); g_signal_connect(GTK_OBJECT(artkey), "clicked", G_CALLBACK(article), NULL); gtk_tooltips_set_tip(tooltips, artkey, "Make an Article reference", NULL); /* connect the Book reference type */ bookkey = gtk_button_new_with_label("Book"); gtk_table_attach_defaults(GTK_TABLE(selectionKeypad), bookkey, 0, 1, 1 ,2); g_signal_connect(GTK_OBJECT(bookkey), "clicked", G_CALLBACK(book), NULL); gtk_tooltips_set_tip(tooltips, bookkey, "Make a Book reference", NULL); /* connect the Booklet reference type */ bookletkey = gtk_button_new_with_label("Booklet"); gtk_table_attach_defaults(GTK_TABLE(selectionKeypad), bookletkey, 0, 1, 2 ,3); g_signal_connect(GTK_OBJECT(bookletkey), "clicked", G_CALLBACK(booklet), NULL); gtk_tooltips_set_tip(tooltips, bookletkey, "Make a Booklet reference", NULL); /* connect the Conference reference type */ confkey = gtk_button_new_with_label("Conference"); gtk_table_attach_defaults(GTK_TABLE(selectionKeypad), confkey, 0, 1, 3 ,4); g_signal_connect(GTK_OBJECT(confkey), "clicked", G_CALLBACK(conference), NULL); gtk_tooltips_set_tip(tooltips, confkey, "Make a reference to a Conference", NULL); /* connect the InBook reference type */ inbookkey = gtk_button_new_with_label("In Book"); gtk_table_attach_defaults(GTK_TABLE(selectionKeypad), inbookkey, 0, 1, 4 ,5); g_signal_connect(GTK_OBJECT(inbookkey), "clicked", G_CALLBACK(inbook), NULL); gtk_tooltips_set_tip(tooltips, inbookkey, "Make an In Book reference", NULL); /* connect the InCollection reference type */ incolkey = gtk_button_new_with_label("In Collection"); gtk_table_attach_defaults(GTK_TABLE(selectionKeypad), incolkey, 0, 1, 5 ,6); g_signal_connect(GTK_OBJECT(incolkey), "clicked", G_CALLBACK(incol), NULL); gtk_tooltips_set_tip(tooltips, incolkey, "Make an In Collection reference", NULL); /* connect the InProceedings reference type */ inprockey = gtk_button_new_with_label("In Proceedings"); gtk_table_attach_defaults(GTK_TABLE(selectionKeypad), inprockey, 0, 1, 6 ,7); g_signal_connect(GTK_OBJECT(inprockey), "clicked", G_CALLBACK(inproc), NULL); gtk_tooltips_set_tip(tooltips, inprockey, "Make an In Proceedings reference", NULL); /* connect the Manual reference type */ mankey = gtk_button_new_with_label("Manual"); gtk_table_attach_defaults(GTK_TABLE(selectionKeypad), mankey, 1, 2, 0 ,1); g_signal_connect(GTK_OBJECT(mankey), "clicked", G_CALLBACK(manual), NULL); gtk_tooltips_set_tip(tooltips, mankey, "Make a reference to a Manual", NULL); /* connect the Masters reference type */ masterskey = gtk_button_new_with_label("Masters thesis"); gtk_table_attach_defaults(GTK_TABLE(selectionKeypad), masterskey, 1, 2, 1 ,2); g_signal_connect(GTK_OBJECT(masterskey), "clicked", G_CALLBACK(masters), NULL); gtk_tooltips_set_tip(tooltips, masterskey, "Make a reference to a Masters thesis", NULL); /* connect the Misc reference type */ misckey = gtk_button_new_with_label("Misc"); gtk_table_attach_defaults(GTK_TABLE(selectionKeypad), misckey, 1, 2, 2 ,3); g_signal_connect(GTK_OBJECT(misckey), "clicked", G_CALLBACK(misc), NULL); gtk_tooltips_set_tip(tooltips, misckey, "Make a reference to a Miscellaneous type document", NULL); /* connect the PhDthesis reference type */ phdkey = gtk_button_new_with_label("PhD thesis"); gtk_table_attach_defaults(GTK_TABLE(selectionKeypad), phdkey, 1, 2, 3 ,4); g_signal_connect(GTK_OBJECT(phdkey), "clicked", G_CALLBACK(phd), NULL); gtk_tooltips_set_tip(tooltips, phdkey, "Make a reference to a PhD thesis", NULL); /* connect the Proceedings reference type */ procedkey = gtk_button_new_with_label("Proceedings"); gtk_table_attach_defaults(GTK_TABLE(selectionKeypad), procedkey, 1, 2, 4 ,5); g_signal_connect(GTK_OBJECT(procedkey), "clicked", G_CALLBACK(proceedings), NULL); gtk_tooltips_set_tip(tooltips, procedkey, "Make a reference to a Proceedings", NULL); /* connect the TechReport reference type */ techkey = gtk_button_new_with_label("Tech Report"); gtk_table_attach_defaults(GTK_TABLE(selectionKeypad), techkey, 1, 2, 5 ,6); g_signal_connect(GTK_OBJECT(techkey), "clicked", G_CALLBACK(techreport), NULL); gtk_tooltips_set_tip(tooltips, techkey, "Make a reference to a Technical Report", NULL); /* connect the Unpublished reference type */ unpubkey = gtk_button_new_with_label("Unpublished"); gtk_table_attach_defaults(GTK_TABLE(selectionKeypad), unpubkey, 1, 2, 6 ,7); g_signal_connect(GTK_OBJECT(unpubkey), "clicked", G_CALLBACK(unpublished), NULL); gtk_tooltips_set_tip(tooltips, unpubkey, "Make a reference to an Unpublished document", NULL); /* make the composite window visible on the screen */ gtk_widget_show_all(window); }