Tree of tag thunar-4.20.2 (commit 11a519f) from https://gitlab.xfce.org/xfce/thunar. Upstream history is not included here to keep the repository small.
130 lines
4.3 KiB
C
130 lines
4.3 KiB
C
/* vi:set et ai sw=2 sts=2 ts=2: */
|
|
/*-
|
|
* Copyright (c) 2006 Benedikt Meurer <benny@xfce.org>
|
|
*
|
|
* 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., 59 Temple
|
|
* Place, Suite 330, Boston, MA 02111-1307 USA
|
|
*/
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
#include "config.h"
|
|
#endif
|
|
|
|
#include "thunar/thunar-component.h"
|
|
#include "thunar/thunar-private.h"
|
|
|
|
#include <exo/exo.h>
|
|
|
|
|
|
|
|
static void
|
|
thunar_component_class_init (gpointer klass);
|
|
|
|
|
|
|
|
GType
|
|
thunar_component_get_type (void)
|
|
{
|
|
static gsize type__static = 0;
|
|
GType type;
|
|
|
|
if (g_once_init_enter (&type__static))
|
|
{
|
|
type = g_type_register_static_simple (G_TYPE_INTERFACE,
|
|
I_ ("ThunarComponent"),
|
|
sizeof (ThunarComponentIface),
|
|
(GClassInitFunc) (void (*) (void)) thunar_component_class_init,
|
|
0,
|
|
NULL,
|
|
0);
|
|
|
|
g_type_interface_add_prerequisite (type, THUNAR_TYPE_NAVIGATOR);
|
|
|
|
g_once_init_leave (&type__static, type);
|
|
}
|
|
|
|
return type__static;
|
|
}
|
|
|
|
|
|
|
|
static void
|
|
thunar_component_class_init (gpointer klass)
|
|
{
|
|
/**
|
|
* ThunarComponent:selected-files:
|
|
*
|
|
* The list of currently selected files for the #ThunarWindow to
|
|
* which this #ThunarComponent belongs.
|
|
*
|
|
* The exact semantics of this property depend on the implementor
|
|
* of this interface. For example, #ThunarComponent<!---->s will update
|
|
* the property depending on the users selection with the
|
|
* #GtkTreeComponent or #ExoIconComponent. While other components in a window,
|
|
* like the #ThunarShortcutsPane, will not update this property on
|
|
* their own, but rely on #ThunarWindow to synchronize the selected
|
|
* files list with the selected files list from the active #ThunarComponent.
|
|
*
|
|
* This way all components can behave properly depending on the
|
|
* set of selected files even though they don't have direct access
|
|
* to the #ThunarComponent.
|
|
**/
|
|
g_object_interface_install_property (klass,
|
|
g_param_spec_boxed ("selected-files",
|
|
"selected-files",
|
|
"selected-files",
|
|
THUNARX_TYPE_FILE_INFO_LIST,
|
|
EXO_PARAM_READWRITE));
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* thunar_component_get_selected_files:
|
|
* @component : a #ThunarComponent instance.
|
|
*
|
|
* Returns the set of selected #ThunarFile<!---->s. Check the description
|
|
* of the :selected-files property for details.
|
|
*
|
|
* Return value: the set of selected #ThunarFile<!---->s.
|
|
**/
|
|
GList *
|
|
thunar_component_get_selected_files (ThunarComponent *component)
|
|
{
|
|
_thunar_return_val_if_fail (THUNAR_IS_COMPONENT (component), NULL);
|
|
if (THUNAR_COMPONENT_GET_IFACE (component)->get_selected_files != NULL)
|
|
return (*THUNAR_COMPONENT_GET_IFACE (component)->get_selected_files) (component);
|
|
else
|
|
return NULL;
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* thunar_component_set_selected_files:
|
|
* @component : a #ThunarComponent instance.
|
|
* @selected_files : a #GList of #ThunarFile<!---->s.
|
|
*
|
|
* Sets the selected files for @component to @selected_files.
|
|
* Check the description of the :selected-files property for
|
|
* details.
|
|
**/
|
|
void
|
|
thunar_component_set_selected_files (ThunarComponent *component,
|
|
GList *selected_files)
|
|
{
|
|
_thunar_return_if_fail (THUNAR_IS_COMPONENT (component));
|
|
if (THUNAR_COMPONENT_GET_IFACE (component)->set_selected_files != NULL)
|
|
(*THUNAR_COMPONENT_GET_IFACE (component)->set_selected_files) (component, selected_files);
|
|
}
|