#include "puzzles.h"
#if GTK_CHECK_VERSION(2,0,0)
-#define USE_PANGO
+# define USE_PANGO
+# ifdef PANGO_VERSION_CHECK
+# if PANGO_VERSION_CHECK(1,8,0)
+# define HAVE_SENSIBLE_ABSOLUTE_SIZE_FUNCTION
+# endif
+# endif
+#endif
+#if !GTK_CHECK_VERSION(2,4,0)
+# define OLD_FILESEL
#endif
#ifdef DEBUGGING
int paste_data_len;
int pw, ph; /* pixmap size (w, h are area size) */
int ox, oy; /* offset of pixmap in drawing area */
+#ifdef OLD_FILESEL
char *filesel_name;
+#endif
int npresets;
GtkWidget **preset_bullets;
GtkWidget *preset_custom_bullet;
return TRUE;
#endif
+ /* Handle mnemonics. */
+ if (gtk_window_activate_key(GTK_WINDOW(fe->window), event))
+ return TRUE;
+
if (event->keyval == GDK_Up)
keyval = shift | ctrl | CURSOR_UP;
else if (event->keyval == GDK_KP_Up || event->keyval == GDK_KP_8)
if (gtk_selection_owner_set(fe->area, GDK_SELECTION_PRIMARY,
CurrentTime)) {
+ gtk_selection_clear_targets(fe->area, GDK_SELECTION_PRIMARY);
gtk_selection_add_target(fe->area, GDK_SELECTION_PRIMARY,
GDK_SELECTION_TYPE_STRING, 1);
gtk_selection_add_target(fe->area, GDK_SELECTION_PRIMARY,
}
}
+#ifdef OLD_FILESEL
+
static void filesel_ok(GtkButton *button, gpointer data)
{
frontend *fe = (frontend *)data;
return fe->filesel_name;
}
+#else
+
+static char *file_selector(frontend *fe, char *title, int save)
+{
+ char *filesel_name = NULL;
+
+ GtkWidget *filesel =
+ gtk_file_chooser_dialog_new(title,
+ GTK_WINDOW(fe->window),
+ save ? GTK_FILE_CHOOSER_ACTION_SAVE :
+ GTK_FILE_CHOOSER_ACTION_OPEN,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ save ? GTK_STOCK_SAVE : GTK_STOCK_OPEN,
+ GTK_RESPONSE_ACCEPT,
+ NULL);
+
+ if (gtk_dialog_run(GTK_DIALOG(filesel)) == GTK_RESPONSE_ACCEPT) {
+ const char *name = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(filesel));
+ filesel_name = dupstr(name);
+ }
+
+ gtk_widget_destroy(filesel);
+
+ return filesel_name;
+}
+
+#endif
+
struct savefile_write_ctx {
FILE *fp;
int error;
gtk_box_pack_start(vbox, menubar, FALSE, FALSE, 0);
gtk_widget_show(menubar);
- menuitem = gtk_menu_item_new_with_label("Game");
+ menuitem = gtk_menu_item_new_with_mnemonic("_Game");
gtk_container_add(GTK_CONTAINER(menubar), menuitem);
gtk_widget_show(menuitem);
GtkWidget *submenu;
int i;
- menuitem = gtk_menu_item_new_with_label("Type");
+ menuitem = gtk_menu_item_new_with_mnemonic("_Type");
gtk_container_add(GTK_CONTAINER(menubar), menuitem);
gtk_widget_show(menuitem);
add_menu_separator(GTK_CONTAINER(menu));
add_menu_item_with_key(fe, GTK_CONTAINER(menu), "Exit", 'q');
- menuitem = gtk_menu_item_new_with_label("Help");
+ menuitem = gtk_menu_item_new_with_mnemonic("_Help");
gtk_container_add(GTK_CONTAINER(menubar), menuitem);
gtk_widget_show(menuitem);