pda_support.c
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:4k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*
  2.  * DO NOT EDIT THIS FILE - it is generated by Glade.
  3.  */
  4. #ifdef HAVE_CONFIG_H
  5. #  include <config.h>
  6. #endif
  7. #include <sys/types.h>
  8. #include <sys/stat.h>
  9. #include <unistd.h>
  10. #include <string.h>
  11. #include <gtk/gtk.h>
  12. #include "pda_support.h"
  13. GtkWidget*
  14. lookup_widget                          (GtkWidget       *widget,
  15.                                         const gchar     *widget_name)
  16. {
  17.   GtkWidget *parent, *found_widget;
  18.   for (;;)
  19.     {
  20.       if (GTK_IS_MENU (widget))
  21.         parent = gtk_menu_get_attach_widget (GTK_MENU (widget));
  22.       else
  23.         parent = widget->parent;
  24.       if (!parent)
  25.         parent = (GtkWidget*) g_object_get_data (G_OBJECT (widget), "GladeParentKey");
  26.       if (parent == NULL)
  27.         break;
  28.       widget = parent;
  29.     }
  30.   found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget),
  31.                                                  widget_name);
  32.   if (!found_widget)
  33.     g_warning ("Widget not found: %s", widget_name);
  34.   return found_widget;
  35. }
  36. static GList *pixmaps_directories = NULL;
  37. /* Use this function to set the directory containing installed pixmaps. */
  38. void
  39. add_pixmap_directory                   (const gchar     *directory)
  40. {
  41.   pixmaps_directories = g_list_prepend (pixmaps_directories,
  42.                                         g_strdup (directory));
  43. }
  44. /* This is an internally used function to find pixmap files. */
  45. static gchar*
  46. find_pixmap_file                       (const gchar     *filename)
  47. {
  48.   GList *elem;
  49.   /* We step through each of the pixmaps directory to find it. */
  50.   elem = pixmaps_directories;
  51.   while (elem)
  52.     {
  53.       gchar *pathname = g_strdup_printf ("%s%s%s", (gchar*)elem->data,
  54.                                          G_DIR_SEPARATOR_S, filename);
  55.       if (g_file_test (pathname, G_FILE_TEST_EXISTS))
  56.         return pathname;
  57.       g_free (pathname);
  58.       elem = elem->next;
  59.     }
  60.   return NULL;
  61. }
  62. /* This is an internally used function to create pixmaps. */
  63. GtkWidget*
  64. create_pixmap                          (GtkWidget       *widget,
  65.                                         const gchar     *filename)
  66. {
  67.   (void) widget;
  68.   gchar *pathname = NULL;
  69.   GtkWidget *pixmap;
  70.   if (!filename || !filename[0])
  71.       return gtk_image_new ();
  72.   pathname = find_pixmap_file (filename);
  73.   if (!pathname)
  74.     {
  75.       g_warning (_("Couldn't find pixmap file: %s"), filename);
  76.       return gtk_image_new ();
  77.     }
  78.   pixmap = gtk_image_new_from_file (pathname);
  79.   g_free (pathname);
  80.   return pixmap;
  81. }
  82. /* This is an internally used function to create pixmaps. */
  83. GdkPixbuf*
  84. create_pixbuf                          (const gchar     *filename)
  85. {
  86.   gchar *pathname = NULL;
  87.   GdkPixbuf *pixbuf;
  88.   GError *error = NULL;
  89.   if (!filename || !filename[0])
  90.       return NULL;
  91.   pathname = find_pixmap_file (filename);
  92.   if (!pathname)
  93.     {
  94.       g_warning (_("Couldn't find pixmap file: %s"), filename);
  95.       return NULL;
  96.     }
  97.   pixbuf = gdk_pixbuf_new_from_file (pathname, &error);
  98.   if (!pixbuf)
  99.     {
  100.       fprintf (stderr, "Failed to load pixbuf file: %s: %sn",
  101.                pathname, error->message);
  102.       g_error_free (error);
  103.     }
  104.   g_free (pathname);
  105.   return pixbuf;
  106. }
  107. /* This is used to set ATK action descriptions. */
  108. void
  109. glade_set_atk_action_description       (AtkAction       *action,
  110.                                         const gchar     *action_name,
  111.                                         const gchar     *description)
  112. {
  113.   gint n_actions, i;
  114.   n_actions = atk_action_get_n_actions (action);
  115.   for (i = 0; i < n_actions; i++)
  116.     {
  117.       if (!strcmp (atk_action_get_name (action, i), action_name))
  118.         atk_action_set_description (action, i, description);
  119.     }
  120. }