* Boston, MA 02111-1307, USA.
*/
+#include <config.h>
#include "gtkfilechooserutils.h"
#include "gtkfilechooser.h"
#include "gtkfilesystem.h"
#include "gtktypebuiltins.h"
-static void delegate_set_current_folder (GtkFileChooser *chooser,
- const GtkFilePath *path);
+static gboolean delegate_set_current_folder (GtkFileChooser *chooser,
+ const GtkFilePath *path,
+ GError **error);
static GtkFilePath * delegate_get_current_folder (GtkFileChooser *chooser);
static void delegate_set_current_name (GtkFileChooser *chooser,
const gchar *name);
-static void delegate_select_path (GtkFileChooser *chooser,
- const GtkFilePath *path);
+static gboolean delegate_select_path (GtkFileChooser *chooser,
+ const GtkFilePath *path,
+ GError **error);
static void delegate_unselect_path (GtkFileChooser *chooser,
const GtkFilePath *path);
static void delegate_select_all (GtkFileChooser *chooser);
/**
* _gtk_file_chooser_install_properties:
* @klass: the class structure for a type deriving from #GObject
- *
+ *
* Installs the necessary properties for a class implementing
* #GtkFileChooser. A #GtkParamSpecOverride property is installed
* for each property, using the values from the #GtkFileChooserProp
/**
* _gtk_file_chooser_delegate_iface_init:
* @iface: a #GtkFileChoserIface structure
- *
+ *
* An interface-initialization function for use in cases where
* an object is simply delegating the methods, signals of
* the #GtkFileChooser interface to another object.
/**
* _gtk_file_chooser_set_delegate:
- * @receiver: a GOobject implementing #GtkFileChooser
- * @delegate: another GObject implementing #GtkFileChooser
+ * @receiver: a #GObject implementing #GtkFileChooser
+ * @delegate: another #GObject implementing #GtkFileChooser
*
* Establishes that calls on @receiver for #GtkFileChooser
* methods should be delegated to @delegate, and that
* #GtkFileChooser signals emitted on @delegate should be
- * forwarded to @receiver. Must be used in confunction with
+ * forwarded to @receiver. Must be used in conjunction with
* _gtk_file_chooser_delegate_iface_init().
**/
void
{
g_return_if_fail (GTK_IS_FILE_CHOOSER (receiver));
g_return_if_fail (GTK_IS_FILE_CHOOSER (delegate));
-
- g_object_set_data (G_OBJECT (receiver), "gtk-file-chooser-delegate", delegate);
+ g_object_set_data (G_OBJECT (receiver), "gtk-file-chooser-delegate", delegate);
g_signal_connect (delegate, "notify",
G_CALLBACK (delegate_notify), receiver);
g_signal_connect (delegate, "current-folder-changed",
return g_object_get_data (G_OBJECT (receiver), "gtk-file-chooser-delegate");
}
-static void
+static gboolean
delegate_select_path (GtkFileChooser *chooser,
- const GtkFilePath *path)
+ const GtkFilePath *path,
+ GError **error)
{
- _gtk_file_chooser_select_path (get_delegate (chooser), path);
+ return _gtk_file_chooser_select_path (get_delegate (chooser), path, error);
}
static void
return gtk_file_chooser_list_shortcut_folders (get_delegate (chooser));
}
-static void
+static gboolean
delegate_set_current_folder (GtkFileChooser *chooser,
- const GtkFilePath *path)
+ const GtkFilePath *path,
+ GError **error)
{
- _gtk_file_chooser_set_current_folder_path (get_delegate (chooser), path);
+ return _gtk_file_chooser_set_current_folder_path (get_delegate (chooser), path, error);
}
static GtkFilePath *
GParamSpec *pspec,
gpointer data)
{
- if (pspec->param_id >= GTK_FILE_CHOOSER_PROP_FIRST &&
- pspec->param_id <= GTK_FILE_CHOOSER_PROP_LAST)
- {
- g_object_notify (data, pspec->name);
- }
+ gpointer iface;
+
+ iface = g_type_interface_peek (g_type_class_peek (G_OBJECT_TYPE (object)),
+ gtk_file_chooser_get_type ());
+ if (g_object_interface_find_property (iface, pspec->name))
+ g_object_notify (data, pspec->name);
}
static void