"Fossies" - the Fresh Open Source Software Archive 
Member "gfsview-snapshot-121130/view/glade/support.c" (30 Nov 2012, 3665 Bytes) of package /linux/privat/gfsview-snapshot-121130.tar.gz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style:
standard) with prefixed line numbers and
code folding option.
Alternatively you can here
view or
download the uninterpreted source code file.
For more information about "support.c" see the
Fossies "Dox" file reference documentation.
1 /*
2 * DO NOT EDIT THIS FILE - it is generated by Glade.
3 */
4
5 #ifdef HAVE_CONFIG_H
6 # include <config.h>
7 #endif
8
9 #include <sys/types.h>
10 #include <sys/stat.h>
11 #include <unistd.h>
12 #include <string.h>
13 #include <stdio.h>
14
15 #include <gtk/gtk.h>
16
17 #include "support.h"
18
19 GtkWidget*
20 lookup_widget (GtkWidget *widget,
21 const gchar *widget_name)
22 {
23 GtkWidget *parent, *found_widget;
24
25 for (;;)
26 {
27 if (GTK_IS_MENU (widget))
28 parent = gtk_menu_get_attach_widget (GTK_MENU (widget));
29 else
30 parent = widget->parent;
31 if (!parent)
32 parent = (GtkWidget*) g_object_get_data (G_OBJECT (widget), "GladeParentKey");
33 if (parent == NULL)
34 break;
35 widget = parent;
36 }
37
38 found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget),
39 widget_name);
40 if (!found_widget)
41 g_warning ("Widget not found: %s", widget_name);
42 return found_widget;
43 }
44
45 static GList *pixmaps_directories = NULL;
46
47 /* Use this function to set the directory containing installed pixmaps. */
48 void
49 add_pixmap_directory (const gchar *directory)
50 {
51 pixmaps_directories = g_list_prepend (pixmaps_directories,
52 g_strdup (directory));
53 }
54
55 /* This is an internally used function to find pixmap files. */
56 static gchar*
57 find_pixmap_file (const gchar *filename)
58 {
59 GList *elem;
60
61 /* We step through each of the pixmaps directory to find it. */
62 elem = pixmaps_directories;
63 while (elem)
64 {
65 gchar *pathname = g_strdup_printf ("%s%s%s", (gchar*)elem->data,
66 G_DIR_SEPARATOR_S, filename);
67 if (g_file_test (pathname, G_FILE_TEST_EXISTS))
68 return pathname;
69 g_free (pathname);
70 elem = elem->next;
71 }
72 return NULL;
73 }
74
75 /* This is an internally used function to create pixmaps. */
76 GtkWidget*
77 create_pixmap (GtkWidget *widget,
78 const gchar *filename)
79 {
80 gchar *pathname = NULL;
81 GtkWidget *pixmap;
82
83 if (!filename || !filename[0])
84 return gtk_image_new ();
85
86 pathname = find_pixmap_file (filename);
87
88 if (!pathname)
89 {
90 g_warning ("Couldn't find pixmap file: %s", filename);
91 return gtk_image_new ();
92 }
93
94 pixmap = gtk_image_new_from_file (pathname);
95 g_free (pathname);
96 return pixmap;
97 }
98
99 /* This is an internally used function to create pixmaps. */
100 GdkPixbuf*
101 create_pixbuf (const gchar *filename)
102 {
103 gchar *pathname = NULL;
104 GdkPixbuf *pixbuf;
105 GError *error = NULL;
106
107 if (!filename || !filename[0])
108 return NULL;
109
110 pathname = find_pixmap_file (filename);
111
112 if (!pathname)
113 {
114 g_warning ("Couldn't find pixmap file: %s", filename);
115 return NULL;
116 }
117
118 pixbuf = gdk_pixbuf_new_from_file (pathname, &error);
119 if (!pixbuf)
120 {
121 fprintf (stderr, "Failed to load pixbuf file: %s: %s\n",
122 pathname, error->message);
123 g_error_free (error);
124 }
125 g_free (pathname);
126 return pixbuf;
127 }
128
129 /* This is used to set ATK action descriptions. */
130 void
131 glade_set_atk_action_description (AtkAction *action,
132 const gchar *action_name,
133 const gchar *description)
134 {
135 gint n_actions, i;
136
137 n_actions = atk_action_get_n_actions (action);
138 for (i = 0; i < n_actions; i++)
139 {
140 if (!strcmp (atk_action_get_name (action, i), action_name))
141 atk_action_set_description (action, i, description);
142 }
143 }
144