aboutsummaryrefslogtreecommitdiff
path: root/includes/shell.h
diff options
context:
space:
mode:
Diffstat (limited to 'includes/shell.h')
-rw-r--r--includes/shell.h225
1 files changed, 225 insertions, 0 deletions
diff --git a/includes/shell.h b/includes/shell.h
new file mode 100644
index 00000000..2eb9e6d2
--- /dev/null
+++ b/includes/shell.h
@@ -0,0 +1,225 @@
+/*
+ * HardInfo - Displays System Information
+ * Copyright (C) 2003-2007 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
+ */
+#ifndef __SHELL_H__
+#define __SHELL_H__
+
+#include <gtk/gtk.h>
+
+#include "loadgraph.h"
+#include "help-viewer.h"
+
+typedef struct _Shell Shell;
+typedef struct _ShellTree ShellTree;
+typedef struct _ShellInfoTree ShellInfoTree;
+typedef struct _ShellNote ShellNote;
+typedef struct _ShellSummary ShellSummary;
+
+typedef struct _ShellModule ShellModule;
+typedef struct _ShellModuleMethod ShellModuleMethod;
+typedef struct _ShellModuleEntry ShellModuleEntry;
+
+typedef struct _ShellFieldUpdate ShellFieldUpdate;
+typedef struct _ShellFieldUpdateSource ShellFieldUpdateSource;
+
+typedef enum {
+ SHELL_ORDER_DESCENDING,
+ SHELL_ORDER_ASCENDING,
+} ShellOrderType;
+
+typedef enum {
+ SHELL_PACK_RESIZE = 1 << 0,
+ SHELL_PACK_SHRINK = 1 << 1
+} ShellPackOptions;
+
+typedef enum {
+ SHELL_VIEW_NORMAL,
+ SHELL_VIEW_DUAL,
+ SHELL_VIEW_LOAD_GRAPH,
+ SHELL_VIEW_PROGRESS,
+ SHELL_VIEW_PROGRESS_DUAL,
+ SHELL_VIEW_SUMMARY,
+ SHELL_VIEW_N_VIEWS
+} ShellViewType;
+
+typedef enum {
+ TREE_COL_PBUF,
+ TREE_COL_NAME,
+ TREE_COL_MODULE_ENTRY,
+ TREE_COL_MODULE,
+ TREE_COL_SEL,
+ TREE_NCOL
+} ShellTreeColumns;
+
+typedef enum {
+ INFO_TREE_COL_NAME,
+ INFO_TREE_COL_VALUE,
+ INFO_TREE_COL_DATA,
+ INFO_TREE_COL_PBUF,
+ INFO_TREE_COL_PROGRESS,
+ INFO_TREE_COL_EXTRA1,
+ INFO_TREE_COL_EXTRA2,
+ INFO_TREE_NCOL
+} ShellInfoTreeColumns;
+
+struct _Shell {
+ GtkWidget *window, *vbox;
+ GtkWidget *status, *progress;
+ GtkWidget *remote_label;
+ GtkWidget *notebook;
+ GtkWidget *hpaned, *vpaned;
+
+ ShellTree *tree;
+ ShellInfoTree *info, *moreinfo;
+ ShellModule *selected_module;
+ ShellModuleEntry *selected;
+ ShellNote *note;
+ ShellSummary *summary;
+ LoadGraph *loadgraph;
+
+ GtkActionGroup *action_group;
+ GtkUIManager *ui_manager;
+ GSList *merge_ids;
+
+ ShellViewType view_type;
+ gboolean normalize_percentage;
+
+ gint _pulses;
+ ShellOrderType _order_type;
+
+ GKeyFile *hosts;
+ HelpViewer *help_viewer;
+};
+
+struct _ShellSummary {
+ GtkWidget *header;
+ GtkWidget *scroll;
+ GtkWidget *view;
+
+ GSList *items;
+};
+
+struct _ShellTree {
+ GtkWidget *scroll;
+ GtkWidget *view;
+ GtkTreeModel *model;
+ GtkTreeSelection *selection;
+
+ GSList *modules;
+};
+
+struct _ShellInfoTree {
+ GtkWidget *scroll;
+ GtkWidget *view;
+ GtkTreeModel *model;
+ GtkTreeSelection *selection;
+
+ GtkTreeViewColumn *col_progress, *col_value, *col_extra1, *col_extra2, *col_textvalue;
+};
+
+struct _ShellNote {
+ GtkWidget *event_box;
+ GtkWidget *label;
+};
+
+struct _ShellModule {
+ gchar *name;
+ GdkPixbuf *icon;
+ GModule *dll;
+
+ gpointer (*aboutfunc) ();
+ gchar *(*summaryfunc) ();
+ void (*deinit) ();
+
+ guchar weight;
+
+ GSList *entries;
+};
+
+struct _ShellModuleMethod {
+ gchar *name;
+ gpointer function;
+};
+
+struct _ShellModuleEntry {
+ gchar *name;
+ GdkPixbuf *icon;
+ gchar *icon_file;
+ gboolean selected;
+ gint number;
+ guint32 flags;
+
+ gchar *(*func) ();
+ void (*scan_func) ();
+
+ gchar *(*fieldfunc) (gchar * entry);
+ gchar *(*morefunc) (gchar * entry);
+ gchar *(*notefunc) (gint entry);
+};
+
+struct _ShellFieldUpdate {
+ ShellModuleEntry *entry;
+ gchar *field_name;
+};
+
+struct _ShellFieldUpdateSource {
+ guint source_id;
+ ShellFieldUpdate *sfu;
+};
+
+void shell_init(GSList *modules);
+void shell_do_reload(void);
+
+Shell *shell_get_main_shell();
+
+void shell_action_set_enabled(const gchar *action_name,
+ gboolean setting);
+gboolean shell_action_get_enabled(const gchar *action_name);
+gboolean shell_action_get_active(const gchar *action_name);
+void shell_action_set_active(const gchar *action_name,
+ gboolean setting);
+void shell_action_set_property(const gchar *action_name,
+ const gchar *property,
+ gboolean setting);
+
+void shell_set_side_pane_visible(gboolean setting);
+void shell_set_note_from_entry(ShellModuleEntry *entry);
+void shell_ui_manager_set_visible(const gchar *path,
+ gboolean setting);
+
+void shell_status_update(const gchar *message);
+void shell_status_pulse(void);
+void shell_status_set_percentage(gint percentage);
+void shell_status_set_enabled(gboolean setting);
+
+void shell_view_set_enabled(gboolean setting);
+
+void shell_clear_timeouts(Shell *shell);
+void shell_clear_tree_models(Shell *shell);
+void shell_clear_field_updates(void);
+void shell_set_title(Shell *shell, char *subtitle);
+
+void shell_add_modules_to_gui(gpointer _shell_module, gpointer _shell_tree);
+
+void shell_save_hosts_file(void);
+void shell_update_remote_menu(void);
+
+void shell_set_remote_label(Shell *shell, gchar *label);
+
+#endif /* __SHELL_H__ */
+
+