pidgin/purple-plugin-pack
Clone
Summary
Browse
Changes
Graph
ignore vim swap files
2009-08-30, Gary Kramlich
991f8feafeba
ignore vim swap files
/*
* This program 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 2
* of the License, or (at your option) any later version.
*
* This program 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, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301, USA.
*/
#ifdef HAVE_CONFIG_H
#
include
"../pp_config.h"
#endif
#include
"../common/pp_internal.h"
#include
<sys/types.h>
#include
<sys/stat.h>
#include
<unistd.h>
#include
<string.h>
#include
<stdio.h>
#include
<gtk/gtk.h>
#include
"ignorance_internal.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
=
widget
->
parent
;
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
);
}
}