void MoonWindowGtk::uninstall_application (MoonWindowGtk *window) { window->SetCurrentDeployment (); Deployment *deployment = Deployment::GetCurrent (); Application *application = deployment->GetCurrentApplication (); application->Uninstall (); }
void MoonWindowGtk::RightClickMenu () { Deployment *deployment = Deployment::GetCurrent (); OutOfBrowserSettings *settings; GtkWidget *menu_item; GtkWidget *menu; char *name; menu = gtk_menu_new(); menu_item = gtk_menu_item_new_with_label ("Moonlight Settings"); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); g_signal_connect_swapped (G_OBJECT(menu_item), "activate", G_CALLBACK (show_moonlight_dialog), this); if (deployment && (settings = deployment->GetOutOfBrowserSettings ())) { Application *application = deployment->GetCurrentApplication (); switch (application->GetInstallState ()) { case InstallStateNotInstalled: if (application->IsInstallable () && settings->GetShowInstallMenuItem ()) { name = g_strdup_printf ("Install %s onto this computer...", settings->GetShortName ()); menu_item = gtk_menu_item_new_with_label (name); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); g_signal_connect_swapped (G_OBJECT(menu_item), "activate", G_CALLBACK (install_application), this); g_free (name); } break; case InstallStateInstalled: menu_item = gtk_menu_item_new_with_label ("Remove this application..."); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); g_signal_connect_swapped (G_OBJECT(menu_item), "activate", G_CALLBACK (uninstall_application), this); break; default: break; } } gtk_widget_show_all (menu); gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 0, gtk_get_current_event_time()); }