summaryrefslogtreecommitdiff
path: root/biblio/bibtex/utils/xbibfile/error.c
blob: fec888f1b0a134711f468ef98d790b3c40f13886 (plain)
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);
}