summaryrefslogtreecommitdiff
path: root/libcaja-extension/caja-menu-provider.h
diff options
context:
space:
mode:
Diffstat (limited to 'libcaja-extension/caja-menu-provider.h')
-rw-r--r--libcaja-extension/caja-menu-provider.h85
1 files changed, 85 insertions, 0 deletions
diff --git a/libcaja-extension/caja-menu-provider.h b/libcaja-extension/caja-menu-provider.h
new file mode 100644
index 00000000..0e947932
--- /dev/null
+++ b/libcaja-extension/caja-menu-provider.h
@@ -0,0 +1,85 @@
+/*
+ * caja-menu-provider.h - Interface for Caja extensions that
+ * provide context menu items.
+ *
+ * Copyright (C) 2003 Novell, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * Author: Dave Camp <[email protected]>
+ *
+ */
+
+/* This interface is implemented by Caja extensions that want to
+ * add context menu entries to files. Extensions are called when
+ * Caja constructs the context menu for a file. They are passed a
+ * list of CajaFileInfo objects which holds the current selection */
+
+#ifndef CAJA_MENU_PROVIDER_H
+#define CAJA_MENU_PROVIDER_H
+
+#include <glib-object.h>
+#include <gtk/gtk.h>
+#include "caja-extension-types.h"
+#include "caja-file-info.h"
+#include "caja-menu.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define CAJA_TYPE_MENU_PROVIDER (caja_menu_provider_get_type ())
+#define CAJA_MENU_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CAJA_TYPE_MENU_PROVIDER, CajaMenuProvider))
+#define CAJA_IS_MENU_PROVIDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CAJA_TYPE_MENU_PROVIDER))
+#define CAJA_MENU_PROVIDER_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), CAJA_TYPE_MENU_PROVIDER, CajaMenuProviderIface))
+
+ typedef struct _CajaMenuProvider CajaMenuProvider;
+ typedef struct _CajaMenuProviderIface CajaMenuProviderIface;
+
+ struct _CajaMenuProviderIface
+ {
+ GTypeInterface g_iface;
+
+ GList *(*get_file_items) (CajaMenuProvider *provider,
+ GtkWidget *window,
+ GList *files);
+ GList *(*get_background_items) (CajaMenuProvider *provider,
+ GtkWidget *window,
+ CajaFileInfo *current_folder);
+ GList *(*get_toolbar_items) (CajaMenuProvider *provider,
+ GtkWidget *window,
+ CajaFileInfo *current_folder);
+ };
+
+ /* Interface Functions */
+ GType caja_menu_provider_get_type (void);
+ GList *caja_menu_provider_get_file_items (CajaMenuProvider *provider,
+ GtkWidget *window,
+ GList *files);
+ GList *caja_menu_provider_get_background_items (CajaMenuProvider *provider,
+ GtkWidget *window,
+ CajaFileInfo *current_folder);
+ GList *caja_menu_provider_get_toolbar_items (CajaMenuProvider *provider,
+ GtkWidget *window,
+ CajaFileInfo *current_folder);
+
+ /* This function emit a signal to inform caja that its item list has changed. */
+ void caja_menu_provider_emit_items_updated_signal (CajaMenuProvider *provider);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif