1 /* SCCS Id: @(#)gnopts.c 3.4 2000/07/16 */
2 /* Copyright (C) 1998 by Erik Andersen <andersee@debian.org> */
3 /* NetHack may be freely redistributed. See license for details. */
14 static GtkWidget* clist;
15 const char* tilesets[] = { "Traditional (16x16)", "Big (32x32)", 0 };
18 opt_sel_key_hit(GtkWidget *widget, GdkEventKey *event, gpointer data)
21 for (i = 0; tilesets[i] != 0; ++i) {
22 if (tilesets[i][0] == toupper(event->keyval)) {
24 gtk_clist_select_row( GTK_CLIST (clist), i, 0);
30 opt_sel_row_selected(GtkCList *cList, int row, int col, GdkEvent *event)
36 ghack_settings_dialog()
39 static GtkWidget* dialog;
40 static GtkWidget* swin;
41 static GtkWidget* frame1;
43 dialog = gnome_dialog_new (_("GnomeHack Settings"),
44 GNOME_STOCK_BUTTON_OK,
45 GNOME_STOCK_BUTTON_CANCEL,
47 gnome_dialog_close_hides (GNOME_DIALOG (dialog), FALSE);
48 gtk_signal_connect (GTK_OBJECT (dialog), "key_press_event",
49 GTK_SIGNAL_FUNC (opt_sel_key_hit), tilesets );
51 frame1 = gtk_frame_new (_("Choose one of the following tilesets:"));
52 gtk_object_set_data (GTK_OBJECT (dialog), "frame1", frame1);
53 gtk_widget_show (frame1);
54 gtk_container_border_width (GTK_CONTAINER (frame1), 3);
56 swin = gtk_scrolled_window_new (NULL, NULL);
57 clist = gtk_clist_new (2);
58 gtk_clist_column_titles_hide (GTK_CLIST (clist));
59 gtk_widget_set_usize (GTK_WIDGET (clist), 100, 180);
60 gtk_container_add (GTK_CONTAINER (swin), clist);
61 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swin),
62 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
64 gtk_signal_connect (GTK_OBJECT (clist), "select_row",
65 GTK_SIGNAL_FUNC (opt_sel_row_selected), NULL );
67 gtk_container_add (GTK_CONTAINER (frame1), swin);
68 gtk_box_pack_start_defaults (GTK_BOX (GNOME_DIALOG (dialog)->vbox), frame1);
70 /* Add the tilesets into the list here... */
71 for (i=0; tilesets[i]; i++) {
72 gchar accelBuf[BUFSZ];
73 const char *text[3]={accelBuf, tilesets[i],NULL};
74 sprintf( accelBuf, "%c ", tolower(tilesets[i][0]));
75 gtk_clist_insert (GTK_CLIST (clist), i, (char**)text);
79 gtk_clist_columns_autosize (GTK_CLIST (clist));
80 gtk_widget_show_all (swin);
82 /* Center the dialog over over parent */
83 gnome_dialog_set_default( GNOME_DIALOG(dialog), 0);
84 gtk_window_set_modal( GTK_WINDOW(dialog), TRUE);
85 gnome_dialog_set_parent (GNOME_DIALOG (dialog),
86 GTK_WINDOW (ghack_get_main_window ()) );
88 /* Run the dialog -- returning whichever button was pressed */
89 i = gnome_dialog_run (GNOME_DIALOG (dialog));
90 gnome_dialog_close (GNOME_DIALOG (dialog));
92 /* They hit Quit or error */
98 /* They selected traditional */
100 if (ghack_init_glyphs(HACKDIR "/x11tiles"))
101 g_error ("ERROR: Could not initialize glyphs.\n");
102 ghack_reinit_map_window();
106 if (ghack_init_glyphs(HACKDIR "/t32-1024.xpm"))
107 g_error ("ERROR: Could not initialize glyphs.\n");
108 ghack_reinit_map_window();
110 /* They selected big */
113 /* This shouldn't happen */
114 g_warning("This shouldn't happen\n");