📄 gkrellm.h
字号:
gboolean config_loaded; gboolean log; gint h; void (*cb_height)(); gpointer cb_height_data; GtkWidget *height_spin_button; /* grid_resolution must be an integer and will be mapped into an integer | 1,2,5 or 1,1.5,2,3,5,7 sequence if map_sequence is TRUE. If | map_sequence is false, grid_resolution will be the spin_button | value * spin_factor so spin buttons may have non-integer settings. */ gint grid_resolution; gboolean auto_grid_resolution; gboolean auto_resolution_stick; gboolean sequence_125; void (*cb_grid_resolution)(); gpointer cb_grid_resolution_data; GtkWidget *grid_resolution_spin_button; GtkWidget *auto_resolution_control_menubar; GtkItemFactory *auto_resolution_item_factory; gchar *grid_resolution_label; gboolean adjustment_is_set; gboolean map_sequence; gfloat spin_factor; gfloat low, /* Stuff for the grid_resolution spin adjustment */ high, step0, step1; gint digits, width; gboolean fixed_grids; void (*cb_fixed_grids)(); gpointer cb_fixed_grids_data; GtkWidget *fixed_grids_spin_button; GList *cd_list; /* Same list as in parent GkrellmChart */ GList **chart_cd_list; gboolean cb_block; } GkrellmChartconfig; /* GkrellmCharts are drawn in layers and each data value drawn has its own | layer (the GkrellmChartdata struct -> image/color of the drawn data and | the data colored grid lines). Each layer is a chart sized pixmap | with grid lines drawn on it. A chart is drawn by drawing the | background followed by stenciling each data layer through a | data_bitmap. */typedef struct { GdkPixmap *pixmap; /* Working layer pixmap with grid lines */ GdkPixmap **src_pixmap; /* The layer source image/color */ GdkPixmap *grid_pixmap; /* The grid pixmap to draw on src */ } GkrellmChartlayer;typedef struct { GtkWidget *vbox, *image; GkrellmPiximage *piximage; GdkPixmap *pixmap, *clean_pixmap; GdkBitmap *mask; gint height; /* Width is _GK.chart_width */ } GkrellmSpacer;typedef struct { gchar *text; gint x, y; gint w, h; gint baseline, y_ink; gboolean cache_valid; } GkrellmTextRun;typedef struct { GtkWidget *box; /* Container box this chart is packed into */ GtkWidget *drawing_area; GkrellmPanel *panel; GList *cd_list; /* Same cd_list as in GkrellmChartconfig struct */ gint cd_list_index; void (*draw_chart)(gpointer); gpointer draw_chart_data; gint x, y, w, h; /* h tracks h in GkrellmChartconfig */ GkrellmChartconfig *config; gboolean shown; gboolean redraw_all; gint position, tail; gboolean primed; gint privat; gint i0; /* Draw start index */ gint alloc_width; gint scale_max; gint maxval, maxval_auto, maxval_auto_base, maxval_peak; gulong previous_total; gint style_id; GdkPixmap *pixmap; /* The expose pixmap. */ GkrellmPiximage *bg_piximage, *bg_grid_piximage; GdkPixmap *bg_pixmap, /* Working bg with grid lines */ *bg_src_pixmap, /* bg with no grid lines */ *bg_grid_pixmap, /* This + bg_src_pixmap builds bg_pixmap*/ *bg_clean_pixmap, /* This + trans builds bg_src_pixmap */ *bg_text_pixmap; /* Pango rendered chart text layer */ GdkBitmap *bg_mask; gint transparency; gboolean bg_piximage_override; guint bg_sequence_id; gchar *text_format_string; GList *text_run_list; /* Caching chart text runs */ gint h_text, y_ink, baseline_ref; guint text_run_sequence_id; gboolean text_format_reuse; gint y_mapped, auto_recalibrate_delay; GtkWidget *config_window; GkrellmSpacer top_spacer, bottom_spacer; GkrellmStyle *style; gpointer monitor; } GkrellmChart; /* Values for GkrellmChartdata draw_style */#define CHARTDATA_IMPULSE 0#define CHARTDATA_LINE 1 /* Values for GkrellmChartdata flags */#define CHARTDATA_ALLOW_HIDE 1#define CHARTDATA_NO_CONFIG_DRAW_STYLE 2#define CHARTDATA_NO_CONFIG_INVERTED 4#define CHARTDATA_NO_CONFIG_SPLIT 8#define CHARTDATA_NO_CONFIG 0xftypedef struct { gint flags; GkrellmChart *chart; /* GkrellmChart this data belong to */ gchar *label; gulong current, previous, discard; gboolean monotonic; GkrellmChartlayer layer; /* The image + grid for this data layer */ GdkBitmap *data_bitmap; /* Draw data here, use as clipmask for layer*/ gint *data; gint draw_style; gboolean inverted; gboolean hide; gboolean split_chart; gfloat split_fraction, split_share; GtkWidget *split_fraction_spin_button; gint y_p, y_pp; gboolean y_p_valid; gint y, /* Each data layer draws at an offset y and */ h, /* within height h of its parent GkrellmChart*/ w; /* Width of data allocated. */ gint maxval; } GkrellmChartdata;typedef struct { GkrellmPanel *panel; GkrellmDecal *decal; void (*cb_button_click)(); gpointer data; gint (*cb_in_button)(); gpointer in_button_data; gpointer privat; gint cur_index; gint pressed_index; gint saved_index; gint sensitive; gint type; void (*cb_button_right_click)(); gpointer right_data; } GkrellmDecalbutton;typedef struct { gchar *command; gint type; gint pad; FILE *pipe; /* Read the output of some commands */ GkrellmDecalbutton *button; GtkTooltips *tooltip; gchar *tooltip_comment; GkrellmDecal *decal; /* Used if DECAL_LAUNCHER type */ GkrellmMargin margin; GtkWidget *widget; } GkrellmLauncher;/* ------- Alerts ------- */#define GKRELLM_ALERTCONFIG_KEYWORD "alert_config"typedef struct { struct _GkrellmMonitor *mon; gchar *name, *tab_name; void (*warn_func)(), (*alarm_func)(), (*update_func)(), (*check_func)(), (*destroy_func)(); void (*config_create_func)(), (*config_apply_func)(), (*config_save_func)(), (*config_load_func)(); } GkrellmAlertPlugin;typedef struct { GkrellmAlertPlugin *alert_plugin; gpointer data; } GkrellmAlertPluginLink;typedef struct { gboolean warn_on, alarm_on; gfloat warn_limit, alarm_limit; gint warn_delay, alarm_delay; GtkWidget *warn_limit_spin_button, *alarm_limit_spin_button; } GkrellmTrigger;typedef struct { GkrellmDecal *decal; gint x, y, w, h; GdkPixmap *pixmap; GdkBitmap *mask; gint frame, nframes, dir; } GkrellmAlertdecal;typedef struct { GkrellmKrell *krell; gint krell_position; } GkrellmAlertkrell;typedef struct { GkrellmPanel *panel; gchar *name, *unit_string; GkrellmAlertdecal ad; GkrellmAlertkrell ak; gboolean activated, freeze, do_panel_updates, suppress_command, check_low, check_high, check_hardwired; gchar *warn_command, *alarm_command; gint warn_repeat_set, warn_repeat, alarm_repeat_set, alarm_repeat; gint delay; void (*cb_trigger)(); gpointer cb_trigger_data; void (*cb_stop)(); gpointer cb_stop_data; void (*cb_config)(); gpointer cb_config_data; void (*cb_config_create)(); gpointer cb_config_create_data; void (*cb_command_process)(); gpointer cb_command_process_data; GtkWidget *config_window, *warn_command_entry, *alarm_command_entry, *warn_repeat_spin_button, *alarm_repeat_spin_button, *delay_spin_button, *delete_button, *icon_box; gboolean do_alarm_command, do_warn_command; gfloat max_high, /* limit adjustment values */ min_low, step0, step1; gint digits; gint delay_high, /* delay adjustment values */ delay_low, delay_step; GkrellmTrigger low, high; gboolean config_closing, config_modified; gchar *id_string; /* For unique alert names for alert plugins */ GList *plugin_list; } GkrellmAlert;/* ------------------------ */#define GKRELLM_SPACER_CHART 0#define GKRELLM_SPACER_METER 1#define CHART_PANEL_TYPE 0#define METER_PANEL_TYPE 1#define N_PANEL_TYPES 2#define PANEL_LAUNCHER CHART_PANEL_TYPE#define METER_LAUNCHER METER_PANEL_TYPE#define DECAL_LAUNCHER 3#define DEFAULT_STYLE_ID 0/* GkrellmStyle names for the builtin monitors. Define them globally so plugins| can lookup a builtin style_id. These names are used as subdirectory| names under the current theme where monitor specific images are located.| They also are used in the GkrellmStyle lines in the gkrellmrc| (eg. GkrellmStyleMeter cpu.textcolor ....*/#define CPU_STYLE_NAME "cpu"#define DISK_STYLE_NAME "disk"#define NET_STYLE_NAME "net"#define PROC_STYLE_NAME "proc"#define INET_STYLE_NAME "inet"#define MEM_STYLE_NAME "mem"#define SWAP_STYLE_NAME "swap"#define FS_STYLE_NAME "fs"#define MAIL_STYLE_NAME "mail" /* APM monitor is now named Battery, but don't want to break themes. */#define BATTERY_STYLE_NAME "apm"#define UPTIME_STYLE_NAME "uptime"#define CLOCK_STYLE_NAME "clock"#define CAL_STYLE_NAME "cal"#define HOST_STYLE_NAME "host"#define TIMER_STYLE_NAME "timer"typedef struct { gint timer_ticks, second_tick, two_second_tick, five_second_tick, ten_second_tick, minute_tick, hour_tick, day_tick; } GkrellmTicks;extern GkrellmTicks GK;/* ================= User Config ==================*/ /* Values for GkrellmMonitor id | Give an id number to all builtin monitors | ____ cccc ___i iiii */#define MON_CPU 0#define MON_PROC 1#define MON_DISK 2#define MON_NET 3#define MON_INET 4#define N_CHART_MONITORS 5#define MON_MEM 5#define MON_FS 6#define MON_MAIL 7#define MON_BATTERY 8#define MON_APM MON_BATTERY#define MON_UPTIME 9#define MON_CLOCK 10#define MON_CAL 11#define MON_TIMER 12#define MON_HOST 13#define MON_SWAP 14#define MON_VOLTAGE 15#define N_BUILTIN_MONITORS 16#define MON_PLUGIN 16#define MON_ID_MASK 0x1f#define MON_INSERT_AFTER 0x200#define MON_CONFIG_MASK 0xf00#define MON_GRAVITY_MASK 0xf000#define GRAVITY(n) ((n) << 12)#define PLUGIN_GRAVITY(m) (((m)->insert_before_id & MON_GRAVITY_MASK) >> 12)#define PLUGIN_INSERT_BEFORE_ID(p) ((p)->insert_before_id & MON_ID_MASK)#define PLUGIN_INSERT_AFTER(p) \ (((p)->insert_before_id & MON_INSERT_AFTER) >> 9)#define MONITOR_ID(m) ((m)->id & MON_ID_MASK)#define MONITOR_CONFIG(m,flag) (((m)->id & MON_CONFIG_MASK) & flag)#define MONITOR_ENABLED(mon) ((mon)->privat->enabled)typedef struct { GtkWidget *main_vbox, *vbox; gint config_page; GtkTreeRowReference *row_reference; GtkWidget *config_vbox; gboolean config_created; void (*cb_disable_plugin)(void); gint insert_before_id, gravity, button_id; gboolean insert_after; gboolean enabled, created, from_command_line, spacers_shown, cap_images_off, spacer_overlap_off, instant_apply; GkrellmStyle *panel_style, *chart_style; gchar *style_name; gint style_type, style_id; /* helper until I consolidate image lists */ gint top_type, bottom_type; GkrellmSpacer top_spacer, bottom_spacer; } GkrellmMonprivate;typedef struct _GkrellmMonitor { gchar *name; gint id; void (*create_monitor)(GtkWidget *, gint); void (*update_monitor)(void); void (*create_config)(GtkWidget *); void (*apply_config)(void); void (*save_user_config)(FILE *); void (*load_user_config)(gchar *); gchar *config_keyword; void (*undef2)(void); void (*undef1)(void); GkrellmMonprivate *privat; gint insert_before_id; /* If plugin, insert before this mon*/ void *handle; /* If monitor is a plugin. */ gchar *path; /* " */ } GkrellmMonitor;extern GList *gkrellm_monitor_list;#include "gkrellm-public-proto.h"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -