Add an about dialog
This commit is contained in:
parent
501f2053f7
commit
27ecb24de7
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user