summaryrefslogtreecommitdiff
path: root/biblio/bibtex/utils/xbibfile/xbibfile.c
diff options
context:
space:
mode:
Diffstat (limited to 'biblio/bibtex/utils/xbibfile/xbibfile.c')
-rw-r--r--biblio/bibtex/utils/xbibfile/xbibfile.c165
1 files changed, 165 insertions, 0 deletions
diff --git a/biblio/bibtex/utils/xbibfile/xbibfile.c b/biblio/bibtex/utils/xbibfile/xbibfile.c
new file mode 100644
index 0000000000..3c755a923f
--- /dev/null
+++ b/biblio/bibtex/utils/xbibfile/xbibfile.c
@@ -0,0 +1,165 @@
+/* This file is a part of XBibFile - a system for handling BibTeX references
+ *
+ * Author: Ross Maloney
+ * Date: October 1999
+ * Renamed and reworked: January 2002
+ *
+ */
+
+/* History
+ *
+ * Version Date
+ * 0.1 October 1999 Initial release with Join and Lookup
+ * outputing to the console terminal window.
+ * 0.2 December 1999 In an attempt to solve the limited fields
+ * for some data entry, the code for assigning
+ * field-lengths was generalised.
+ * 0.3 May 2000 Added the URL field to reference type fields
+ * and error corrections
+ * 0.4 July 2000 Added the note field and commented out the
+ * actions of the Join and Lookup buttons
+ * 0.5 December 2000 Replace gtk_widget_show() with
+ * gtk_widget_show_all(), and add tooltips for
+ * help
+ * 0.6 January 2002 Major revision of software layout and computer
+ * graphics/human interface
+ * 0.7 November 2002 Upgrade the Gtk routines used internally in the
+ * source code from version 1.2 to 2.0
+ */
+
+/* This file initiates XBibFile */
+
+#include <stdio.h>
+#include <gtk/gtk.h>
+
+#include "xbibfile.h"
+
+
+/* These memory locations contain the input text fields and labels
+ * used by all the windows that enter the various BibTeX reference
+ * types. */
+
+int format; /* the BibTeX format being currently used */
+FILE *finput;
+FILE *refFile;
+char slateX[SMALL]; /* search key */
+int lengthX;
+int length[40]; /* length of strings entered via windows */
+char slate0[LARGE]; /* file currently being used for receiving */
+char slate1[LARGE]; /* address */
+char slate2[LARGE]; /* note */
+char slate3[LARGE]; /* author */
+char slate4[LARGE]; /* booktitle */
+char slate5[TINY]; /* chapter */
+char slate6[SMALL]; /* edition */
+char slate7[LARGE]; /* editor */
+char slate8[SMALL]; /* howpublished */
+char slate9[SMALL]; /* institution */
+char slate10[SMALL]; /* journal */
+char slate11[SMALL]; /* key */
+char slate12[TINY]; /* month */
+char slate13[HUGE]; /* annote */
+char slate14[SMALL]; /* number */
+char slate15[LARGE]; /* organization */
+char slate16[LARGE]; /* pages */
+char slate17[LARGE]; /* publisher */
+char slate18[LARGE]; /* school */
+char slate19[SMALL]; /* series */
+char slate20[LARGE]; /* title */
+char slate21[TINY]; /* type */
+char slate22[LARGE]; /* URL */
+char slate23[TINY]; /* volume */
+char slate24[TINY]; /* year */
+char slate30[LARGE]; /* Up Link */
+char slate31[LARGE]; /* Cross Link */
+char slate32[LARGE]; /* External Link */
+char slate40[LARGE]; /* name of file for cross-reference forming */
+GtkWidget *root; /* the widget that is the root of the current
+ * tree */
+
+
+int main(int argc, char *argv[])
+{
+ GtkTooltips *tooltips;
+ GtkWidget *top, *panel, *buttonBox, *buttonFrame;
+ GtkWidget *button1, *button2, *button3;
+ GtkWidget *description1, *description2, *separator;
+ int i;
+ extern byebye(GtkWidget); /* in cleanup.c */
+ extern file_select(GtkWidget); /* in file filing.c */
+ extern ref_select(GtkWidget *); /* in file filing.c */
+
+
+ format = 0; /* indicate start condition */
+ strcpy(slate0, "GO BACK and SELECT a FILE");
+ strcpy(slate40, "GO BACK and SELECT a REF FILE");
+ length[0] = strlen(slate0);
+ length[40] = strlen(slate40);
+ finput = 0;
+ refFile = 0;
+
+ /* initialise the string storage areas */
+ for (i=0; i<40; i++) {
+ length[i] = 0;
+ }
+ lengthX = 0;
+/* slateX = 1; */
+
+ /* create the initial window panel for the program */
+ gtk_init(&argc, &argv);
+
+ /* create the tooltip help feature */
+ tooltips = gtk_tooltips_new();
+
+ top = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ gtk_window_set_title(GTK_WINDOW(top), "XBibFile 0.7");
+ gtk_window_set_default_size(GTK_WINDOW(top), 150, 250);
+ panel = gtk_vbox_new(FALSE, 10);
+ gtk_container_add(GTK_CONTAINER(top), panel);
+ gtk_container_set_border_width(GTK_CONTAINER(top), 10);
+ description1 = gtk_label_new("Build and handle the \nBibTeX database");
+ gtk_box_pack_start_defaults(GTK_BOX(panel), description1);
+ description2 = gtk_label_new("\nVersion 0.7.1\n");
+ gtk_box_pack_start_defaults(GTK_BOX(panel), description2);
+ buttonBox = gtk_vbox_new(FALSE, 10);
+ gtk_widget_set_usize(GTK_WIDGET(buttonBox), 140, 130);
+ gtk_box_pack_start_defaults(GTK_BOX(panel), buttonBox);
+
+ button1 = gtk_button_new_with_label("Create New");
+ gtk_widget_set_usize(GTK_WIDGET(button1), 100, 30);
+ g_signal_connect(GTK_OBJECT(button1), "button-press-event",
+ G_CALLBACK(file_select), NULL);
+ gtk_tooltips_set_tip(tooltips, button1,
+ "Create a new BibTeX database entry", NULL);
+
+ gtk_box_pack_start_defaults(GTK_BOX(buttonBox), button1);
+
+ button2 = gtk_button_new_with_label("Find Reference");
+ gtk_widget_set_usize(GTK_WIDGET(button2), 100, 30);
+ g_signal_connect(GTK_OBJECT(button2), "button-press-event",
+ G_CALLBACK(ref_select), NULL);
+ gtk_tooltips_set_tip(tooltips, button2,
+ "Search database for an existing reference", NULL);
+ gtk_box_pack_start_defaults(GTK_BOX(buttonBox), button2);
+
+ separator = gtk_hseparator_new();
+ gtk_box_pack_start_defaults(GTK_BOX(buttonBox), separator);
+
+ button3 = gtk_button_new_with_label("exit");
+ gtk_widget_set_usize(GTK_WIDGET(button3), 100, 30);
+ g_signal_connect(GTK_OBJECT(button3), "button-press-event",
+ G_CALLBACK(byebye), NULL);
+ gtk_tooltips_set_tip(tooltips, button3,
+ "Exit this program", NULL);
+ gtk_box_pack_start_defaults(GTK_BOX(buttonBox), button3);
+
+ /* make this composite window visible on the screen */
+
+ gtk_widget_show_all(top);
+
+ /* process all signals associated with this application */
+ gtk_main();
+
+ /* The End */
+ return(0);
+}