From fc8b2d8e076086b8943db496af5cb2ef6f0b610f Mon Sep 17 00:00:00 2001 From: Wu Xiaotian Date: Wed, 31 Jul 2019 16:51:14 +0800 Subject: add new interface --- libcaja-extension/caja-widget-view-provider.c | 32 +++++++++++++--- libcaja-extension/caja-widget-view-provider.h | 53 +++++++++++++++------------ 2 files changed, 56 insertions(+), 29 deletions(-) (limited to 'libcaja-extension') diff --git a/libcaja-extension/caja-widget-view-provider.c b/libcaja-extension/caja-widget-view-provider.c index d678fb26..44b33001 100644 --- a/libcaja-extension/caja-widget-view-provider.c +++ b/libcaja-extension/caja-widget-view-provider.c @@ -1,9 +1,8 @@ /* vi: set sw=4 ts=4 wrap ai: */ /* - * caja-widget-view-provider.c: This file is part of ____ - * - * Copyright (C) 2019 yetist + * caja-widget-view-provider.c: This file is part of caja. * + * Copyright (C) 2019 Wu Xiaotian * * 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 @@ -86,8 +85,8 @@ caja_widget_view_provider_get_widget (CajaWidgetViewProvider *provider) /** * caja_widget_view_provider_add_file: * @provider: a #CajaWidgetViewProvider - * @file: - * @directory: + * @file: + * @directory: * * **/ @@ -129,6 +128,29 @@ void caja_widget_view_provider_set_window (CajaWidgetViewProvider *provider, Gtk CAJA_WIDGET_VIEW_PROVIDER_GET_IFACE (provider)->set_window (provider, window); } +guint caja_widget_view_provider_get_item_count (CajaWidgetViewProvider *provider) +{ + g_return_val_if_fail (CAJA_IS_WIDGET_VIEW_PROVIDER (provider), 0); + g_return_val_if_fail (CAJA_WIDGET_VIEW_PROVIDER_GET_IFACE (provider)->get_item_count != NULL, 0); + + return CAJA_WIDGET_VIEW_PROVIDER_GET_IFACE (provider)->get_item_count (provider); +} + +gchar* caja_widget_view_provider_get_first_visible_file (CajaWidgetViewProvider *provider) +{ + g_return_val_if_fail (CAJA_IS_WIDGET_VIEW_PROVIDER (provider), NULL); + g_return_val_if_fail (CAJA_WIDGET_VIEW_PROVIDER_GET_IFACE (provider)->get_first_visible_file != NULL, NULL); + + return CAJA_WIDGET_VIEW_PROVIDER_GET_IFACE (provider)->get_first_visible_file (provider); +} + +void caja_widget_view_provider_clear (CajaWidgetViewProvider *provider) +{ + g_return_if_fail (CAJA_IS_WIDGET_VIEW_PROVIDER (provider)); + g_return_if_fail (CAJA_WIDGET_VIEW_PROVIDER_GET_IFACE (provider)->clear != NULL); + + CAJA_WIDGET_VIEW_PROVIDER_GET_IFACE (provider)->clear (provider); +} /** * caja_widget_view_provider_supports_uri: diff --git a/libcaja-extension/caja-widget-view-provider.h b/libcaja-extension/caja-widget-view-provider.h index 1bd21a5f..e232d3b8 100644 --- a/libcaja-extension/caja-widget-view-provider.h +++ b/libcaja-extension/caja-widget-view-provider.h @@ -1,9 +1,8 @@ /* vi: set sw=4 ts=4 wrap ai: */ /* - * caja-widget-view-provider.h: This file is part of ____ - * - * Copyright (C) 2019 yetist + * caja-widget-view-provider.h: This file is part of caja. * + * Copyright (C) 2019 Wu Xiaotian * * 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 @@ -49,31 +48,37 @@ typedef struct _CajaWidgetViewProviderIface CajaWidgetViewProviderIface; struct _CajaWidgetViewProviderIface { GTypeInterface g_iface; - gboolean (*supports_uri) (CajaWidgetViewProvider *provider, - const char *uri, - GFileType file_type, - const char *mime_type); - GtkWidget* (*get_widget) (CajaWidgetViewProvider *provider); - void (*add_file) (CajaWidgetViewProvider *provider, CajaFile *file, CajaFile *directory); - void (*set_location) (CajaWidgetViewProvider *provider, const char *location); - void (*set_window) (CajaWidgetViewProvider *provider, GtkWindow *window); + gboolean (*supports_uri) (CajaWidgetViewProvider *provider, + const char *uri, + GFileType file_type, + const char *mime_type); + GtkWidget* (*get_widget) (CajaWidgetViewProvider *provider); + void (*add_file) (CajaWidgetViewProvider *provider, CajaFile *file, CajaFile *directory); + void (*set_location) (CajaWidgetViewProvider *provider, const char *location); + void (*set_window) (CajaWidgetViewProvider *provider, GtkWindow *window); + guint (*get_item_count) (CajaWidgetViewProvider *provider); + gchar* (*get_first_visible_file) (CajaWidgetViewProvider *provider); + void (*clear) (CajaWidgetViewProvider *provider); }; /* Interface Functions */ -GType caja_widget_view_provider_get_type (void); +GType caja_widget_view_provider_get_type (void); -GtkWidget *caja_widget_view_provider_get_widget (CajaWidgetViewProvider *provider); -void caja_widget_view_provider_add_file (CajaWidgetViewProvider *provider, - CajaFile *file, - CajaFile *directory); -void caja_widget_view_provider_set_location (CajaWidgetViewProvider *provider, - const char *location); -void caja_widget_view_provider_set_window (CajaWidgetViewProvider *provider, - GtkWindow *window); -gboolean caja_widget_view_provider_supports_uri (CajaWidgetViewProvider *provider, - const char *uri, - GFileType file_type, - const char *mime_type); +GtkWidget *caja_widget_view_provider_get_widget (CajaWidgetViewProvider *provider); +void caja_widget_view_provider_add_file (CajaWidgetViewProvider *provider, + CajaFile *file, + CajaFile *directory); +void caja_widget_view_provider_set_location (CajaWidgetViewProvider *provider, + const char *location); +void caja_widget_view_provider_set_window (CajaWidgetViewProvider *provider, + GtkWindow *window); +guint caja_widget_view_provider_get_item_count (CajaWidgetViewProvider *provider); +gchar* caja_widget_view_provider_get_first_visible_file (CajaWidgetViewProvider *provider); +void caja_widget_view_provider_clear (CajaWidgetViewProvider *provider); +gboolean caja_widget_view_provider_supports_uri (CajaWidgetViewProvider *provider, + const char *uri, + GFileType file_type, + const char *mime_type); G_END_DECLS #endif /* __CAJA_WIDGET_VIEW_PROVIDER_H__ */ -- cgit v1.2.1