/* This file is a part of XBibFile - a system for handling BibTeX references * * Author: Ross Maloney * Date: October 1999 * */ #include #include "xbibfile.h" /* input text fields and labels used BibTeX format windows handled in * this file */ GtkWidget *label30, *data30; GtkWidget *label31, *data31; GtkWidget *label32, *data32; /* Procedure to cancel the linking window and remove links */ void cancel_linking(GtkWidget *widget) { extern int length[]; extern close_window(); length[30] = 0; length[31] = 0; length[32] = 0; close_window(widget); } /* Procedure to take data from the linking window */ void save_linking(GtkWidget *widget) { extern void close_window(); /* defined in file cleanup.c */ extern int length[]; extern char slate30[]; extern char slate31[]; extern char slate32[]; strcpy(slate30, gtk_entry_get_text(GTK_ENTRY(data30))); length[30] = strlen(slate30); strcpy(slate31, gtk_entry_get_text(GTK_ENTRY(data31))); length[31] = strlen(slate31); strcpy(slate32, gtk_entry_get_text(GTK_ENTRY(data32))); length[32] = strlen(slate32); close_window(widget); } /* Procedure to put window on screen for the common linking process */ void linkwindow(widget) { GtkTooltips *tooltips; GtkWidget *window; GtkWidget *decoration; GtkWidget *totalPane; GtkWidget *field0; GtkWidget *key0; GtkWidget *key1; GtkWidget *field1; GtkWidget *field2; GtkWidget *field3; extern int format; if (format == 0) { error (widget, GINT_TO_POINTER(6)); return; } /* create the tooltip help feature */ tooltips = gtk_tooltips_new(); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "XBibFile create"); gtk_window_position(GTK_WINDOW(window), GTK_WIN_POS_MOUSE); gtk_widget_set_usize(GTK_WIDGET(window), 400, 170); decoration = gtk_frame_new("Linking Labels"); gtk_container_add(GTK_CONTAINER(window), decoration); totalPane = gtk_vbox_new(FALSE, 5); gtk_container_add(GTK_CONTAINER(decoration), totalPane); field1 = gtk_hbox_new(FALSE, 0); label30 = gtk_label_new("Up link:"); gtk_widget_set_usize(GTK_WIDGET(label30), 60, -1); gtk_box_pack_start(GTK_BOX(field1), label30, FALSE, FALSE, 10); data30 = gtk_entry_new_with_max_length(LARGE); gtk_widget_set_usize(GTK_WIDGET(data30), 300, -1); gtk_box_pack_start(GTK_BOX(field1), data30, FALSE, FALSE, 10); gtk_box_pack_start(GTK_BOX(totalPane), field1, FALSE, TRUE, 10); field2 = gtk_hbox_new(FALSE, 0); label31 = gtk_label_new("Cross link:"); gtk_widget_set_usize(GTK_WIDGET(label31), 60, -1); gtk_box_pack_start(GTK_BOX(field2), label31, FALSE, FALSE, 10); data31 = gtk_entry_new_with_max_length(LARGE); gtk_widget_set_usize(GTK_WIDGET(data31), 300, -1); gtk_box_pack_start(GTK_BOX(field2), data31, FALSE, FALSE, 10); gtk_box_pack_start(GTK_BOX(totalPane), field2, FALSE, TRUE, 0); field3 = gtk_hbox_new(FALSE, 0); label32 = gtk_label_new("Externals:"); gtk_widget_set_usize(GTK_WIDGET(label32), 60, -1); gtk_box_pack_start(GTK_BOX(field3), label32, FALSE, FALSE, 10); data32 = gtk_entry_new_with_max_length(LARGE); gtk_widget_set_usize(GTK_WIDGET(data32), 300, -1); gtk_box_pack_start(GTK_BOX(field3), data32, FALSE, FALSE, 10); gtk_box_pack_start(GTK_BOX(totalPane), field3, FALSE, TRUE, 10); /* finally, put the cancel and save buttons * in the window */ field0 = gtk_hbox_new(FALSE, 0); key0 = gtk_button_new_with_label("CANCEL"); gtk_widget_set_usize(GTK_WIDGET(key0), 90, -1); g_signal_connect(GTK_OBJECT(key0), "clicked", G_CALLBACK(cancel_linking), NULL); gtk_tooltips_set_tip(tooltips, key0, "Discard the contents of this window", NULL); gtk_box_pack_end(GTK_BOX(field0), key0, FALSE, FALSE, 10); key1 = gtk_button_new_with_label("Save"); gtk_widget_set_usize(GTK_WIDGET(key1), 90, -1); g_signal_connect(GTK_OBJECT(key1), "clicked", G_CALLBACK(save_linking), NULL); gtk_tooltips_set_tip(tooltips, key1, "Store the contents of this window", NULL); gtk_box_pack_end(GTK_BOX(field0), key1, FALSE, FALSE, 10); gtk_box_pack_start(GTK_BOX(totalPane), field0, FALSE, TRUE, 0); /* make the composite window visible on the screen */ gtk_widget_show_all(window); }