diff options
Diffstat (limited to 'hardinfo2/shell/callbacks.c')
-rw-r--r-- | hardinfo2/shell/callbacks.c | 430 |
1 files changed, 0 insertions, 430 deletions
diff --git a/hardinfo2/shell/callbacks.c b/hardinfo2/shell/callbacks.c deleted file mode 100644 index 021560e2..00000000 --- a/hardinfo2/shell/callbacks.c +++ /dev/null @@ -1,430 +0,0 @@ -/* - * HardInfo - Displays System Information - * Copyright (C) 2003-2009 Leandro A. F. Pereira <leandro@hardinfo.org> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, version 2. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include <stdlib.h> -#include <gtk/gtk.h> - -#include "hardinfo.h" -#include "callbacks.h" -#include "iconcache.h" - -#include "shell.h" -#include "report.h" -#include "remote.h" -#include "syncmanager.h" -#include "help-viewer.h" -#include "xmlrpc-server.h" - -#include "config.h" - -void cb_sync_manager() -{ - Shell *shell = shell_get_main_shell(); - - sync_manager_show(shell->window); -} - -void cb_connect_to() -{ -#ifdef HAS_LIBSOUP - Shell *shell = shell_get_main_shell(); - - connect_dialog_show(shell->window); -#endif /* HAS_LIBSOUP */ -} - -void cb_manage_hosts() -{ -#ifdef HAS_LIBSOUP - Shell *shell = shell_get_main_shell(); - - host_manager_show(shell->window); -#endif /* HAS_LIBSOUP */ -} - -void cb_connect_host(GtkAction * action) -{ -#ifdef HAS_LIBSOUP - Shell *shell = shell_get_main_shell(); - gchar *name; - - g_object_get(G_OBJECT(action), "name", &name, NULL); - - if (remote_connect_host(name)) { - gchar *tmp; - - tmp = g_strdup_printf("Remote: <b>%s</b>", name); - shell_set_remote_label(shell, tmp); - - g_free(tmp); - } else { - cb_local_computer(); - } - - g_free(name); -#endif /* HAS_LIBSOUP */ -} - -static gboolean server_start_helper(gpointer server_loop) -{ -#ifdef HAS_LIBSOUP - GMainLoop *loop = (GMainLoop *)server_loop; - - xmlrpc_server_start(loop); - - return FALSE; -#endif /* HAS_LIBSOUP */ -} - -void cb_act_as_server() -{ -#ifdef HAS_LIBSOUP - gboolean accepting; - static GMainLoop *server_loop = NULL; - - accepting = shell_action_get_active("ActAsServerAction"); - if (accepting) { - server_loop = g_main_loop_new(NULL, FALSE); - g_idle_add(server_start_helper, server_loop); - } else { - g_main_loop_quit(server_loop); - } -#endif /* HAS_LIBSOUP */ -} - -void cb_local_computer() -{ -#ifdef HAS_LIBSOUP - Shell *shell = shell_get_main_shell(); - - shell_status_update("Disconnecting..."); - remote_disconnect_all(TRUE); - - shell_status_update("Unloading modules..."); - module_unload_all(); - - shell_status_update("Loading local modules..."); - shell->tree->modules = modules_load_all(); - - g_slist_foreach(shell->tree->modules, shell_add_modules_to_gui, shell->tree); - gtk_tree_view_expand_all(GTK_TREE_VIEW(shell->tree->view)); - - shell_view_set_enabled(TRUE); - shell_status_update("Done."); - shell_set_remote_label(shell, ""); -#endif /* HAS_LIBSOUP */ -} - -void cb_save_graphic() -{ - Shell *shell = shell_get_main_shell(); - GtkWidget *dialog; - gchar *filename; - - /* save the pixbuf to a png file */ - dialog = gtk_file_chooser_dialog_new("Save Image", - NULL, - GTK_FILE_CHOOSER_ACTION_SAVE, - GTK_STOCK_CANCEL, - GTK_RESPONSE_CANCEL, - GTK_STOCK_SAVE, - GTK_RESPONSE_ACCEPT, NULL); - - filename = g_strconcat(shell->selected->name, ".png", NULL); - gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(dialog), filename); - g_free(filename); - - if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { - filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); - gtk_widget_destroy(dialog); - - shell_status_update("Saving image..."); - - tree_view_save_image(filename); - - shell_status_update("Done."); - g_free(filename); - - return; - } - - gtk_widget_destroy(dialog); -} - -void cb_open_web_page() -{ - open_url("http://wiki.hardinfo.org"); -} - -void cb_open_online_docs() -{ - Shell *shell; - - shell = shell_get_main_shell(); - if (shell->help_viewer) { - help_viewer_open_page(shell->help_viewer, "index.hlp"); - } else { - gchar *help_dir; - - help_dir = g_build_filename(params.path_data, "doc", NULL); - shell->help_viewer = help_viewer_new(help_dir, "index.hlp"); - g_free(help_dir); - } -} - -void cb_open_online_docs_context() -{ - Shell *shell; - - shell = shell_get_main_shell(); - - if (shell->selected->flags & MODULE_FLAG_HAS_HELP) { - gchar *temp; - - if (shell->selected_module->dll) { - gchar *name_temp; - - name_temp = (gchar *)g_module_name(shell->selected_module->dll); - name_temp = g_path_get_basename(name_temp); - strend(name_temp, '.'); - - temp = g_strdup_printf("context-help-%s-%d.hlp", - name_temp, - shell->selected->number); - - g_free(name_temp); - } else { - goto no_context_help; - } - - if (shell->help_viewer) { - help_viewer_open_page(shell->help_viewer, temp); - } else { - gchar *help_dir; - - help_dir = g_build_filename(params.path_data, "doc", NULL); - shell->help_viewer = help_viewer_new(help_dir, temp); - g_free(help_dir); - } - - g_free(temp); - } else { - GtkWidget *dialog; - -no_context_help: - dialog = gtk_message_dialog_new(GTK_WINDOW(shell->window), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_CLOSE, - "No context help available."); - - gtk_dialog_run(GTK_DIALOG(dialog)); - gtk_widget_destroy(dialog); - } -} - -void cb_report_bug() -{ - open_url("http://wiki.hardinfo.org/BugReports"); -} - -void cb_donate() -{ - open_url("http://wiki.hardinfo.org/Donate"); -} - -void cb_refresh() -{ - shell_do_reload(); -} - -void cb_copy_to_clipboard() -{ - ShellModuleEntry *entry = shell_get_main_shell()->selected; - - if (entry) { - gchar *data = module_entry_function(entry); - GtkClipboard *clip = - gtk_clipboard_get(gdk_atom_intern("CLIPBOARD", FALSE)); - ReportContext *ctx = report_context_text_new(NULL); - - ctx->entry = entry; - - report_header(ctx); - report_table(ctx, data); - report_footer(ctx); - - gtk_clipboard_set_text(clip, ctx->output, -1); - - g_free(data); - report_context_free(ctx); - } -} - -void cb_side_pane() -{ - gboolean visible; - - visible = shell_action_get_active("SidePaneAction"); - shell_set_side_pane_visible(visible); -} - -void cb_toolbar() -{ - gboolean visible; - - visible = shell_action_get_active("ToolbarAction"); - shell_ui_manager_set_visible("/MainMenuBarAction", visible); -} - -void cb_about_module(GtkAction * action) -{ - Shell *shell = shell_get_main_shell(); - GSList *modules = shell->tree->modules; - ModuleAbout *ma; - gchar *name; - - g_object_get(G_OBJECT(action), "tooltip", &name, NULL); - - for (; modules; modules = modules->next) { - ShellModule *sm = (ShellModule *) modules->data; - - if (!g_str_equal(sm->name, name)) - continue; - - if ((ma = module_get_about(sm))) { - GtkWidget *about; - gchar *text; - - about = gtk_about_dialog_new(); - - text = g_strdup_printf("%s Module", sm->name); - gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(about), text); - g_free(text); - - gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(about), - ma->version); - - text = g_strdup_printf("Written by %s\nLicensed under %s", - ma->author, ma->license); - gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(about), text); - g_free(text); - - if (ma->description) - gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(about), - ma->description); - - gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(about), sm->icon); - gtk_dialog_run(GTK_DIALOG(about)); - gtk_widget_destroy(about); - } else { - g_warning - ("No about information is associated with the %s module.", - name); - } - - break; - } - - g_free(name); -} - -void cb_about() -{ - GtkWidget *about; - const gchar *authors[] = { - "Author:", - "Leandro A. F. Pereira", - "", - "Contributors:", - "Agney Lopes Roth Ferraz", - "Andrey Esin", - "", - "Based on work by:", - "MD5 implementation by Colin Plumb (see md5.c for details)", - "SHA1 implementation by Steve Reid (see sha1.c for details)", - "Blowfish implementation by Paul Kocher (see blowfich.c for details)", - "Raytracing benchmark by John Walker (see fbench.c for details)", - "FFT benchmark by Scott Robert Ladd (see fftbench.c for details)", - "Some code partly based on x86cpucaps by Osamu Kayasono", - "Vendor list based on GtkSysInfo by Pissens Sebastien", - "DMI support based on code by Stewart Adam", - "SCSI support based on code by Pascal F. Martin", - NULL - }; - const gchar *artists[] = { - "Jakub Szypulka", - "Tango Project", - "The GNOME Project", - "VMWare, Inc. (USB icon from VMWare Workstation 6)", - NULL - }; - - about = gtk_about_dialog_new(); - gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(about), "HardInfo"); - gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(about), VERSION); - gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(about), - "Copyright \302\251 2003-2009 " - "Leandro A. F. Pereira"); - gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(about), - "System information and benchmark tool"); - gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(about), - icon_cache_get_pixbuf("logo.png")); - - gtk_about_dialog_set_license(GTK_ABOUT_DIALOG(about), - "HardInfo is free software; you can redistribute it and/or modify " - "it under the terms of the GNU General Public License as published by " - "the Free Software Foundation, version 2.\n\n" - "This program is distributed in the hope that it will be useful, " - "but WITHOUT ANY WARRANTY; without even the implied warranty of " - "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the " - "GNU General Public License for more details.\n\n" - "You should have received a copy of the GNU General Public License " - "along with this program; if not, write to the Free Software " - "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA"); -#if GTK_CHECK_VERSION(2,8,0) - gtk_about_dialog_set_wrap_license(GTK_ABOUT_DIALOG(about), TRUE); -#endif - - gtk_about_dialog_set_authors(GTK_ABOUT_DIALOG(about), authors); - gtk_about_dialog_set_artists(GTK_ABOUT_DIALOG(about), artists); - - gtk_dialog_run(GTK_DIALOG(about)); - gtk_widget_destroy(about); -} - -void cb_generate_report() -{ - Shell *shell = shell_get_main_shell(); - gboolean btn_refresh = shell_action_get_enabled("RefreshAction"); - gboolean btn_copy = shell_action_get_enabled("CopyAction"); - - report_dialog_show(shell->tree->model, shell->window); - - shell_action_set_enabled("RefreshAction", btn_refresh); - shell_action_set_enabled("CopyAction", btn_copy); -} - -void cb_quit(void) -{ - do { - gtk_main_quit(); - } while (gtk_main_level() > 1); - - exit(0); -} |