diff options
Diffstat (limited to 'plugins/pltbrowser/support.c')
-rw-r--r-- | plugins/pltbrowser/support.c | 221 |
1 files changed, 221 insertions, 0 deletions
diff --git a/plugins/pltbrowser/support.c b/plugins/pltbrowser/support.c new file mode 100644 index 00000000..c0d93fe4 --- /dev/null +++ b/plugins/pltbrowser/support.c @@ -0,0 +1,221 @@ +/* + * DO NOT EDIT THIS FILE - it is generated by Glade. + */ + +#ifdef HAVE_CONFIG_H +# include <config.h> +#endif + +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> +#include <string.h> +#include <stdio.h> + +#include <gtk/gtk.h> + +#include "support.h" + +GtkWidget* +lookup_widget (GtkWidget *widget, + const gchar *widget_name) +{ + GtkWidget *parent, *found_widget; + + for (;;) + { + if (GTK_IS_MENU (widget)) + parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); + else + parent = gtk_widget_get_parent (widget); + if (!parent) + parent = (GtkWidget*) g_object_get_data (G_OBJECT (widget), "GladeParentKey"); + if (parent == NULL) + break; + widget = parent; + } + + found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget), + widget_name); + if (!found_widget) + g_warning ("Widget not found: %s", widget_name); + return found_widget; +} + +static GList *pixmaps_directories = NULL; + +/* Use this function to set the directory containing installed pixmaps. */ +void +add_pixmap_directory (const gchar *directory) +{ + pixmaps_directories = g_list_prepend (pixmaps_directories, + g_strdup (directory)); +} + +/* This is an internally used function to find pixmap files. */ +static gchar* +find_pixmap_file (const gchar *filename) +{ + GList *elem; + + /* We step through each of the pixmaps directory to find it. */ + elem = pixmaps_directories; + while (elem) + { + gchar *pathname = g_strdup_printf ("%s%s%s", (gchar*)elem->data, + G_DIR_SEPARATOR_S, filename); + if (g_file_test (pathname, G_FILE_TEST_EXISTS)) + return pathname; + g_free (pathname); + elem = elem->next; + } + return NULL; +} + +/* This is an internally used function to create pixmaps. */ +GtkWidget* +create_pixmap (GtkWidget *widget, + const gchar *filename) +{ + gchar *pathname = NULL; + GtkWidget *pixmap; + + if (!filename || !filename[0]) + return gtk_image_new (); + + pathname = find_pixmap_file (filename); + + if (!pathname) + { + g_warning (_("Couldn't find pixmap file: %s"), filename); + return gtk_image_new (); + } + + pixmap = gtk_image_new_from_file (pathname); + g_free (pathname); + return pixmap; +} + +/* This is an internally used function to create pixmaps. */ +GdkPixbuf* +create_pixbuf (const gchar *filename) +{ + gchar *pathname = NULL; + GdkPixbuf *pixbuf; + GError *error = NULL; + + if (!filename || !filename[0]) + return NULL; + + pathname = find_pixmap_file (filename); + + if (!pathname) + { + g_warning (_("Couldn't find pixmap file: %s"), filename); + return NULL; + } + + pixbuf = gdk_pixbuf_new_from_file (pathname, &error); + if (!pixbuf) + { + fprintf (stderr, "Failed to load pixbuf file: %s: %s\n", + pathname, error->message); + g_error_free (error); + } + g_free (pathname); + return pixbuf; +} + +/* This is used to set ATK action descriptions. */ +void +glade_set_atk_action_description (AtkAction *action, + const gchar *action_name, + const gchar *description) +{ + gint n_actions, i; + + n_actions = atk_action_get_n_actions (action); + for (i = 0; i < n_actions; i++) + { + if (!strcmp (atk_action_get_name (action, i), action_name)) + atk_action_set_description (action, i, description); + } +} + +#if GTK_CHECK_VERSION(3,0,0) +GtkWidget * +gtk_combo_box_entry_new_text(void) { + return gtk_combo_box_text_new_with_entry (); +} + +void +gtk_dialog_set_has_separator (GtkDialog *dlg, gboolean has) { +} +#endif + +#if !GTK_CHECK_VERSION(2,22,0) +GdkDragAction +gdk_drag_context_get_selected_action (GdkDragContext *context) { + return context->action; +} +GList * +gdk_drag_context_list_targets (GdkDragContext *context) { + return context->targets; +} +#endif + +#if !GTK_CHECK_VERSION(2,24,0) +#define GTK_COMBO_BOX_TEXT GTK_COMBO_BOX +GtkWidget * +gtk_combo_box_text_new () { + return gtk_combo_box_new_text (); +} + +GtkWidget * +gtk_combo_box_text_new_with_entry (void) { + return gtk_combo_box_entry_new (); +} + +void +gtk_combo_box_text_append_text (GtkComboBoxText *combo_box, const gchar *text) { + gtk_combo_box_append_text (combo_box, text); +} + +void +gtk_combo_box_text_insert_text (GtkComboBoxText *combo_box, gint position, const gchar *text) { + gtk_combo_box_insert_text (combo_box, position, text); +} + +void +gtk_combo_box_text_prepend_text (GtkComboBoxText *combo_box, const gchar *text) { + gtk_combo_box_prepend_text (combo_box, text); +} +gchar * +gtk_combo_box_text_get_active_text (GtkComboBoxText *combo_box) { + return gtk_combo_box_get_active_text (combo_box); +} + +#endif + +#if !GTK_CHECK_VERSION(2,18,0) +void +gtk_widget_set_allocation (GtkWidget *widget, const GtkAllocation *allocation) { + widget->allocation.x = (allocation)->x; + widget->allocation.y = (allocation)->y; + widget->allocation.width = (allocation)->width; + widget->allocation.height = (allocation)->height; +} + +void +gtk_widget_get_allocation (GtkWidget *widget, GtkAllocation *allocation) { + (allocation)->x = widget->allocation.x; + (allocation)->y = widget->allocation.y; + (allocation)->width = widget->allocation.width; + (allocation)->height = widget->allocation.height; +} + +void +gtk_widget_set_window(GtkWidget *widget, GdkWindow *window) { + widget->window = window; +} +#endif |