1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
/* This file is a part of XBibFile - a system for handling BibTeX references
*
* Author: Ross Maloney
* Date: October 1999
* Modified: January 2002
*
*/
#include <gtk/gtk.h>
extern void close_window(); /* defined in file cleanup.c */
/* This file contains the error handling routines. */
/* The error types are:
* 1 entries not saved
* 2 last entry not saved
* 3 all required fields not supplied
* 4 requested function not implemented
* 5 this reference has been saved already
* 6 I am sorry, but you have already saved this entry
* 7 cannot open that file
* 8 currently there is no file selected
* 9 format in the current BibTeX file selected */
void error(GtkWidget *widget,
GtkWidget *type)
{
GtkWidget *window;
GtkWidget *button;
GtkWidget *label;
char bell = '\007'; /* ASCII code for a bell */
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "XBibFile security");
gtk_window_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
button = gtk_button_new();
gtk_widget_set_usize(GTK_WIDGET(button), 250, 100);
g_signal_connect(GTK_OBJECT(button), "clicked",
G_CALLBACK(close_window), NULL);
gtk_container_add(GTK_CONTAINER(window), button);
switch (GPOINTER_TO_INT(type)) {
case 1: label = gtk_label_new("Entries not saved");
break;
case 2: label = gtk_label_new("Last entry not saved");
break;
case 3: label = gtk_label_new("All required fields not supplied");
break;
case 4: label = gtk_label_new("Requested function not implemented");
break;
case 5: label = gtk_label_new("This reference has been saved already");
break;
case 6: label = gtk_label_new("I am sorry,\n but you have already saved this entry");
break;
case 7: label = gtk_label_new("Cannot open that file for appending");
break;
case 8: label = gtk_label_new("Currently there is no file selected");
break;
case 9: label = gtk_label_new("Error detected in BibTeX file\n while processing it");
break;
default: label = gtk_label_new("Impossible error (ERROR)");
}
gtk_container_add(GTK_CONTAINER(button), label);
/* put the window on the screen */
gtk_widget_show_all(window);
g_print("%c", bell);
}
|