gtk_main_quit();
}
-static void msgbox_button_clicked(GtkButton *button, gpointer data)
-{
- GtkWidget *window = GTK_WIDGET(data);
- int v, *ip;
-
- ip = (int *)g_object_get_data(G_OBJECT(window), "user-data");
- v = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button), "user-data"));
- *ip = v;
-
- gtk_widget_destroy(GTK_WIDGET(data));
-}
-
static int win_key_press(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
GObject *cancelbutton = G_OBJECT(data);
enum { MB_OK, MB_YESNO };
+static void align_label(GtkLabel *label, double x, double y)
+{
+#if GTK_CHECK_VERSION(3,16,0)
+ gtk_label_set_xalign(label, x);
+ gtk_label_set_yalign(label, y);
+#else
+ gtk_misc_set_alignment(GTK_MISC(label), x, y);
+#endif
+}
+
+#if GTK_CHECK_VERSION(3,0,0)
+int message_box(GtkWidget *parent, char *title, char *msg, int centre,
+ int type)
+{
+ GtkWidget *window;
+ gint ret;
+
+ window = gtk_message_dialog_new
+ (GTK_WINDOW(parent),
+ (GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT),
+ (type == MB_OK ? GTK_MESSAGE_INFO : GTK_MESSAGE_QUESTION),
+ (type == MB_OK ? GTK_BUTTONS_OK : GTK_BUTTONS_YES_NO),
+ "%s", msg);
+ gtk_window_set_title(GTK_WINDOW(window), title);
+ ret = gtk_dialog_run(GTK_DIALOG(window));
+ gtk_widget_destroy(window);
+ return (type == MB_OK ? TRUE : (ret == GTK_RESPONSE_YES));
+}
+#else /* GTK_CHECK_VERSION(3,0,0) */
+static void msgbox_button_clicked(GtkButton *button, gpointer data)
+{
+ GtkWidget *window = GTK_WIDGET(data);
+ int v, *ip;
+
+ ip = (int *)g_object_get_data(G_OBJECT(window), "user-data");
+ v = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(button), "user-data"));
+ *ip = v;
+
+ gtk_widget_destroy(GTK_WIDGET(data));
+}
+
int message_box(GtkWidget *parent, char *title, char *msg, int centre,
int type)
{
window = gtk_dialog_new();
text = gtk_label_new(msg);
- gtk_misc_set_alignment(GTK_MISC(text), 0.0, 0.0);
+ align_label(GTK_LABEL(text), 0.0, 0.0);
hbox = gtk_hbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(hbox), text, FALSE, FALSE, 20);
gtk_box_pack_start
gtk_main();
return (type == MB_YESNO ? i == 1 : TRUE);
}
+#endif /* GTK_CHECK_VERSION(3,0,0) */
void error_box(GtkWidget *parent, char *msg)
{
*/
w = gtk_label_new(i->name);
- gtk_misc_set_alignment(GTK_MISC(w), 0.0, 0.5);
+ align_label(GTK_LABEL(w), 0.0, 0.5);
#if GTK_CHECK_VERSION(3,0,0)
gtk_grid_attach(GTK_GRID(table), w, 0, y, 1, 1);
#else
*/
w = gtk_label_new(i->name);
- gtk_misc_set_alignment(GTK_MISC(w), 0.0, 0.5);
+ align_label(GTK_LABEL(w), 0.0, 0.5);
#if GTK_CHECK_VERSION(3,0,0)
gtk_grid_attach(GTK_GRID(table), w, 0, y, 1, 1);
#else
#if GTK_CHECK_VERSION(3,0,0)
gtk_window_resize_to_geometry(GTK_WINDOW(fe->window), x, y);
#else
- fe->w = x;
- fe->h = y;
fe->drawing_area_shrink_pending = FALSE;
gtk_drawing_area_size(GTK_DRAWING_AREA(fe->area), x, y);
{
gtk_window_set_geometry_hints(GTK_WINDOW(fe->window), fe->area,
&geom, GDK_HINT_BASE_SIZE);
}
+ fe->w = -1;
+ fe->h = -1;
get_size(fe, &x, &y);
#if GTK_CHECK_VERSION(3,0,0)
gtk_window_set_default_geometry(GTK_WINDOW(fe->window), x, y);
fe->drawing_area_shrink_pending = FALSE;
gtk_drawing_area_size(GTK_DRAWING_AREA(fe->area), x, y);
#endif
- fe->w = x;
- fe->h = y;
gtk_box_pack_end(vbox, fe->area, TRUE, TRUE, 0);