gkrellm/src/win32-plugin.h

602 lines
30 KiB
C

/* GKrellM Windows Portion
| Copyright (C) 2002 Bill Nalen
| 2007-2014 Stefan Gehn
|
| Authors: Bill Nalen bill@nalens.com
| Stefan Gehn stefan+gkrellm@srcbox.net
| Latest versions might be found at: http://gkrellm.net
|
|
| GKrellM 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, either version 3 of the License, or
| (at your option) any later version.
|
| GKrellM 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, see http://www.gnu.org/licenses/
*/
#ifndef WIN32_PLUGIN_H
#define WIN32_PLUGIN_H
#include "gkrellm.h"
typedef struct
{
/* Data structure allocation
*/
GkrellmChart *(*gkrellm_chart_new0)(void);
GkrellmChartconfig *(*gkrellm_chartconfig_new0)(void);
GkrellmPanel *(*gkrellm_panel_new0)(void);
GkrellmKrell *(*gkrellm_krell_new0)(void);
GkrellmDecal *(*gkrellm_decal_new0)(void);
GkrellmLabel *(*gkrellm_label_new0)(void);
GkrellmStyle *(*gkrellm_style_new0)(void);
GkrellmStyle *(*gkrellm_copy_style)(GkrellmStyle *);
void (*gkrellm_copy_style_values)(GkrellmStyle *, GkrellmStyle *);
GkrellmTextstyle *(*gkrellm_textstyle_new0)(void);
GkrellmTextstyle *(*gkrellm_copy_textstyle)(GkrellmTextstyle *);
/* Chart functions
*/
void (*gkrellm_chart_create)(GtkWidget *, GkrellmMonitor *,
GkrellmChart *, GkrellmChartconfig **);
void (*gkrellm_chart_destroy)(GkrellmChart *);
void (*gkrellm_chart_hide)(GkrellmChart *, gboolean);
void (*gkrellm_chart_show)(GkrellmChart *, gboolean);
gboolean (*gkrellm_chart_enable_visibility)(GkrellmChart *cp, gboolean,
gboolean *);
gboolean (*gkrellm_is_chart_visible)(GkrellmChart *);
void (*gkrellm_set_draw_chart_function)(GkrellmChart *,
void (*func)(), gpointer);
void (*gkrellm_draw_chart_to_screen)(GkrellmChart *);
gint (*gkrellm_draw_chart_label)(GkrellmChart *, GkrellmTextstyle *,
gint, gint,gchar *);
void (*gkrellm_draw_chart_text)(GkrellmChart *, gint, gchar *);
void (*gkrellm_reset_chart)(GkrellmChart *);
void (*gkrellm_reset_and_draw_chart)(GkrellmChart *);
void (*gkrellm_refresh_chart)(GkrellmChart *);
void (*gkrellm_rescale_chart)(GkrellmChart *);
void (*gkrellm_clear_chart)(GkrellmChart *);
void (*gkrellm_clear_chart_pixmap)(GkrellmChart *);
void (*gkrellm_clean_bg_src_pixmap)(GkrellmChart *);
void (*gkrellm_draw_chart_grid_line)(GkrellmChart *, GdkPixmap *, gint);
void (*gkrellm_chart_bg_piximage_override)(GkrellmChart *,
GkrellmPiximage *, GkrellmPiximage *);
gint (*gkrellm_chart_width)(void);
void (*gkrellm_set_chart_height_default)(GkrellmChart *, gint);
void (*gkrellm_set_chart_height)(GkrellmChart *, gint);
gint (*gkrellm_get_chart_scalemax)(GkrellmChart *);
void (*gkrellm_render_data_pixmap)(GkrellmPiximage *, GdkPixmap **,
GdkColor *, gint);
void (*gkrellm_render_data_grid_pixmap)(GkrellmPiximage *,
GdkPixmap **, GdkColor *);
/* ChartData functions
*/
GkrellmChartdata *(*gkrellm_add_chartdata)(GkrellmChart *, GdkPixmap **,
GdkPixmap *, gchar *);
GkrellmChartdata *(*gkrellm_add_default_chartdata)(GkrellmChart *, gchar *);
void (*gkrellm_alloc_chartdata)(GkrellmChart *);
// gkrellm_store_chartdata is not called from libgkrellm, only gkrellm_store_chartdatav
void (*gkrellm_store_chartdatav)(GkrellmChart *, gulong, va_list args);
void (*gkrellm_draw_chartdata)(GkrellmChart *);
void (*gkrellm_monotonic_chartdata)(GkrellmChartdata *, gboolean);
gboolean (*gkrellm_get_chartdata_hide)(GkrellmChartdata *);
gint (*gkrellm_get_current_chartdata)(GkrellmChartdata *);
gint (*gkrellm_get_chartdata_data)(GkrellmChartdata *, gint);
void (*gkrellm_set_chartdata_draw_style)(GkrellmChartdata *, gint);
void (*gkrellm_set_chartdata_draw_style_default)(GkrellmChartdata *, gint);
void (*gkrellm_set_chartdata_flags)(GkrellmChartdata *, gint);
void (*gkrellm_scale_chartdata)(GkrellmChartdata *, gint, gint);
/* ChartConfig functions
*/
void (*gkrellm_chartconfig_window_create)(GkrellmChart *);
void (*gkrellm_chartconfig_window_destroy)(GkrellmChart *);
void (*gkrellm_chartconfig_grid_resolution_adjustment)(
GkrellmChartconfig *, gboolean, gfloat, gfloat, gfloat,
gfloat, gfloat, gint, gint);
void (*gkrellm_set_chartconfig_grid_resolution)(GkrellmChartconfig *,
gint);
gint (*gkrellm_get_chartconfig_grid_resolution)(GkrellmChartconfig *);
void (*gkrellm_chartconfig_grid_resolution_connect)(
GkrellmChartconfig *, void (*fn)(), gpointer);
void (*gkrellm_set_chartconfig_flags)(GkrellmChartconfig *, gint);
void (*gkrellm_chartconfig_grid_resolution_label)(
GkrellmChartconfig *, gchar *);
void (*gkrellm_set_chartconfig_auto_grid_resolution)(
GkrellmChartconfig *, gboolean);
void (*gkrellm_set_chartconfig_auto_resolution_stick)(
GkrellmChartconfig *, gboolean);
void (*gkrellm_set_chartconfig_sequence_125)(GkrellmChartconfig *,
gboolean);
void (*gkrellm_set_chartconfig_fixed_grids)(GkrellmChartconfig *, gint);
gint (*gkrellm_get_chartconfig_fixed_grids)(GkrellmChartconfig *);
void (*gkrellm_chartconfig_fixed_grids_connect)(GkrellmChartconfig *,
void (*fn)(), gpointer);
gint (*gkrellm_get_chartconfig_height)(GkrellmChartconfig *);
void (*gkrellm_chartconfig_height_connect)(GkrellmChartconfig *,
void (*fn)(), gpointer);
void (*gkrellm_save_chartconfig)(FILE *, GkrellmChartconfig *,
gchar *, gchar *);
void (*gkrellm_load_chartconfig)(GkrellmChartconfig **, gchar *, gint);
void (*gkrellm_chartconfig_destroy)(GkrellmChartconfig **);
/* Panel functions
*/
void (*gkrellm_panel_configure)(GkrellmPanel *, gchar *, GkrellmStyle *);
void (*gkrellm_panel_configure_add_height)(GkrellmPanel *, gint);
void (*gkrellm_panel_configure_set_height)(GkrellmPanel *p, gint h);
gint (*gkrellm_panel_configure_get_height)(GkrellmPanel *p);
void (*gkrellm_panel_create)(GtkWidget *, GkrellmMonitor *,GkrellmPanel *);
void (*gkrellm_panel_destroy)(GkrellmPanel *);
void (*gkrellm_panel_hide)(GkrellmPanel *);
void (*gkrellm_panel_show)(GkrellmPanel *);
gboolean (*gkrellm_panel_enable_visibility)(GkrellmPanel *p, gboolean, gboolean *);
gboolean (*gkrellm_is_panel_visible)(GkrellmPanel *);
void (*gkrellm_panel_keep_lists)(GkrellmPanel *, gboolean);
void (*gkrellm_draw_panel_label)(GkrellmPanel *);
void (*gkrellm_draw_panel_layers)(GkrellmPanel *);
void (*gkrellm_draw_panel_layers_force)(GkrellmPanel *);
void (*gkrellm_panel_bg_piximage_override)(GkrellmPanel *, GkrellmPiximage *);
/* Krell functions
*/
GkrellmKrell *(*gkrellm_create_krell)(GkrellmPanel *, GkrellmPiximage *,
GkrellmStyle *);
void (*gkrellm_set_krell_full_scale)(GkrellmKrell *, gint, gint);
void (*gkrellm_set_style_krell_values)(GkrellmStyle *, gint, gint, gint,
gint, gint, gint, gint);
void (*gkrellm_set_style_krell_values_default)(GkrellmStyle *s, gint yoff,
gint depth, gint x_hot, gint expand, gint ema,
gint left_margin, gint right_margin);
void (*gkrellm_set_style_slider_values_default)(GkrellmStyle *s, gint yoff,
gint left_margin, gint right_margin);
void (*gkrellm_set_krell_margins)(GkrellmPanel *, GkrellmKrell *k,
gint, gint);
void (*gkrellm_set_krell_expand)(GkrellmStyle *, gchar *);
void (*gkrellm_update_krell)(GkrellmPanel *, GkrellmKrell *, gulong);
void (*gkrellm_monotonic_krell_values)(GkrellmKrell *k, gboolean);
void (*gkrellm_destroy_krell_list)(GkrellmPanel *);
void (*gkrellm_destroy_krell)(GkrellmKrell *);
void (*gkrellm_move_krell_yoff)(GkrellmPanel *, GkrellmKrell *, gint);
void (*gkrellm_remove_krell)(GkrellmPanel *, GkrellmKrell *);
void (*gkrellm_insert_krell)(GkrellmPanel *, GkrellmKrell *, gboolean);
void (*gkrellm_insert_krell_nth)(GkrellmPanel *, GkrellmKrell *, gint);
/* Decal and Decalbutton functions
*/
GkrellmDecal *(*gkrellm_create_decal_text)(GkrellmPanel *p, gchar *,
GkrellmTextstyle *, GkrellmStyle *, gint, gint, gint);
GkrellmDecal *(*gkrellm_create_decal_pixmap)(GkrellmPanel *, GdkPixmap *,
GdkBitmap *, gint, GkrellmStyle *, gint, gint);
void (*gkrellm_draw_decal_pixmap)(GkrellmPanel *, GkrellmDecal *, gint);
void (*gkrellm_draw_decal_text)(GkrellmPanel *, GkrellmDecal *, gchar *,
gint);
void (*gkrellm_draw_decal_on_chart)(GkrellmChart *, GkrellmDecal *,
gint, gint);
void (*gkrellm_move_decal)(GkrellmPanel *, GkrellmDecal *, gint, gint);
void (*gkrellm_decal_on_top_layer)(GkrellmDecal *, gboolean);
void (*gkrellm_destroy_decal)(GkrellmDecal *);
void (*gkrellm_make_decal_visible)(GkrellmPanel *, GkrellmDecal *);
void (*gkrellm_make_decal_invisible)(GkrellmPanel *, GkrellmDecal *);
gint (*gkrellm_is_decal_visible)(GkrellmDecal *);
void (*gkrellm_remove_decal)(GkrellmPanel *, GkrellmDecal *);
void (*gkrellm_insert_decal)(GkrellmPanel *, GkrellmDecal *, gboolean);
void (*gkrellm_insert_decal_nth)(GkrellmPanel *, GkrellmDecal *, gint);
void (*gkrellm_destroy_decal_list)(GkrellmPanel *);
void (*gkrellm_set_decal_button_index)(GkrellmDecalbutton *, gint);
GkrellmDecalbutton *(*gkrellm_make_decal_button)(GkrellmPanel *, GkrellmDecal *,
void (*func)(), void *, gint, gint);
GkrellmDecalbutton *(*gkrellm_make_overlay_button)(GkrellmPanel *,
void (*func)(), void *, gint, gint, gint, gint,
GkrellmPiximage *, GkrellmPiximage *);
GkrellmDecalbutton *(*gkrellm_put_decal_in_panel_button)(GkrellmPanel *,
GkrellmDecal *, void (*func)(), void *,
GkrellmMargin *);
GkrellmDecalbutton *(*gkrellm_put_decal_in_meter_button)(GkrellmPanel *,
GkrellmDecal *, void (*func)(), void *,
GkrellmMargin *);
GkrellmDecalbutton *(*gkrellm_put_label_in_panel_button)(GkrellmPanel *,
void (*func)(), void *, gint pad);
GkrellmDecalbutton *(*gkrellm_put_label_in_meter_button)(GkrellmPanel *,
void (*func)(), void *, gint pad);
GkrellmDecalbutton *(*gkrellm_make_scaled_button)(GkrellmPanel *p,
GkrellmPiximage *im, void (*func)(), void *data,
gboolean auto_hide, gboolean set_default_border,
gint depth, gint cur_index, gint pressed_index,
gint x, gint y, gint w, gint h);
GkrellmDecalbutton *(*gkrellm_decal_is_button)(GkrellmDecal *);
void (*gkrellm_set_in_button_callback)(GkrellmDecalbutton *,
gint (*func)(), gpointer data);
gboolean (*gkrellm_in_button)(GkrellmDecalbutton *button, GdkEventButton *);
gboolean (*gkrellm_in_decal)(GkrellmDecal *, GdkEventButton *);
void (*gkrellm_decal_button_connect)(GkrellmDecalbutton *, void (*func)(),
void *);
void (*gkrellm_decal_button_right_connect)(GkrellmDecalbutton *,
void (*func)(), void *);
void (*gkrellm_set_button_sensitive)(GkrellmDecalbutton *, gboolean);
void (*gkrellm_hide_button)(GkrellmDecalbutton *);
void (*gkrellm_show_button)(GkrellmDecalbutton *);
void (*gkrellm_destroy_button)(GkrellmDecalbutton *);
/* Pixops
*/
gboolean (*gkrellm_load_piximage)(gchar *, gchar **, GkrellmPiximage **, gchar *);
GkrellmPiximage *(*gkrellm_piximage_new_from_file)(gchar *fname);
GkrellmPiximage *(*gkrellm_piximage_new_from_xpm_data)(gchar **data);
void (*gkrellm_set_piximage_border)(GkrellmPiximage *piximage,
GkrellmBorder *border);
gboolean (*gkrellm_scale_pixbuf_to_pixmap)(GdkPixbuf *src_pixbuf,
GdkPixmap **pixmap, GdkBitmap **mask,
gint w_dst, gint h_dst);
GdkPixbuf *(*gkrellm_scale_piximage_to_pixbuf)(GkrellmPiximage *piximage,
gint w_dst, gint h_dst);
gboolean (*gkrellm_scale_piximage_to_pixmap)(GkrellmPiximage *, GdkPixmap **,
GdkBitmap **, gint, gint);
void (*gkrellm_paste_piximage)(GkrellmPiximage *src_piximage,
GdkDrawable *drawable,
gint x_dst, gint y_dst, gint w_dst, gint h_dst);
void (*gkrellm_paste_pixbuf)(GdkPixbuf *src_pixbuf, GdkDrawable *drawable,
gint x_dst, gint y_dst, gint w_dst, gint h_dst);
void (*gkrellm_destroy_piximage)(GkrellmPiximage *piximage);
GkrellmPiximage *(*gkrellm_clone_piximage)(GkrellmPiximage *src_piximage);
gboolean (*gkrellm_clone_pixmap)(GdkPixmap **, GdkPixmap **);
gboolean (*gkrellm_clone_bitmap)(GdkBitmap **, GdkBitmap **);
void (*gkrellm_free_pixmap)(GdkPixmap **);
void (*gkrellm_free_bitmap)(GdkBitmap **);
/* Misc support functions
*/
GtkWidget *(*gkrellm_get_top_window)(void);
gboolean (*gkrellm_set_gkrellmrc_piximage_border)(gchar *, GkrellmPiximage *,
GkrellmStyle *);
gboolean (*gkrellm_get_gkrellmrc_integer)(gchar *, gint *);
gchar *(*gkrellm_get_gkrellmrc_string)(gchar *);
gboolean (*gkrellm_get_gkrellmrc_piximage_border)(gchar *image_name,
GkrellmPiximage *image, GkrellmBorder *border);
void (*gkrellm_freeze_side_frame_packing)(void);
void (*gkrellm_thaw_side_frame_packing)(void);
void (*gkrellm_pack_side_frames)(void);
void (*gkrellm_draw_string)(GdkDrawable *, GkrellmTextstyle *, gint, gint,
gchar *);
void (*gkrellm_draw_text)(GdkDrawable *, GkrellmTextstyle *, gint, gint,
gchar *, gint);
void (*gkrellm_apply_launcher)(GtkWidget **, GtkWidget **, GkrellmPanel *,
GkrellmLauncher *, void (*func)());
void (*gkrellm_setup_launcher)(GkrellmPanel *, GkrellmLauncher *, gint,
gint);
void (*gkrellm_setup_decal_launcher)(GkrellmPanel *, GkrellmLauncher *,
GkrellmDecal *);
void (*gkrellm_configure_tooltip)(GkrellmPanel *, GkrellmLauncher *);
void (*gkrellm_launch_button_cb)(GkrellmDecalbutton *);
void (*gkrellm_disable_plugin_connect)(GkrellmMonitor *, void (*func)());
pid_t (*gkrellm_get_pid)(void);
void (*gkrellm_monitor_height_adjust)(gint);
gboolean (*gkrellm_using_default_theme)(void);
void (*gkrellm_open_config_window)(GkrellmMonitor *);
gboolean (*gkrellm_config_window_shown)(void);
void (*gkrellm_config_modified)(void);
GkrellmMargin *(*gkrellm_get_style_margins)(GkrellmStyle *);
void (*gkrellm_set_style_margins)(GkrellmStyle *, GkrellmMargin *);
void (*gkrellm_get_top_bottom_margins)(GkrellmStyle *, gint *, gint *);
gboolean (*gkrellm_style_is_themed)(GkrellmStyle *, gint);
void (*gkrellm_message_dialog)(gchar *title, gchar *message);
void (*gkrellm_config_message_dialog)(gchar *title, gchar *message);
void (*gkrellm_message_window)(gchar *title, gchar *message, GtkWidget *);
void (*gkrellm_config_message_window)(gchar *title, gchar *message,
GtkWidget *);
void (*gkrellm_spacers_set_types)(GkrellmMonitor *mon, gint top, gint bot);
/* Alerts
*/
GkrellmAlert *(*gkrellm_alert_create)(GkrellmPanel *, gchar *, gchar *,
gboolean, gboolean, gboolean,
gfloat, gfloat, gfloat, gfloat, gint);
void (*gkrellm_alert_destroy)(GkrellmAlert **);
void (*gkrellm_check_alert)(GkrellmAlert *, gfloat);
void (*gkrellm_reset_alert)(GkrellmAlert *);
void (*gkrellm_reset_panel_alerts)(GkrellmPanel *);
void (*gkrellm_freeze_alert)(GkrellmAlert *);
void (*gkrellm_thaw_alert)(GkrellmAlert *);
void (*gkrellm_alert_trigger_connect)(GkrellmAlert *, void (*func)(),
gpointer);
void (*gkrellm_alert_stop_connect)(GkrellmAlert *, void (*func)(),
gpointer);
void (*gkrellm_alert_config_connect)(GkrellmAlert *, void (*func)(),
gpointer);
void (*gkrellm_render_default_alert_decal)(GkrellmAlert *);
void (*gkrellm_alert_config_window)(GkrellmAlert **);
void (*gkrellm_alert_window_destroy)(GkrellmAlert **);
void (*gkrellm_save_alertconfig)(FILE *, GkrellmAlert *, gchar *, gchar *);
void (*gkrellm_load_alertconfig)(GkrellmAlert **, gchar *);
void (*gkrellm_alert_set_triggers)(GkrellmAlert *,
gfloat, gfloat, gfloat, gfloat);
/* GKrellM Styles and Textstyles
*/
gint (*gkrellm_add_chart_style)(GkrellmMonitor *, gchar *);
gint (*gkrellm_add_meter_style)(GkrellmMonitor *, gchar *);
gint (*gkrellm_lookup_chart_style_id)(gchar *);
gint (*gkrellm_lookup_meter_style_id)(gchar *);
GkrellmStyle *(*gkrellm_meter_style)(gint);
GkrellmStyle *(*gkrellm_panel_style)(gint);
GkrellmStyle *(*gkrellm_chart_style)(gint);
GkrellmStyle *(*gkrellm_meter_style_by_name)(gchar *);
GkrellmStyle *(*gkrellm_panel_style_by_name)(gchar *);
GkrellmStyle *(*gkrellm_chart_style_by_name)(gchar *);
GkrellmStyle *(*gkrellm_krell_slider_style)(void);
GkrellmStyle *(*gkrellm_krell_mini_style)(void);
GkrellmTextstyle *(*gkrellm_chart_textstyle)(gint);
GkrellmTextstyle *(*gkrellm_panel_textstyle)(gint);
GkrellmTextstyle *(*gkrellm_meter_textstyle)(gint);
GkrellmTextstyle *(*gkrellm_chart_alt_textstyle)(gint);
GkrellmTextstyle *(*gkrellm_panel_alt_textstyle)(gint);
GkrellmTextstyle *(*gkrellm_meter_alt_textstyle)(gint);
/* Accessing GKrellM GkrellmPiximages and pixmaps
*/
GkrellmPiximage *(*gkrellm_bg_chart_piximage)(gint);
GkrellmPiximage *(*gkrellm_bg_grid_piximage)(gint);
GkrellmPiximage *(*gkrellm_bg_panel_piximage)(gint);
GkrellmPiximage *(*gkrellm_bg_meter_piximage)(gint);
GkrellmPiximage *(*gkrellm_krell_panel_piximage)(gint);
GkrellmPiximage *(*gkrellm_krell_meter_piximage)(gint);
GkrellmPiximage *(*gkrellm_krell_slider_piximage)(void);
GkrellmPiximage *(*gkrellm_krell_mini_piximage)(void);
void (*gkrellm_get_decal_alarm_piximage)(GkrellmPiximage **, gint *);
void (*gkrellm_get_decal_warn_piximage)(GkrellmPiximage **, gint *);
GdkPixmap **(*gkrellm_data_in_pixmap)(void);
GdkPixmap *(*gkrellm_data_in_grid_pixmap)(void);
GdkPixmap **(*gkrellm_data_out_pixmap)(void);
GdkPixmap *(*gkrellm_data_out_grid_pixmap)(void);
GdkPixmap *(*gkrellm_decal_misc_pixmap)(void);
GdkBitmap *(*gkrellm_decal_misc_mask)(void);
/* Accessing other data from the GK struct
*/
GdkGC *(*gkrellm_draw_GC)(gint);
GdkGC *(*gkrellm_bit_GC)(gint);
PangoFontDescription *(*gkrellm_default_font)(gint);
GdkColor *(*gkrellm_white_color)(void);
GdkColor *(*gkrellm_black_color)(void);
GdkColor *(*gkrellm_in_color)(void);
GdkColor *(*gkrellm_out_color)(void);
gboolean (*gkrellm_demo_mode)(void);
gint (*gkrellm_update_HZ)(void);
gchar *(*gkrellm_get_theme_path)(void);
gint (*gkrellm_get_timer_ticks)(void);
GkrellmTicks *(*gkrellm_ticks)(void);
void (*gkrellm_allow_scaling)(gboolean *, gint *);
gint (*gkrellm_plugin_debug)(void);
/* Wrappers around gtk widget functions to provide a convenience higher level
| interface for creating the config pages.
*/
GtkWidget *(*gkrellm_gtk_notebook_page)(GtkWidget *, gchar *);
GtkWidget *(*gkrellm_gtk_framed_notebook_page)(GtkWidget *, char *);
GtkWidget *(*gkrellm_gtk_launcher_table_new)(GtkWidget *, gint);
void (*gkrellm_gtk_config_launcher)(GtkWidget *, gint, GtkWidget **,
GtkWidget **, gchar *, GkrellmLauncher *);
gchar *(*gkrellm_gtk_entry_get_text)(GtkWidget **);
void (*gkrellm_gtk_spin_button)(GtkWidget *, GtkWidget **, gfloat, gfloat,
gfloat, gfloat, gfloat, gint, gint, void (*func)(),
gpointer, gboolean, gchar *);
void (*gkrellm_gtk_check_button)(GtkWidget *, GtkWidget **, gboolean,
gboolean, gint, gchar *);
void (*gkrellm_gtk_check_button_connected)(GtkWidget *, GtkWidget **,
gboolean, gboolean, gboolean, gint, void (*func)(),
gpointer, gchar *);
void (*gkrellm_gtk_button_connected)(GtkWidget *, GtkWidget **, gboolean,
gboolean, gint, void (*func)(), gpointer, gchar *);
GtkWidget *(*gkrellm_gtk_scrolled_vbox)(GtkWidget *, GtkWidget **,
GtkPolicyType, GtkPolicyType);
GtkWidget *(*gkrellm_gtk_framed_vbox)(GtkWidget *, gchar *, gint, gboolean,
gint, gint);
GtkWidget *(*gkrellm_gtk_framed_vbox_end)(GtkWidget *, gchar *, gint, gboolean,
gint, gint);
GtkWidget *(*gkrellm_gtk_scrolled_text_view)(GtkWidget *, GtkWidget **,
GtkPolicyType, GtkPolicyType);
void (*gkrellm_gtk_text_view_append_strings)(GtkWidget *, gchar **, gint);
void (*gkrellm_gtk_text_view_append)(GtkWidget *, gchar *);
/* Some utility functions
*/
gchar *(*gkrellm_homedir)(void);
gboolean (*gkrellm_dup_string)(gchar **, gchar *);
gboolean (*gkrellm_locale_dup_string)(gchar **, gchar *, gchar **);
gchar *(*gkrellm_make_config_file_name)(gchar *, gchar *);
gchar *(*gkrellm_make_data_file_name)(gchar *, gchar *);
struct tm *(*gkrellm_get_current_time)(void);
gint (*gkrellm_125_sequence)(gint, gboolean, gint, gint,
gboolean, gboolean);
void (*gkrellm_save_all)(void);
/* ------- Some builtin monitor public functions -------- */
/* Functions exported by cpu.c
*/
gint (*gkrellm_smp_cpus)(void);
gboolean (*gkrellm_cpu_stats)(gint n, gulong *, gulong *, gulong *, gulong *);
/* Functions exported by net.c
*/
gint (*gkrellm_net_routes)(void);
gboolean (*gkrellm_net_stats)(gint n, gchar *, gulong *, gulong *);
void (*gkrellm_net_led_positions)(gint *x_rx_led, gint *y_rx_led,
gint *x_tx_led, gint *y_tx_led);
/* Functions exported by the Mail monitor - see bottom of mail.c
*/
gboolean (*gkrellm_get_mail_mute_mode)(void);
gpointer (*gkrellm_add_external_mbox)(gint (*func)(), gboolean, gpointer);
void (*gkrellm_destroy_external_mbox)(gpointer);
void (*gkrellm_set_external_mbox_counts)(gpointer, gint, gint);
void (*gkrellm_set_external_mbox_tooltip)(gpointer, gchar *);
/* Functions new for 2.1.1
*/
gfloat (*gkrellm_get_theme_scale)(void);
void (*gkrellm_offset_chartdata)(GkrellmChartdata *, gint);
GkrellmDecal *(*gkrellm_make_scaled_decal_pixmap)(GkrellmPanel *p,
GkrellmPiximage *im, GkrellmStyle *style, gint depth,
gint x, gint y, gint w, gint h);
/* Functions new for 2.1.8
*/
void (*gkrellm_panel_label_on_top_of_decals)(GkrellmPanel *p,
gboolean mode);
gboolean (*gkrellm_alert_is_activated)(GkrellmAlert *alert);
void (*gkrellm_alert_dup)(GkrellmAlert **ap, GkrellmAlert *a_src);
void (*gkrellm_alert_config_create_connect)(GkrellmAlert *alert,
void (*func)(), gpointer data);
void (*gkrellm_alert_command_process_connect)(GkrellmAlert *alert,
void (*func)(), gpointer data);
gboolean (*gkrellm_alert_decal_visible)(GkrellmAlert *alert);
void (*gkrellm_alert_set_delay)(GkrellmAlert *alert, gint delay);
void (*gkrellm_alert_delay_config)(GkrellmAlert *alert, gint step,
gint high, gint low);
void (*gkrellm_gtk_alert_button)(GtkWidget *box, GtkWidget **button,
gboolean expand, gboolean fill, gint pad,
gboolean pack_start, void (*cb_func)(), gpointer data);
/* Functions new for 2.1.9
*/
GkrellmPiximage *(*gkrellm_piximage_new_from_inline)(const guint8 *data,
gboolean copy_pixels);
gboolean (*gkrellm_load_piximage_from_inline)(gchar *name,
const guint8 *data, GkrellmPiximage **image,
gchar *subdir, gboolean copy_pixels);
void (*gkrellm_alert_commands_config)(GkrellmAlert *alert,
gboolean alarm, gboolean warn);
void (*gkrellm_reset_alert_soft)(GkrellmAlert *);
/* Functions new for 2.1.11
*/
void (*gkrellm_decal_text_clear)(GkrellmDecal *d);
void (*gkrellm_decal_text_insert)(GkrellmDecal *d, gchar *s,
GkrellmTextstyle *ts, gint x_off, gint y_off);
GkrellmDecal *(*gkrellm_create_decal_text_with_height)(GkrellmPanel *p,
GkrellmTextstyle *ts, GkrellmStyle *style,
gint x, gint y, gint w, gint h, gint y_baseline);
void (*gkrellm_chartconfig_callback_block)(GkrellmChartconfig *,
gboolean);
/* Functions new for 2.1.16
*/
void (*gkrellm_alert_get_alert_state)(GkrellmAlert *alert,
gboolean *alarm_state, gboolean *warn_state);
GkrellmAlertPlugin *(*gkrellm_alert_plugin_add)(GkrellmMonitor *mon,
gchar *name);
void (*gkrellm_alert_plugin_alert_connect)(GkrellmAlertPlugin *gap,
void (*alarm_func)(), void (*warn_func)(),
void (*update_func)(), void (*check_func)(),
void (*destroy_func)());
void (*gkrellm_alert_plugin_config_connect)(GkrellmAlertPlugin *gap,
gchar *tab_name,
void (*config_create_func)(), void (*config_done_func),
void (*config_save_func)(),void (*config_load_func)());
gchar *(*gkrellm_alert_plugin_config_get_id_string)(GkrellmAlert *alert);
void (*gkrellm_alert_plugin_alert_attach)(GkrellmAlertPlugin *gap,
GkrellmAlert *alert, gpointer data);
void (*gkrellm_alert_plugin_alert_detach)(GkrellmAlertPlugin *gap,
GkrellmAlert *alert);
gpointer (*gkrellm_alert_plugin_get_data)(GkrellmAlertPlugin *gap,
GkrellmAlert *alert);
void (*gkrellm_alert_plugin_command_process)(GkrellmAlert *alert,
gchar *src, gchar *dst, gint dst_size);
GtkWidget *(*gkrellm_gtk_category_vbox)(GtkWidget *box, gchar *category_header,
gint header_pad, gint box_pad, gboolean pack_start);
void (*gkrellm_remove_launcher)(GkrellmLauncher *launch);
//---------------------------------------------------------------------------
// new since 2.2.0
void (*gkrellm_decal_get_size)(GkrellmDecal *d, gint *w, gint *h);
void (*gkrellm_decal_text_set_offset)(GkrellmDecal *d, gint x, gint y);
void (*gkrellm_decal_text_get_offset)(GkrellmDecal *d, gint *x, gint *y);
void (*gkrellm_chart_reuse_text_format)(GkrellmChart *cp);
gchar *(*gkrellm_get_hostname)(void);
void (*gkrellm_decal_scroll_text_set_text)(GkrellmPanel *p, GkrellmDecal *d, gchar *text);
void (*gkrellm_decal_scroll_text_get_size)(GkrellmDecal *d, gint *w, gint *h);
void (*gkrellm_decal_scroll_text_align_center)(GkrellmDecal *d, gboolean center);
void (*gkrellm_decal_scroll_text_horizontal_loop)(GkrellmDecal *d, gboolean loop);
void (*gkrellm_decal_scroll_text_vertical_loop)(GkrellmDecal *d, gboolean loop);
void (*gkrellm_text_extents)(PangoFontDescription *font_desc, gchar *text, gint len, gint *width, gint *height, gint *baseline, gint *y_ink);
gint (*gkrellm_gdk_string_width)(PangoFontDescription *, gchar *);
void (*gkrellm_gdk_draw_string)(GdkDrawable *drawable, PangoFontDescription *font, GdkGC *gc, gint x, gint y, gchar *string);
void (*gkrellm_gdk_draw_text)(GdkDrawable *drawable, PangoFontDescription *font, GdkGC *gc, gint x, gint y, gchar *string, gint len);
gboolean (*gkrellm_client_mode)(void);
void (*gkrellm_client_plugin_get_setup)(gchar *key_name, void (*setup_func_cb)(gchar *str));
void (*gkrellm_client_plugin_serve_data_connect)(GkrellmMonitor *mon, gchar *key_name, void (*func_cb)(gchar *line));
//void (*gkrellm_client_plugin_reconnect_connect)(gchar *key_name, void (*func_cb)()); // FIXME: missing in gkrellm?
//---------------------------------------------------------------------------
// new since 2.2.1
void (*gkrellm_draw_decal_markup)(GkrellmPanel *p, GkrellmDecal *d, gchar *text);
void (*gkrellm_decal_scroll_text_set_markup)(GkrellmPanel *p, GkrellmDecal *d, gchar *text);
//---------------------------------------------------------------------------
// new since 2.2.2
void (*gkrellm_panel_label_get_position)(GkrellmStyle *style, gint *x_position, gint *y_off);
//---------------------------------------------------------------------------
// new since 2.2.5
gboolean (*gkrellm_client_send_to_server)(gchar *key_name, gchar *line);
GkrellmDecal *(*gkrellm_create_decal_text_markup)(GkrellmPanel *p, gchar *string, GkrellmTextstyle *ts, GkrellmStyle *style, gint x, gint y, gint w);
void (*gkrellm_decal_text_markup_insert)(GkrellmDecal *d, gchar *s, GkrellmTextstyle *ts, gint x_off, gint y_off);
void (*gkrellm_decal_text_nth_inserted_set_offset)(GkrellmDecal *d, gint n, gint x_off, gint y_off);
void (*gkrellm_decal_text_nth_inserted_get_offset)(GkrellmDecal *d, gint n, gint *x_off, gint *y_off);
void (*gkrellm_config_instant_apply)(GkrellmMonitor *mon);
GtkTreeSelection *(*gkrellm_gtk_scrolled_selection)(GtkTreeView *treeview, GtkWidget *box, GtkSelectionMode s_mode, GtkPolicyType h_policy, GtkPolicyType v_policy, void (*func_cb)(), gpointer data);
void (*gkrellm_text_markup_extents)(PangoFontDescription *font_desc, gchar *text, gint len, gint *width, gint *height, gint *baseline, gint *y_ink);
gint (*gkrellm_gdk_string_markup_width)(PangoFontDescription *, gchar *);
gint (*gkrellm_gdk_text_markup_width)(PangoFontDescription *font_desc, const gchar *string, gint len);
void (*gkrellm_gdk_draw_string_markup)(GdkDrawable *drawable, PangoFontDescription *font, GdkGC *gc, gint x, gint y, gchar *string);
void (*gkrellm_gdk_draw_text_markup)(GdkDrawable *drawable, PangoFontDescription *font, GdkGC *gc, gint x, gint y, gchar *string, gint len);
//---------------------------------------------------------------------------
// new since 2.3.2
// gkrellm_debug is not called from libgkrellm, only gkrellm_debugv
void (*gkrellm_debugv)(guint debug_level, const gchar *format, va_list arg);
} win32_plugin_callbacks;
/// part of win32-plugin.c
///
extern win32_plugin_callbacks gkrellm_callbacks;
/// \brief initializes \p gkrellm_callbacks
/// Has to be called at gkrellm startup before loading plugins.
/// \note only needed on win32
void win32_init_callbacks(void);
#endif // WIN32_PLUGIN_H