Exemple #1
0
void about_dialog (GtkWidget *widget, gpointer data) {
	GtkWidget* aboutwindow = NULL;
	GtkWidget* w = NULL, *w2 = NULL;
	char *intro = _("XQF Game Server Browser");
	char *version = g_strdup_printf(_("Version %s"),XQF_VERSION);

	/* translators can use the copyright symbol instead of (C) */
	char *author = _("Copyright (C) 1998-2002 Roman Pozlevich");
	char *urls = "http://www.linuxgames.com/xqf\n"
		"http://sourceforge.net/projects/xqf\n";
	char *contrib1 = _("Maintainers:");
	char *contrib2 =
		"Thomas Debesse <*****@*****.**>\n"
		"Ludwig Nussel <*****@*****.**>\n"
		"Alex Burger <*****@*****.**>\n"
		"Jordi Mallach <*****@*****.**>\n"
		"Bill Adams <*****@*****.**>\n";
	char *contrib3 = _("Contributors:");
	char *contrib4 = 
		"Jochen Baier <*****@*****.**>\n"
		"Luca Camillo <*****@*****.**>\n";
	char *bugs1 = _("Bug reports and feature requests:");
	char *bugs2 = "http://sourceforge.net/projects/xqf\n"
		"[email protected]\n";

	char *text = NULL;//  dialog_ok (_("About XQF"), "%s", text);
	aboutwindow = create_AboutWindow();

	w2 = load_pixmap(aboutwindow, "splash.png");

	w = gtk_object_get_data(GTK_OBJECT(aboutwindow),"AboutVBox");
	gtk_box_pack_start (GTK_BOX (w), w2, FALSE, FALSE, 0);
	gtk_box_reorder_child(GTK_BOX(w), w2, 0);
	gtk_widget_show(w2);

	w = gtk_object_get_data(GTK_OBJECT(aboutwindow),"AboutLabel");

	text = g_strjoin("\n", intro, version, author, urls, contrib1, contrib2,
			contrib3, contrib4, bugs1, bugs2, NULL);
	g_free(version);

	gtk_label_set_text(GTK_LABEL(w), text);

	g_free(text);

	gtk_window_set_transient_for (GTK_WINDOW (aboutwindow), GTK_WINDOW (top_window()));

	register_window(aboutwindow);

	gtk_widget_show(aboutwindow);
}
Exemple #2
0
GtkWidget *dialog_create_modal_transient_window (const char *title,
		int close_on_esc, 
		int allow_resize, 
		GtkSignalFunc on_destroy) {
	GtkWidget *window;
	GtkWidget *parent;

	window = gtk_window_new (GTK_WINDOW_TOPLEVEL);

	gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER);
	gtk_signal_connect (GTK_OBJECT (window), "delete_event",
			GTK_SIGNAL_FUNC (window_delete_event_callback), NULL);
	if (on_destroy) {
		gtk_signal_connect (GTK_OBJECT (window), "destroy",
				GTK_SIGNAL_FUNC (on_destroy), NULL);
	}
	gtk_signal_connect (GTK_OBJECT (window), "destroy",
			GTK_SIGNAL_FUNC (gtk_main_quit), NULL);

	if (close_on_esc) {
		gtk_signal_connect (GTK_OBJECT (window), "key_press_event",
				GTK_SIGNAL_FUNC (destroy_on_escape), NULL);
	}

	if (title)
		gtk_window_set_title (GTK_WINDOW (window), title);

	gtk_widget_realize (window);

	gdk_window_set_decorations (window->window, (allow_resize)?
			GDK_DECOR_BORDER | GDK_DECOR_TITLE | GDK_DECOR_RESIZEH :
			GDK_DECOR_BORDER | GDK_DECOR_TITLE);

	gdk_window_set_functions (window->window, (allow_resize)?
			GDK_FUNC_MOVE | GDK_FUNC_CLOSE | GDK_FUNC_RESIZE : 
			GDK_FUNC_MOVE | GDK_FUNC_CLOSE);

	gtk_window_set_modal (GTK_WINDOW (window), TRUE);

	parent = top_window ();
	if (parent)
		gtk_window_set_transient_for (GTK_WINDOW (window), GTK_WINDOW (parent));

	register_window (window);

	return window;
}
Exemple #3
0
void handle_msg(int *msg)
{
	WINDOWP	window;

	wake_mouse();
	window= get_window(msg[3]);			/* Zugeh�riges Fenster */

	switch (msg[0])							/* Art der Nachricht */
	{
		case MN_SELECTED:
			if (makro_rec)						/* Makro wird Tastendruck vorgegaukelt */
			{
				int	kstate, kreturn;
				char	str[50];
				
				get_string(menu, msg[4], str);
				if (str_to_key(str, &kstate, &kreturn))
				{
					kstate |= (kstate & 3);
					to_makro(kstate, kreturn);
				}
			}
			handle_menu(msg[3], msg[4], menu_ctrl);
			menu_ctrl = FALSE;
			break;
		case WM_REDRAW  :
			if (msg[3] == akt_handle)
				redraw_aktion();
			else
				redraw_window (window, (GRECT*)(msg+4));
			break;
		case WM_CLOSED  :
			do_icon(window->handle, DO_DELETE);
			break;
		case WM_FULLED  :
			full_window (window);
			break;
		case WM_ARROWED :
			arrow_window (window, msg[4], 1);
			break;
		case WM_HSLID	 :
			h_slider (window, msg[4]);
			break;
		case WM_VSLID	 :
			v_slider (window, msg[4]);
			break;
		case WM_SIZED	 :
			size_window (window, (GRECT*)(msg+4), TRUE);
			break;
		case WM_MOVED	 :
			move_window (window, (GRECT*)(msg+4));
			break;
		case WM_NEWTOP	 : /* Fenster von qed ist irgendwie nach oben gekommen */
		case WM_ONTOP	 :
			ontop_window(window);
			break;
		case WM_TOPPED  :
			top_window (window);
			break;
		case WM_UNTOPPED: /* qed hat jetzt nicht mehr das Top-Fenster */
			untop_window (window);
			break;
		case WM_BOTTOMED: 	/* AES 4.00 MagiC 3 : Fenster nach hinten */
		case WM_M_BDROPPED :	/* Magic 2 */
			bottom_window (window, msg[0]);
			break;
		case WM_ICONIFY:
			iconify_window(window, (GRECT*)(msg+4));
			break;
		case WM_ALLICONIFY:
			all_iconify(window, (GRECT*)(msg+4));
			break;
		case WM_UNICONIFY:
			if (all_iconified)
				all_uniconify(NULL, (GRECT*)(msg+4));
			else
				uniconify_window(window, (GRECT*)(msg+4));
			break;
		case WM_SHADED :
		case WM_UNSHADED :
			shade_window(window, msg[0]);
			break;

		case AP_TERM:
			if (all_iconified)
				all_uniconify(NULL, NULL);
			quick_close = TRUE;
			if (prepare_quit())
				do_quit();
			break;
		case AP_DRAGDROP :
			if (all_iconified)
				Bconout(2, 7);
			else
				handle_dd(msg);
			break;

		case SC_CHANGED :
			/*
			 * Ignorieren, da wir vor dem Paste sowieso neu laden.
			*/
			break;

		case VA_START :
		case VA_PROTOSTATUS :
		case VA_DRAG_COMPLETE :
		case VA_DRAGACCWIND :
		case AV_SENDKEY :
			handle_av(msg);
			break;

		case SE_INIT:
		case SE_OK:
		case SE_ACK:
		case SE_OPEN:
		case SE_ERROR:
		case SE_ERRFILE:
		case SE_PROJECT:
		case SE_QUIT:
		case SE_TERMINATE:
		case SE_CLOSE :
		case SE_MENU :
			if (all_iconified)
				all_uniconify(NULL, NULL);
		   handle_se(msg);
		   break;

		case OLGA_INIT :
		case OLE_NEW :
		case OLGA_ACK :
		case OLE_EXIT :
			handle_olga(msg);
			break;

		case SH_WDRAW:				/* schickt Freedom st�ndig */
		case DHST_ACK:				/* SMU antwortet */
			/* ignore */
			break;

		case FONT_CHANGED :
			if (msg[4] != 0)
				font_id = msg[4];
			if (msg[5] != 0)
				font_pts = msg[5];
			font_change();	
			break;
			
		default:
			if (debug_level)
			{
				char	str[12];
				int	d, i, id;
	
				if ((appl_xgetinfo(4, &d, &d, &i, &d)) && (i == 1))	/* gibts appl_search? */
				{
					i = appl_search(0, str, &d, &id);
					while (i != 0)
					{
						if (id == msg[1])
							break;
						i = appl_search( 1, str, &d, &id);
					}
				}
				else
				{
					strcpy(str, "");
					id = msg[1];
				}
				debug("Unbekannte Msg %d (0x%X) von %s (%d)\n", msg[0], msg[0], str, id);
			}
			break;
	}
}