+void
+_gtk_recent_chooser_update (GtkActivatable *activatable,
+ GtkAction *action,
+ const gchar *property_name)
+{
+ GtkRecentChooser *recent_chooser = GTK_RECENT_CHOOSER (activatable);
+ GtkRecentChooser *action_chooser = GTK_RECENT_CHOOSER (action);
+ GtkRecentAction *recent_action = GTK_RECENT_ACTION (action);
+
+ if (strcmp (property_name, "show-numbers") == 0 && recent_chooser_has_show_numbers (recent_chooser))
+ g_object_set (recent_chooser, "show-numbers",
+ gtk_recent_action_get_show_numbers (recent_action), NULL);
+ else if (strcmp (property_name, "show-private") == 0)
+ gtk_recent_chooser_set_show_private (recent_chooser, gtk_recent_chooser_get_show_private (action_chooser));
+ else if (strcmp (property_name, "show-not-found") == 0)
+ gtk_recent_chooser_set_show_not_found (recent_chooser, gtk_recent_chooser_get_show_not_found (action_chooser));
+ else if (strcmp (property_name, "show-tips") == 0)
+ gtk_recent_chooser_set_show_tips (recent_chooser, gtk_recent_chooser_get_show_tips (action_chooser));
+ else if (strcmp (property_name, "show-icons") == 0)
+ gtk_recent_chooser_set_show_icons (recent_chooser, gtk_recent_chooser_get_show_icons (action_chooser));
+ else if (strcmp (property_name, "limit") == 0)
+ gtk_recent_chooser_set_limit (recent_chooser, gtk_recent_chooser_get_limit (action_chooser));
+ else if (strcmp (property_name, "local-only") == 0)
+ gtk_recent_chooser_set_local_only (recent_chooser, gtk_recent_chooser_get_local_only (action_chooser));
+ else if (strcmp (property_name, "sort-type") == 0)
+ gtk_recent_chooser_set_sort_type (recent_chooser, gtk_recent_chooser_get_sort_type (action_chooser));
+ else if (strcmp (property_name, "filter") == 0)
+ gtk_recent_chooser_set_filter (recent_chooser, gtk_recent_chooser_get_filter (action_chooser));
+}
+
+void
+_gtk_recent_chooser_sync_action_properties (GtkActivatable *activatable,
+ GtkAction *action)
+{
+ GtkRecentChooser *recent_chooser = GTK_RECENT_CHOOSER (activatable);
+ GtkRecentChooser *action_chooser = GTK_RECENT_CHOOSER (action);
+
+ if (!action)
+ return;
+
+ if (recent_chooser_has_show_numbers (recent_chooser))
+ g_object_set (recent_chooser, "show-numbers",
+ gtk_recent_action_get_show_numbers (GTK_RECENT_ACTION (action)),
+ NULL);
+ gtk_recent_chooser_set_show_private (recent_chooser, gtk_recent_chooser_get_show_private (action_chooser));
+ gtk_recent_chooser_set_show_not_found (recent_chooser, gtk_recent_chooser_get_show_not_found (action_chooser));
+ gtk_recent_chooser_set_show_tips (recent_chooser, gtk_recent_chooser_get_show_tips (action_chooser));
+ gtk_recent_chooser_set_show_icons (recent_chooser, gtk_recent_chooser_get_show_icons (action_chooser));
+ gtk_recent_chooser_set_limit (recent_chooser, gtk_recent_chooser_get_limit (action_chooser));
+ gtk_recent_chooser_set_local_only (recent_chooser, gtk_recent_chooser_get_local_only (action_chooser));
+ gtk_recent_chooser_set_sort_type (recent_chooser, gtk_recent_chooser_get_sort_type (action_chooser));
+ gtk_recent_chooser_set_filter (recent_chooser, gtk_recent_chooser_get_filter (action_chooser));
+}
+
+void
+_gtk_recent_chooser_set_related_action (GtkRecentChooser *recent_chooser,
+ GtkAction *action)
+{
+ GtkAction *prev_action;
+
+ prev_action = g_object_get_qdata (G_OBJECT (recent_chooser), quark_gtk_related_action);
+
+ if (prev_action == action)
+ return;
+
+ gtk_activatable_do_set_related_action (GTK_ACTIVATABLE (recent_chooser), action);
+ g_object_set_qdata (G_OBJECT (recent_chooser), quark_gtk_related_action, action);
+}
+
+GtkAction *
+_gtk_recent_chooser_get_related_action (GtkRecentChooser *recent_chooser)
+{
+ return g_object_get_qdata (G_OBJECT (recent_chooser), quark_gtk_related_action);
+}
+
+/* The default for use-action-appearance is TRUE, so we try to set the
+ * qdata backwards for this case.
+ */
+void
+_gtk_recent_chooser_set_use_action_appearance (GtkRecentChooser *recent_chooser,
+ gboolean use_appearance)
+{
+ GtkAction *action;
+ gboolean use_action_appearance;
+
+ action = g_object_get_qdata (G_OBJECT (recent_chooser), quark_gtk_related_action);
+ use_action_appearance = !GPOINTER_TO_INT (g_object_get_qdata (G_OBJECT (recent_chooser), quark_gtk_use_action_appearance));
+
+ if (use_action_appearance != use_appearance)
+ {
+
+ g_object_set_qdata (G_OBJECT (recent_chooser), quark_gtk_use_action_appearance, GINT_TO_POINTER (!use_appearance));
+
+ gtk_activatable_sync_action_properties (GTK_ACTIVATABLE (recent_chooser), action);
+ }
+}
+
+gboolean
+_gtk_recent_chooser_get_use_action_appearance (GtkRecentChooser *recent_chooser)
+{
+ return !GPOINTER_TO_INT (g_object_get_qdata (G_OBJECT (recent_chooser), quark_gtk_use_action_appearance));
+}