Add an about dialog

This commit is contained in:
Pierre Pronchery 2015-04-24 01:17:59 +02:00
parent 501f2053f7
commit 27ecb24de7

View File

@ -101,6 +101,12 @@ static VncAudioPulse *pa = NULL;
static GtkWidget *vnc; static GtkWidget *vnc;
static GtkWidget *statusbar; static GtkWidget *statusbar;
static char const * authors[] = {
"Anthony Liguori <anthony@codemonkey.ws>",
"Pierre Pronchery <khorben@defora.org>",
NULL
};
typedef struct { typedef struct {
GtkWidget *label; GtkWidget *label;
guint curkeys; guint curkeys;
@ -370,6 +376,31 @@ static void send_cab(GtkWidget *menu G_GNUC_UNUSED, GtkWidget *vncdisplay)
sizeof(keys)/sizeof(keys[0])); sizeof(keys)/sizeof(keys[0]));
} }
static void do_about(GtkWidget *menu, GtkWidget *window)
{
GtkWidget *dialog;
char const copyright[] =
"Copyright © 2006 Anthony Liguori <anthony@codemonkey.ws>\n"
"Copyright © 2015 Pierre Pronchery <khorben@defora.org>";
dialog = gtk_about_dialog_new();
gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(window));
gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(dialog), authors);
gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(dialog),
"VNC viewer for the DeforaOS desktop");
gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(dialog), copyright);
#if GTK_CHECK_VERSION(2, 12, 0)
gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(dialog), PACKAGE);
#else
gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(dialog), PACKAGE);
#endif
gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), VERSION);
gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(dialog),
"http://www.defora.org/");
gtk_dialog_run(GTK_DIALOG(dialog));
gtk_widget_destroy(dialog);
}
static void do_fullscreen(GtkWidget *menu, GtkWidget *window) static void do_fullscreen(GtkWidget *menu, GtkWidget *window)
{ {
if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu))) if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu)))
@ -659,7 +690,7 @@ int vncviewer(gchar ** args)
GtkWidget *window; GtkWidget *window;
GtkWidget *layout; GtkWidget *layout;
GtkWidget *menubar; GtkWidget *menubar;
GtkWidget *file, *sendkey, *view, *settings; GtkWidget *file, *sendkey, *view, *settings, *help;
GtkWidget *submenu; GtkWidget *submenu;
GtkWidget *close; GtkWidget *close;
GtkWidget *caf1; GtkWidget *caf1;
@ -674,6 +705,7 @@ int vncviewer(gchar ** args)
GtkWidget *cab; GtkWidget *cab;
GtkWidget *fullscreen; GtkWidget *fullscreen;
GtkWidget *scaling; GtkWidget *scaling;
GtkWidget *about;
GtkWidget *showgrabkeydlg; GtkWidget *showgrabkeydlg;
GSList *accels; GSList *accels;
gchar *tmp; gchar *tmp;
@ -758,6 +790,17 @@ int vncviewer(gchar ** args)
gtk_menu_item_set_submenu(GTK_MENU_ITEM(settings), submenu); gtk_menu_item_set_submenu(GTK_MENU_ITEM(settings), submenu);
help = gtk_menu_item_new_with_mnemonic("_Help");
gtk_menu_shell_append(GTK_MENU_SHELL(menubar), help);
submenu = gtk_menu_new();
about = gtk_menu_item_new_with_mnemonic("_About");
gtk_menu_shell_append(GTK_MENU_SHELL(submenu), about);
gtk_menu_item_set_submenu(GTK_MENU_ITEM(help), submenu);
statusbar = gtk_statusbar_new(); statusbar = gtk_statusbar_new();
#if WITH_LIBVIEW #if WITH_LIBVIEW
@ -879,6 +922,8 @@ int vncviewer(gchar ** args)
G_CALLBACK(do_fullscreen), window); G_CALLBACK(do_fullscreen), window);
g_signal_connect(scaling, "toggled", g_signal_connect(scaling, "toggled",
G_CALLBACK(do_scaling), vnc); G_CALLBACK(do_scaling), vnc);
g_signal_connect(about, "activate",
G_CALLBACK(do_about), window);
#if WITH_LIBVIEW #if WITH_LIBVIEW
g_signal_connect(window, "window-state-event", g_signal_connect(window, "window-state-event",
G_CALLBACK(window_state_event), layout); G_CALLBACK(window_state_event), layout);