diff options
author | Daniel P. Berrange <berrange@redhat.com> | 2007-07-20 21:13:26 -0400 |
---|---|---|
committer | Daniel P. Berrange <berrange@redhat.com> | 2007-07-20 21:13:26 -0400 |
commit | d62dc4f28578ce36ce8d601abf30087254a76bb7 (patch) | |
tree | 805cd77d252a8acfabdbfabcc8273bce77f96dde | |
parent | d0dd15225e940e4b1288313cc03764723a359e32 (diff) | |
download | virt-viewer-d62dc4f28578ce36ce8d601abf30087254a76bb7.tar.gz virt-viewer-d62dc4f28578ce36ce8d601abf30087254a76bb7.tar.xz virt-viewer-d62dc4f28578ce36ce8d601abf30087254a76bb7.zip |
Connected up screenshot & about menus
-rw-r--r-- | src/main.c | 64 |
1 files changed, 57 insertions, 7 deletions
@@ -51,6 +51,7 @@ struct keyComboDef { static const struct keyComboDef keyCombos[] = { { { GDK_Control_L, GDK_Alt_L, GDK_Delete }, 3, "Ctrl+Alt+_Del"}, { { GDK_Control_L, GDK_Alt_L, GDK_BackSpace }, 3, "Ctrl+Alt+_Backspace"}, + { {}, 0, "" }, { { GDK_Control_L, GDK_Alt_L, GDK_F1 }, 3, "Ctrl+Alt+F_1"}, { { GDK_Control_L, GDK_Alt_L, GDK_F2 }, 3, "Ctrl+Alt+F_2"}, { { GDK_Control_L, GDK_Alt_L, GDK_F3 }, 3, "Ctrl+Alt+F_3"}, @@ -59,6 +60,7 @@ static const struct keyComboDef keyCombos[] = { { { GDK_Control_L, GDK_Alt_L, GDK_F6 }, 3, "Ctrl+Alt+F_6"}, { { GDK_Control_L, GDK_Alt_L, GDK_F7 }, 3, "Ctrl+Alt+F_7"}, { { GDK_Control_L, GDK_Alt_L, GDK_F8 }, 3, "Ctrl+Alt+F_8"}, + { {}, 0, "" }, { { GDK_Print }, 1, "_PrintScreen"}, }; @@ -133,7 +135,7 @@ static void viewer_send_key(GtkWidget *menu, GtkWidget *vnc) DEBUG_LOG("Failed to find key combo %s\n", gtk_label_get_text(GTK_LABEL(label))); } -#if 0 + static void viewer_save_screenshot(GtkWidget *vnc, const char *file) { GdkPixbuf *pix = vnc_display_get_pixbuf(VNC_DISPLAY(vnc)); @@ -142,7 +144,7 @@ static void viewer_save_screenshot(GtkWidget *vnc, const char *file) gdk_pixbuf_unref(pix); } -static void viewer_screenshot(GtkWidget *menu, GtkWidget *vnc) +static void viewer_screenshot(GtkWidget *menu G_GNUC_UNUSED, GtkWidget *vnc) { GtkWidget *dialog; @@ -167,7 +169,7 @@ static void viewer_screenshot(GtkWidget *menu, GtkWidget *vnc) gtk_widget_destroy (dialog); } -#endif + static void viewer_credential(GtkWidget *vnc, GValueArray *credList) { @@ -232,17 +234,61 @@ static void viewer_credential(GtkWidget *vnc, GValueArray *credList) gtk_widget_destroy(GTK_WIDGET(dialog)); } +static void viewer_about(GtkWidget *menu G_GNUC_UNUSED) +{ + GtkWidget *about; + const char *authors[] = { + "Daniel P. Berrange <berrange@redhat.com>", + NULL + }; + + about = gtk_about_dialog_new(); + + gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(about), "Virtual Machine Viewer"); + gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(about), VERSION); + gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(about), "http://virt-manager.org/"); + gtk_about_dialog_set_website_label(GTK_ABOUT_DIALOG(about), "http://virt-manager.org/"); + gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(about), authors); + gtk_about_dialog_set_license(GTK_ABOUT_DIALOG(about), + "This program is free software; you can redistribute it and/or modify\n" \ + "it under the terms of the GNU General Public License as published by\n" \ + "the Free Software Foundation; either version 2 of the License, or\n" \ + "(at your option) any later version.\n" \ + "\n" \ + "This program is distributed in the hope that it will be useful,\n" \ + "but WITHOUT ANY WARRANTY; without even the implied warranty of\n" \ + "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" \ + "GNU General Public License for more details.\n" \ + "\n" \ + "You should have received a copy of the GNU General Public License\n" \ + "along with this program; if not, write to the Free Software\n" \ + "Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"); + + + gtk_dialog_run(GTK_DIALOG(about)); + + gtk_widget_destroy(about); +} + static GtkWidget *viewer_build_file_menu(VncDisplay *vnc) { GtkWidget *file; GtkWidget *filemenu; GtkWidget *quit; + GtkWidget *screenshot; file = gtk_menu_item_new_with_mnemonic("_File"); filemenu = gtk_menu_new(); gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), filemenu); + screenshot = gtk_menu_item_new_with_mnemonic("_Screenshot"); + gtk_menu_append(GTK_MENU(filemenu), screenshot); + g_signal_connect(screenshot, "activate", GTK_SIGNAL_FUNC(viewer_screenshot), vnc); + + gtk_menu_append(GTK_MENU(filemenu), gtk_separator_menu_item_new()); + + quit = gtk_image_menu_item_new_from_stock(GTK_STOCK_QUIT, NULL); gtk_menu_append(GTK_MENU(filemenu), quit); g_signal_connect(quit, "activate", GTK_SIGNAL_FUNC(viewer_shutdown), vnc); @@ -264,9 +310,13 @@ static GtkWidget *viewer_build_sendkey_menu(VncDisplay *vnc) for (i = 0 ; i < (sizeof(keyCombos)/sizeof(keyCombos[0])) ; i++) { GtkWidget *key; - key = gtk_menu_item_new_with_mnemonic(keyCombos[i].label); - gtk_menu_append(GTK_MENU(sendkeymenu), key); - g_signal_connect(key, "activate", GTK_SIGNAL_FUNC(viewer_send_key), vnc); + if (keyCombos[i].nkeys) { + key = gtk_menu_item_new_with_mnemonic(keyCombos[i].label); + gtk_menu_append(GTK_MENU(sendkeymenu), key); + g_signal_connect(key, "activate", GTK_SIGNAL_FUNC(viewer_send_key), vnc); + } else { + gtk_menu_append(GTK_MENU(sendkeymenu), gtk_separator_menu_item_new()); + } } return sendkey; @@ -285,7 +335,7 @@ static GtkWidget *viewer_build_help_menu(void) about = gtk_image_menu_item_new_from_stock(GTK_STOCK_ABOUT, NULL); gtk_menu_append(GTK_MENU(helpmenu), about); - //g_signal_connect(about, "activate", GTK_SIGNAL_FUNC(viewer_shutdown), vnc); + g_signal_connect(about, "activate", GTK_SIGNAL_FUNC(viewer_about), NULL); return help; } |