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_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_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_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_connect_to() { Shell *shell = shell_get_main_shell(); remote_dialog_show(shell->window); }
void cb_sync_manager() { Shell *shell = shell_get_main_shell(); sync_manager_show(shell->window); }