[gtk+/wip/baedert/box: 25/29] Remove GtkActionGroup
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/baedert/box: 25/29] Remove GtkActionGroup
- Date: Mon, 17 Oct 2016 07:16:30 +0000 (UTC)
commit 41b4e3ae1d053c48998b4b8598e3c52405255dbe
Author: Timm Bäder <mail baedert org>
Date: Sun Oct 16 20:46:37 2016 +0200
Remove GtkActionGroup
docs/reference/gtk/gtk4-sections.txt | 43 -
gtk/deprecated/Makefile.inc | 2 -
gtk/deprecated/gtkaction.c | 72 +-
gtk/deprecated/gtkactiongroup.c | 1567 --------------------
gtk/deprecated/gtkactiongroup.h | 270 ----
gtk/gtk.h | 1 -
tests/Makefile.am | 5 -
tests/testactions.c | 217 ---
tests/testgtk.c | 154 --
testsuite/gtk/builder.c | 73 -
testsuite/gtk/notify.c | 3 +-
.../linear-gradient-transition-to-other.ref.ui | 1 -
.../linear-gradient-transition-to-other.ui | 1 -
testsuite/reftests/simple.ref.ui | 1 -
testsuite/reftests/simple.ui | 1 -
15 files changed, 4 insertions(+), 2407 deletions(-)
---
diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt
index 0c128ee..72091a9 100644
--- a/docs/reference/gtk/gtk4-sections.txt
+++ b/docs/reference/gtk/gtk4-sections.txt
@@ -257,49 +257,6 @@ gtk_activatable_get_type
</SECTION>
<SECTION>
-<FILE>gtkactiongroup</FILE>
-<TITLE>GtkActionGroup</TITLE>
-GtkActionGroup
-GtkActionGroupClass
-gtk_action_group_new
-gtk_action_group_get_name
-gtk_action_group_get_sensitive
-gtk_action_group_set_sensitive
-gtk_action_group_get_visible
-gtk_action_group_set_visible
-gtk_action_group_get_accel_group
-gtk_action_group_set_accel_group
-gtk_action_group_get_action
-gtk_action_group_list_actions
-gtk_action_group_add_action
-gtk_action_group_add_action_with_accel
-gtk_action_group_remove_action
-GtkActionEntry
-gtk_action_group_add_actions
-gtk_action_group_add_actions_full
-GtkToggleActionEntry
-gtk_action_group_add_toggle_actions
-gtk_action_group_add_toggle_actions_full
-GtkRadioActionEntry
-gtk_action_group_add_radio_actions
-gtk_action_group_add_radio_actions_full
-GtkTranslateFunc
-gtk_action_group_set_translate_func
-gtk_action_group_set_translation_domain
-gtk_action_group_translate_string
-<SUBSECTION Standard>
-GTK_TYPE_ACTION_GROUP
-GTK_ACTION_GROUP
-GTK_ACTION_GROUP_CLASS
-GTK_IS_ACTION_GROUP
-GTK_IS_ACTION_GROUP_CLASS
-GTK_ACTION_GROUP_GET_CLASS
-<SUBSECTION Private>
-gtk_action_group_get_type
-GtkActionGroupPrivate
-</SECTION>
-
-<SECTION>
<FILE>gtkadjustment</FILE>
<TITLE>GtkAdjustment</TITLE>
GtkAdjustment
diff --git a/gtk/deprecated/Makefile.inc b/gtk/deprecated/Makefile.inc
index 0318154..0a6ebb8 100644
--- a/gtk/deprecated/Makefile.inc
+++ b/gtk/deprecated/Makefile.inc
@@ -1,6 +1,5 @@
deprecated_h_sources = \
deprecated/gtkaction.h \
- deprecated/gtkactiongroup.h \
deprecated/gtkgradient.h \
deprecated/gtksymboliccolor.h
@@ -10,6 +9,5 @@ deprecated_private_h_sources = \
deprecated_c_sources = \
deprecated/gtkaction.c \
- deprecated/gtkactiongroup.c \
deprecated/gtkgradient.c \
deprecated/gtksymboliccolor.c
diff --git a/gtk/deprecated/gtkaction.c b/gtk/deprecated/gtkaction.c
index d0adf04..55c79a4 100644
--- a/gtk/deprecated/gtkaction.c
+++ b/gtk/deprecated/gtkaction.c
@@ -129,8 +129,6 @@ struct _GtkActionPrivate
GClosure *accel_closure;
GQuark accel_quark;
- GtkActionGroup *action_group;
-
/* list of proxy widgets */
GSList *proxies;
};
@@ -158,7 +156,6 @@ enum
PROP_HIDE_IF_EMPTY,
PROP_SENSITIVE,
PROP_VISIBLE,
- PROP_ACTION_GROUP,
PROP_ALWAYS_SHOW_IMAGE
};
@@ -182,8 +179,6 @@ static void gtk_action_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec);
-static void gtk_action_set_action_group (GtkAction *action,
- GtkActionGroup *action_group);
static GtkWidget *create_menu_item (GtkAction *action);
static GtkWidget *create_tool_item (GtkAction *action);
@@ -475,22 +470,6 @@ gtk_action_class_init (GtkActionClass *klass)
P_("Whether the action is visible."),
TRUE,
GTK_PARAM_READWRITE));
- /**
- * GtkAction:action-group:
- *
- * The GtkActionGroup this GtkAction is associated with, or NULL
- * (for internal use).
- *
- * Deprecated: 3.10: Lookup the #GAction using g_action_map_lookup_action()
- * instead
- */
- g_object_class_install_property (gobject_class,
- PROP_ACTION_GROUP,
- g_param_spec_object ("action-group",
- P_("Action Group"),
- P_("The GtkActionGroup this GtkAction is associated
with, or NULL (for internal use)."),
- GTK_TYPE_ACTION_GROUP,
- GTK_PARAM_READWRITE));
/**
* GtkAction:always-show-image:
@@ -569,8 +548,6 @@ gtk_action_init (GtkAction *action)
g_closure_ref (action->private_data->accel_closure);
g_closure_sink (action->private_data->accel_closure);
- action->private_data->action_group = NULL;
-
action->private_data->proxies = NULL;
action->private_data->gicon = NULL;
}
@@ -713,9 +690,6 @@ gtk_action_set_property (GObject *object,
case PROP_VISIBLE:
gtk_action_set_visible (action, g_value_get_boolean (value));
break;
- case PROP_ACTION_GROUP:
- gtk_action_set_action_group (action, g_value_get_object (value));
- break;
case PROP_ALWAYS_SHOW_IMAGE:
gtk_action_set_always_show_image (action, g_value_get_boolean (value));
break;
@@ -779,9 +753,6 @@ gtk_action_get_property (GObject *object,
case PROP_VISIBLE:
g_value_set_boolean (value, action->private_data->visible);
break;
- case PROP_ACTION_GROUP:
- g_value_set_object (value, action->private_data->action_group);
- break;
case PROP_ALWAYS_SHOW_IMAGE:
g_value_set_boolean (value, action->private_data->always_show_image);
break;
@@ -827,9 +798,6 @@ connect_proxy (GtkAction *action,
g_object_ref_sink (proxy);
- if (action->private_data->action_group)
- _gtk_action_group_emit_connect_proxy (action->private_data->action_group, action, proxy);
-
}
static void
@@ -837,11 +805,9 @@ disconnect_proxy (GtkAction *action,
GtkWidget *proxy)
{
remove_proxy (action, proxy);
-
- if (action->private_data->action_group)
- _gtk_action_group_emit_disconnect_proxy (action->private_data->action_group, action, proxy);
}
+
/**
* _gtk_action_sync_menu_visible:
* @action: (allow-none): a #GtkAction, or %NULL to determine the action from @proxy
@@ -887,23 +853,6 @@ _gtk_action_sync_menu_visible (GtkAction *action,
void
_gtk_action_emit_activate (GtkAction *action)
{
- GtkActionGroup *group = action->private_data->action_group;
-
- if (group != NULL)
- {
- g_object_ref (action);
- g_object_ref (group);
- _gtk_action_group_emit_pre_activate (group, action);
- }
-
- g_signal_emit (action, action_signals[ACTIVATE], 0);
-
- if (group != NULL)
- {
- _gtk_action_group_emit_post_activate (group, action);
- g_object_unref (group);
- g_object_unref (action);
- }
}
/**
@@ -1140,9 +1089,7 @@ gtk_action_is_sensitive (GtkAction *action)
g_return_val_if_fail (GTK_IS_ACTION (action), FALSE);
priv = action->private_data;
- return priv->sensitive &&
- (priv->action_group == NULL ||
- gtk_action_group_get_sensitive (priv->action_group));
+ return priv->sensitive;
}
/**
@@ -1220,9 +1167,7 @@ gtk_action_is_visible (GtkAction *action)
g_return_val_if_fail (GTK_IS_ACTION (action), FALSE);
priv = action->private_data;
- return priv->visible &&
- (priv->action_group == NULL ||
- gtk_action_group_get_visible (priv->action_group));
+ return priv->visible;
}
/**
@@ -1837,17 +1782,6 @@ closure_accel_activate (GClosure *closure,
}
}
-static void
-gtk_action_set_action_group (GtkAction *action,
- GtkActionGroup *action_group)
-{
- if (action->private_data->action_group == NULL)
- g_return_if_fail (GTK_IS_ACTION_GROUP (action_group));
- else
- g_return_if_fail (action_group == NULL);
-
- action->private_data->action_group = action_group;
-}
/**
* gtk_action_set_accel_path:
diff --git a/gtk/gtk.h b/gtk/gtk.h
index 8724718..aa3c5ca 100644
--- a/gtk/gtk.h
+++ b/gtk/gtk.h
@@ -245,7 +245,6 @@
#ifndef GTK_DISABLE_DEPRECATED
#include <gtk/deprecated/gtkaction.h>
-#include <gtk/deprecated/gtkactiongroup.h>
#include <gtk/deprecated/gtkgradient.h>
#include <gtk/deprecated/gtksymboliccolor.h>
#endif /* GTK_DISABLE_DEPRECATED */
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 15a6f0f..97d8b63 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -124,7 +124,6 @@ noinst_PROGRAMS = $(TEST_PROGS) \
testverticalcells \
treestoretest \
testxinerama \
- testactions \
testgrouping \
testtooltips \
testexpand \
@@ -249,7 +248,6 @@ testtreesort_DEPENDENCIES = $(DEPS)
testverticalcells_DEPENDENCIES = $(DEPS)
treestoretest_DEPENDENCIES = $(TEST_DEPS)
testxinerama_DEPENDENCIES = $(TEST_DEPS)
-testactions_DEPENDENCIES = $(TEST_DEPS)
testgrouping_DEPENDENCIES = $(TEST_DEPS)
testtooltips_DEPENDENCIES = $(TEST_DEPS)
testvolumebutton_DEPENDENCIES = $(TEST_DEPS)
@@ -372,9 +370,6 @@ testprint_SOURCES = \
testspinbutton_SOURCES = \
testspinbutton.c
-testactions_SOURCES = \
- testactions.c
-
testbaseline_SOURCES = \
testbaseline.c
diff --git a/tests/testgtk.c b/tests/testgtk.c
index 67159e7..a00221f 100644
--- a/tests/testgtk.c
+++ b/tests/testgtk.c
@@ -800,159 +800,6 @@ new_pixbuf (char *filename,
return widget;
}
-
-static void
-set_toolbar_small_stock (GtkWidget *widget,
- gpointer data)
-{
- gtk_toolbar_set_icon_size (GTK_TOOLBAR (data), GTK_ICON_SIZE_SMALL_TOOLBAR);
-}
-
-static void
-set_toolbar_large_stock (GtkWidget *widget,
- gpointer data)
-{
- gtk_toolbar_set_icon_size (GTK_TOOLBAR (data), GTK_ICON_SIZE_LARGE_TOOLBAR);
-}
-
-static void
-set_toolbar_horizontal (GtkWidget *widget,
- gpointer data)
-{
- gtk_orientable_set_orientation (GTK_ORIENTABLE (data), GTK_ORIENTATION_HORIZONTAL);
-}
-
-static void
-set_toolbar_vertical (GtkWidget *widget,
- gpointer data)
-{
- gtk_orientable_set_orientation (GTK_ORIENTABLE (data), GTK_ORIENTATION_VERTICAL);
-}
-
-static void
-set_toolbar_icons (GtkWidget *widget,
- gpointer data)
-{
- gtk_toolbar_set_style (GTK_TOOLBAR (data), GTK_TOOLBAR_ICONS);
-}
-
-static void
-set_toolbar_text (GtkWidget *widget,
- gpointer data)
-{
- gtk_toolbar_set_style (GTK_TOOLBAR (data), GTK_TOOLBAR_TEXT);
-}
-
-static void
-set_toolbar_both (GtkWidget *widget,
- gpointer data)
-{
- gtk_toolbar_set_style (GTK_TOOLBAR (data), GTK_TOOLBAR_BOTH);
-}
-
-static void
-set_toolbar_both_horiz (GtkWidget *widget,
- gpointer data)
-{
- gtk_toolbar_set_style (GTK_TOOLBAR (data), GTK_TOOLBAR_BOTH_HORIZ);
-}
-
-static GtkActionEntry create_toolbar_items[] = {
- { NULL, NULL, NULL, NULL, "Stock icon: New",
- G_CALLBACK (set_toolbar_small_stock) },
- { NULL, NULL, NULL, NULL, "Stock icon: Open",
- G_CALLBACK (set_toolbar_large_stock) },
- { NULL, NULL, "Horizontal", NULL, "Horizontal toolbar layout",
- G_CALLBACK (set_toolbar_horizontal) },
- { NULL, NULL, "Vertical", NULL, "Vertical toolbar layout",
- G_CALLBACK (set_toolbar_vertical) },
- { NULL },
- { NULL, NULL, "Icons", NULL, "Only show toolbar icons",
- G_CALLBACK (set_toolbar_icons) },
- { NULL, NULL, "Text", NULL, "Only show toolbar text",
- G_CALLBACK (set_toolbar_text) },
- { NULL, NULL, "Both", NULL, "Show toolbar icons and text",
- G_CALLBACK (set_toolbar_both) },
- { NULL, NULL, "Both (horizontal)", NULL, "Show toolbar icons and text in a horizontal fashion",
- G_CALLBACK (set_toolbar_both_horiz) },
- { NULL },
- { "entry", NULL, NULL, "This is an unusable GtkEntry ;)",
- NULL },
- { NULL },
- { NULL },
- { NULL, NULL, "Frobate", NULL, "Frobate tooltip",
- NULL },
- { NULL, NULL, "Baz", NULL, "Baz tooltip",
- NULL },
- { NULL },
- { NULL, NULL, "Blah", NULL, "Blash tooltip",
- NULL },
- { NULL, NULL, "Bar", NULL, "Bar tooltip",
- NULL },
-};
-
-static void
-create_toolbar (GtkWidget *widget)
-{
- static GtkWidget *window = NULL;
- GtkWidget *toolbar;
-
- if (!window)
- {
- guint i;
-
- window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- gtk_window_set_screen (GTK_WINDOW (window),
- gtk_widget_get_screen (widget));
-
- gtk_window_set_title (GTK_WINDOW (window), "Toolbar test");
-
- g_signal_connect (window, "destroy",
- G_CALLBACK (gtk_widget_destroyed),
- &window);
-
- gtk_widget_realize (window);
-
- toolbar = gtk_toolbar_new ();
- for (i = 0; i < G_N_ELEMENTS (create_toolbar_items); i++)
- {
- GtkToolItem *toolitem;
-
- if (create_toolbar_items[i].tooltip == NULL)
- toolitem = gtk_separator_tool_item_new ();
- else if (g_strcmp0 (create_toolbar_items[i].name, "entry") == 0)
- {
- GtkWidget *entry;
-
- toolitem = gtk_tool_item_new ();
- entry = gtk_entry_new ();
- gtk_container_add (GTK_CONTAINER (toolitem), entry);
- }
- else
- {
- GtkWidget *icon;
-
- icon = new_pixbuf ("test.xpm", gtk_widget_get_window (window));
- toolitem = gtk_tool_button_new (icon, create_toolbar_items[i].label);
- }
- if (create_toolbar_items[i].callback)
- g_signal_connect (toolitem, "clicked",
- create_toolbar_items[i].callback, toolbar);
- gtk_tool_item_set_tooltip_text (toolitem, create_toolbar_items[i].tooltip);
- gtk_toolbar_insert (GTK_TOOLBAR (toolbar), toolitem, -1);
- }
-
- gtk_container_add (GTK_CONTAINER (window), toolbar);
-
- gtk_widget_set_size_request (toolbar, 200, -1);
- }
-
- if (!gtk_widget_get_visible (window))
- gtk_widget_show_all (window);
- else
- gtk_widget_destroy (window);
-}
-
/*
* GtkStatusBar
*/
@@ -9023,7 +8870,6 @@ struct {
{ "test selection", create_selection_test },
{ "test timeout", create_timeout_test },
{ "toggle buttons", create_toggle_buttons },
- { "toolbar", create_toolbar },
{ "tooltips", create_tooltips },
{ "WM hints", create_wmhints },
{ "window sizing", create_window_sizing },
diff --git a/testsuite/gtk/builder.c b/testsuite/gtk/builder.c
index 36f0e0e..1d4ece3 100644
--- a/testsuite/gtk/builder.c
+++ b/testsuite/gtk/builder.c
@@ -648,7 +648,6 @@ test_types (void)
const gchar buffer[] =
"<interface>"
" <object class=\"GtkAction\" id=\"action\"/>"
- " <object class=\"GtkActionGroup\" id=\"actiongroup\"/>"
" <object class=\"GtkButton\" id=\"button\"/>"
" <object class=\"GtkCheckButton\" id=\"checkbutton\"/>"
" <object class=\"GtkDialog\" id=\"dialog\"/>"
@@ -1963,32 +1962,6 @@ test_add_objects (void)
" </child>"
" </object>"
"<interface/>";
- const gchar buffer2[] =
- "<interface>"
- " <object class=\"GtkLabel\" id=\"uimgr1\">"
- " <child>"
- " <object class=\"GtkActionGroup\" id=\"ag1\">"
- " <child>"
- " <object class=\"GtkAction\" id=\"file\">"
- " <property name=\"label\">_File</property>"
- " </object>"
- " <accelerator key=\"n\" modifiers=\"GDK_CONTROL_MASK\"/>"
- " </child>"
- " </object>"
- " </child>"
- " <ui>"
- " <menubar name=\"menubar1\">"
- " <menu action=\"file\">"
- " </menu>"
- " </menubar>"
- " </ui>"
- " </object>"
- " <object class=\"GtkWindow\" id=\"window1\">"
- " <child>"
- " <object class=\"GtkMenuBar\" id=\"menubar1\" constructor=\"uimgr1\"/>"
- " </child>"
- " </object>"
- "</interface>";
error = NULL;
builder = gtk_builder_new ();
@@ -2017,52 +1990,6 @@ test_add_objects (void)
g_assert (GTK_IS_WIDGET (obj));
g_object_unref (builder);
- /* test cherry picking a ui manager and menubar that depends on it */
- error = NULL;
- builder = gtk_builder_new ();
- ret = gtk_builder_add_objects_from_string (builder, buffer2, -1, objects3, &error);
- g_assert (ret);
- obj = gtk_builder_get_object (builder, "uimgr1");
- g_assert (GTK_IS_LABEL (obj));
- obj = gtk_builder_get_object (builder, "file");
- g_assert (GTK_IS_ACTION (obj));
- obj = gtk_builder_get_object (builder, "menubar1");
- g_assert (GTK_IS_MENU_BAR (obj));
- menubar = GTK_WIDGET (obj);
-
- children = gtk_container_get_children (GTK_CONTAINER (menubar));
- menu = children->data;
- g_assert (menu != NULL);
- g_assert (GTK_IS_MENU_ITEM (menu));
- g_assert (strcmp (gtk_widget_get_name (GTK_WIDGET (menu)), "file") == 0);
- g_list_free (children);
-
- label = G_OBJECT (gtk_bin_get_child (GTK_BIN (menu)));
- g_assert (label != NULL);
- g_assert (GTK_IS_LABEL (label));
- g_assert (strcmp (gtk_label_get_text (GTK_LABEL (label)), "File") == 0);
-
- g_object_unref (builder);
-
- /* test cherry picking just the ui manager */
- error = NULL;
- builder = gtk_builder_new ();
- ret = gtk_builder_add_objects_from_string (builder, buffer2, -1, objects4, &error);
- g_assert (ret);
- obj = gtk_builder_get_object (builder, "uimgr1");
-
- children = gtk_container_get_children (GTK_CONTAINER (menubar));
- menu = children->data;
- g_assert (menu != NULL);
- g_assert (GTK_IS_MENU_ITEM (menu));
- g_assert (strcmp (gtk_widget_get_name (GTK_WIDGET (menu)), "file") == 0);
- g_list_free (children);
-
- label = G_OBJECT (gtk_bin_get_child (GTK_BIN (menu)));
- g_assert (label != NULL);
- g_assert (GTK_IS_LABEL (label));
- g_assert (strcmp (gtk_label_get_text (GTK_LABEL (label)), "File") == 0);
-
g_object_unref (builder);
}
diff --git a/testsuite/gtk/notify.c b/testsuite/gtk/notify.c
index de12a95..c5dbd23 100644
--- a/testsuite/gtk/notify.c
+++ b/testsuite/gtk/notify.c
@@ -517,8 +517,7 @@ test_type (gconstpointer data)
continue;
/* Deprecated, not getting fixed */
- if (g_str_equal (g_type_name (pspec->owner_type), "GtkActionGroup") ||
- g_str_equal (g_type_name (pspec->owner_type), "GtkAction"))
+ if (g_str_equal (g_type_name (pspec->owner_type), "GtkAction"))
continue;
if (g_type_is_a (pspec->owner_type, GTK_TYPE_CONTAINER) &&
diff --git a/testsuite/reftests/linear-gradient-transition-to-other.ref.ui
b/testsuite/reftests/linear-gradient-transition-to-other.ref.ui
index e82e796..c4a02a1 100644
--- a/testsuite/reftests/linear-gradient-transition-to-other.ref.ui
+++ b/testsuite/reftests/linear-gradient-transition-to-other.ref.ui
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
- <object class="GtkActionGroup" id="actiongroup1"/>
<object class="GtkWindow" id="window1">
<property name="width_request">20</property>
<property name="height_request">20</property>
diff --git a/testsuite/reftests/linear-gradient-transition-to-other.ui
b/testsuite/reftests/linear-gradient-transition-to-other.ui
index de1f80b..2c21f60 100644
--- a/testsuite/reftests/linear-gradient-transition-to-other.ui
+++ b/testsuite/reftests/linear-gradient-transition-to-other.ui
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
- <object class="GtkActionGroup" id="actiongroup1"/>
<object class="GtkWindow" id="window1">
<property name="width_request">20</property>
<property name="height_request">20</property>
diff --git a/testsuite/reftests/simple.ref.ui b/testsuite/reftests/simple.ref.ui
index 98f1f31..eadb441 100644
--- a/testsuite/reftests/simple.ref.ui
+++ b/testsuite/reftests/simple.ref.ui
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
- <object class="GtkActionGroup" id="actiongroup1"/>
<object class="GtkWindow" id="window1">
<property name="width_request">10</property>
<property name="height_request">10</property>
diff --git a/testsuite/reftests/simple.ui b/testsuite/reftests/simple.ui
index 98f1f31..eadb441 100644
--- a/testsuite/reftests/simple.ui
+++ b/testsuite/reftests/simple.ui
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.0 -->
- <object class="GtkActionGroup" id="actiongroup1"/>
<object class="GtkWindow" id="window1">
<property name="width_request">10</property>
<property name="height_request">10</property>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]