Skip to content

Commit

Permalink
Add a replacement for gtk_radio_action_set_current_value() which
Browse files Browse the repository at this point in the history
require GTK+ >= 2.10.
Two new files were added, compat.h and compat.c.
  • Loading branch information
Laurent Monin committed Apr 20, 2008
1 parent bac25c1 commit c10bf95
Show file tree
Hide file tree
Showing 4 changed files with 57 additions and 1 deletion.
2 changes: 2 additions & 0 deletions src/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ geeqie_SOURCES = \
collect-table.h \
color-man.c \
color-man.h \
compat.c \
compat.h \
dnd.c \
dnd.h \
dupe.c \
Expand Down
36 changes: 36 additions & 0 deletions src/compat.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/*
* Geeqie
*
* Authors: Vladimir Nadvornik / Laurent Monin
*
* This software is released under the GNU General Public License (GNU GPL).
* Please read the included file COPYING for more information.
* This software comes with no warranty of any kind, use at your own risk!
*/

#include "main.h"
#include "compat.h"

/* gtk_radio_action_set_current_value() replacement for GTK+ < 2.10 */
void radio_action_set_current_value(GtkRadioAction *action, gint current_value)
{
#if GTK_CHECK_VERSION(2, 10, 0)
gtk_radio_action_set_current_value(action, current_value);
#else
GSList *group;
gint value;

group = gtk_radio_action_get_group(action);
while (group)
{
action = GTK_RADIO_ACTION(group->data);
g_object_get(G_OBJECT(action), "value", &value, NULL);
if (value == current_value)
{
gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), TRUE);
return;
}
group = g_slist_next(group);
}
#endif
}
17 changes: 17 additions & 0 deletions src/compat.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/*
* Geeqie
*
* Authors: Vladimir Nadvornik / Laurent Monin
*
*
* This software is released under the GNU General Public License (GNU GPL).
* Please read the included file COPYING for more information.
* This software comes with no warranty of any kind, use at your own risk!
*/

#ifndef COMPAT_H
#define COMPAT_H

void radio_action_set_current_value(GtkRadioAction *action, gint current_value);

#endif /* COMPAT_H */
3 changes: 2 additions & 1 deletion src/layout_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
#include "cache_maint.h"
#include "collect.h"
#include "collect-dlg.h"
#include "compat.h"
#include "dupe.h"
#include "editors.h"
#include "filelist.h"
Expand Down Expand Up @@ -1551,7 +1552,7 @@ static void layout_util_sync_views(LayoutWindow *lw)
if (!lw->action_group) return;

action = gtk_action_group_get_action(lw->action_group, "FolderTree");
gtk_radio_action_set_current_value(GTK_RADIO_ACTION(action), lw->dir_view_type);
radio_action_set_current_value(GTK_RADIO_ACTION(action), lw->dir_view_type);

action = gtk_action_group_get_action(lw->action_group, "ViewIcons");
gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->icon_view);
Expand Down

0 comments on commit c10bf95

Please sign in to comment.