Exemplo n.º 1
0
static void
dialog_destroy(GtkWidget *w, GtkWidget **wp)
{

	install_idle_process();
	gtk_widget_destroy(w);
}
Exemplo n.º 2
0
static void
about_destroy(GtkWidget *w, GtkWidget **wp)
{

	UNUSED(wp);

	install_idle_process();
	gtk_widget_destroy(w);
}
Exemplo n.º 3
0
void
gui_gtk_widget_mainloop(void)
{

	install_idle_process();
	gtk_quit_add(1, main_loop_quit, NULL);
	gtk_main();
	uninstall_idle_process();
}
Exemplo n.º 4
0
int
gui_gtk_msgbox(const char *title, const char *msg, UINT flags)
{
	GtkWidget *dialog;
	GtkMessageType msgtype;
	GtkButtonsType btntype;
	int retval;
	int rv;

	uninstall_idle_process();

	switch (flags & TK_MB_BTN_MASK) {
	default:
		btntype = GTK_BUTTONS_OK;
		break;

	case TK_MB_OK:
		btntype = GTK_BUTTONS_OK;
		break;

	case TK_MB_CANCEL:
		btntype = GTK_BUTTONS_CANCEL;
		break;

	case TK_MB_OKCANCEL:
		btntype = GTK_BUTTONS_OK_CANCEL;
		break;

	case TK_MB_YESNO:
		btntype = GTK_BUTTONS_YES_NO;
		break;
	}

	if (flags & TK_MB_ICON_INFO) {
		msgtype = GTK_MESSAGE_INFO;
	} else if (flags & TK_MB_ICON_WARNING) {
		msgtype = GTK_MESSAGE_WARNING;
	} else if (flags & TK_MB_ICON_ERROR) {
		msgtype = GTK_MESSAGE_ERROR;
	} else if (flags & TK_MB_ICON_QUESTION) {
		msgtype = GTK_MESSAGE_QUESTION;
	} else {
		msgtype = GTK_MESSAGE_OTHER;
	}

	dialog = gtk_message_dialog_new(GTK_WINDOW(main_window),
	    GTK_DIALOG_DESTROY_WITH_PARENT|GTK_DIALOG_MODAL,
	    msgtype, btntype, "%s", msg);
	gtk_window_set_title(GTK_WINDOW(dialog), title);

	gtk_widget_show_all(dialog);

	rv = gtk_dialog_run(GTK_DIALOG(dialog));
	switch (rv) {
	case GTK_RESPONSE_OK:
		retval = TK_MB_OK;
		break;

	case GTK_RESPONSE_CANCEL:
		retval = TK_MB_CANCEL;
		break;

	case GTK_RESPONSE_YES:
		retval = TK_MB_YES;
		break;

	case GTK_RESPONSE_NO:
		retval = TK_MB_NO;
		break;

	default:
		retval = 0;	/* XXX */
		break;
	}

	gtk_widget_destroy(dialog);
	install_idle_process();

	return retval;
}