summaryrefslogtreecommitdiff
path: root/libcaja-private/caja-window-info.h
diff options
context:
space:
mode:
Diffstat (limited to 'libcaja-private/caja-window-info.h')
-rw-r--r--libcaja-private/caja-window-info.h189
1 files changed, 189 insertions, 0 deletions
diff --git a/libcaja-private/caja-window-info.h b/libcaja-private/caja-window-info.h
new file mode 100644
index 00000000..8852ad7b
--- /dev/null
+++ b/libcaja-private/caja-window-info.h
@@ -0,0 +1,189 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*-
+
+ caja-window-info.h: Interface for caja windows
+
+ Copyright (C) 2004 Red Hat Inc.
+
+ 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.
+
+ Author: Alexander Larsson <[email protected]>
+*/
+
+#ifndef CAJA_WINDOW_INFO_H
+#define CAJA_WINDOW_INFO_H
+
+#include <glib-object.h>
+#include <libcaja-private/caja-view.h>
+#include <gtk/gtk.h>
+#include "../src/caja-bookmark-list.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ typedef enum
+ {
+ CAJA_WINDOW_SHOW_HIDDEN_FILES_DEFAULT,
+ CAJA_WINDOW_SHOW_HIDDEN_FILES_ENABLE,
+ CAJA_WINDOW_SHOW_HIDDEN_FILES_DISABLE
+ }
+ CajaWindowShowHiddenFilesMode;
+
+
+ typedef enum
+ {
+ CAJA_WINDOW_OPEN_ACCORDING_TO_MODE,
+ CAJA_WINDOW_OPEN_IN_SPATIAL,
+ CAJA_WINDOW_OPEN_IN_NAVIGATION
+ } CajaWindowOpenMode;
+
+ typedef enum
+ {
+ /* used in spatial mode */
+ CAJA_WINDOW_OPEN_FLAG_CLOSE_BEHIND = 1<<0,
+ /* used in navigation mode */
+ CAJA_WINDOW_OPEN_FLAG_NEW_WINDOW = 1<<1,
+ CAJA_WINDOW_OPEN_FLAG_NEW_TAB = 1<<2
+ } CajaWindowOpenFlags;
+
+ typedef enum
+ {
+ CAJA_WINDOW_SPATIAL,
+ CAJA_WINDOW_NAVIGATION,
+ CAJA_WINDOW_DESKTOP
+ } CajaWindowType;
+
+#define CAJA_TYPE_WINDOW_INFO (caja_window_info_get_type ())
+#define CAJA_WINDOW_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), CAJA_TYPE_WINDOW_INFO, CajaWindowInfo))
+#define CAJA_IS_WINDOW_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CAJA_TYPE_WINDOW_INFO))
+#define CAJA_WINDOW_INFO_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), CAJA_TYPE_WINDOW_INFO, CajaWindowInfoIface))
+
+#ifndef CAJA_WINDOW_DEFINED
+#define CAJA_WINDOW_DEFINED
+ /* Using CajaWindow for the vtable to make implementing this in
+ * CajaWindow easier */
+ typedef struct CajaWindow CajaWindow;
+#endif
+
+#ifndef CAJA_WINDOW_SLOT_DEFINED
+#define CAJA_WINDOW_SLOT_DEFINED
+ typedef struct CajaWindowSlot CajaWindowSlot;
+#endif
+
+
+ typedef CajaWindowSlot CajaWindowSlotInfo;
+ typedef CajaWindow CajaWindowInfo;
+
+ typedef struct _CajaWindowInfoIface CajaWindowInfoIface;
+
+ struct _CajaWindowInfoIface
+ {
+ GTypeInterface g_iface;
+
+ /* signals: */
+
+ void (* loading_uri) (CajaWindowInfo *window,
+ const char *uri);
+ /* Emitted when the view in the window changes the selection */
+ void (* selection_changed) (CajaWindowInfo *window);
+ void (* title_changed) (CajaWindowInfo *window,
+ const char *title);
+ void (* hidden_files_mode_changed)(CajaWindowInfo *window);
+
+ /* VTable: */
+ /* A view calls this once after a load_location, once it starts loading the
+ * directory. Might be called directly, or later on the mainloop.
+ * This can also be called at any other time if the view needs to
+ * re-load the location. But the view needs to call load_complete first if
+ * its currently loading. */
+ void (* report_load_underway) (CajaWindowInfo *window,
+ CajaView *view);
+ /* A view calls this once after reporting load_underway, when the location
+ has been fully loaded, or when the load was stopped
+ (by an error or by the user). */
+ void (* report_load_complete) (CajaWindowInfo *window,
+ CajaView *view);
+ /* This can be called at any time when there has been a catastrophic failure of
+ the view. It will result in the view being removed. */
+ void (* report_view_failed) (CajaWindowInfo *window,
+ CajaView *view);
+ void (* report_selection_changed) (CajaWindowInfo *window);
+
+ /* Returns the number of selected items in the view */
+ int (* get_selection_count) (CajaWindowInfo *window);
+
+ /* Returns a list of uris for th selected items in the view, caller frees it */
+ GList *(* get_selection) (CajaWindowInfo *window);
+
+ char * (* get_current_location) (CajaWindowInfo *window);
+ void (* push_status) (CajaWindowInfo *window,
+ const char *status);
+ char * (* get_title) (CajaWindowInfo *window);
+ GList *(* get_history) (CajaWindowInfo *window);
+ CajaWindowType
+ (* get_window_type) (CajaWindowInfo *window);
+ CajaWindowShowHiddenFilesMode
+ (* get_hidden_files_mode) (CajaWindowInfo *window);
+ void (* set_hidden_files_mode) (CajaWindowInfo *window,
+ CajaWindowShowHiddenFilesMode mode);
+
+ CajaWindowSlotInfo * (* get_active_slot) (CajaWindowInfo *window);
+ CajaWindowSlotInfo * (* get_extra_slot) (CajaWindowInfo *window);
+
+ gboolean (* get_initiated_unmount) (CajaWindowInfo *window);
+ void (* set_initiated_unmount) (CajaWindowInfo *window,
+ gboolean initiated_unmount);
+
+ void (* view_visible) (CajaWindowInfo *window,
+ CajaView *view);
+ void (* close_window) (CajaWindowInfo *window);
+ GtkUIManager * (* get_ui_manager) (CajaWindowInfo *window);
+ };
+
+ GType caja_window_info_get_type (void);
+ void caja_window_info_report_load_underway (CajaWindowInfo *window,
+ CajaView *view);
+ void caja_window_info_report_load_complete (CajaWindowInfo *window,
+ CajaView *view);
+ void caja_window_info_report_view_failed (CajaWindowInfo *window,
+ CajaView *view);
+ void caja_window_info_report_selection_changed (CajaWindowInfo *window);
+ CajaWindowSlotInfo * caja_window_info_get_active_slot (CajaWindowInfo *window);
+ CajaWindowSlotInfo * caja_window_info_get_extra_slot (CajaWindowInfo *window);
+ void caja_window_info_view_visible (CajaWindowInfo *window,
+ CajaView *view);
+ void caja_window_info_close (CajaWindowInfo *window);
+ void caja_window_info_push_status (CajaWindowInfo *window,
+ const char *status);
+ CajaWindowType caja_window_info_get_window_type (CajaWindowInfo *window);
+ char * caja_window_info_get_title (CajaWindowInfo *window);
+ GList * caja_window_info_get_history (CajaWindowInfo *window);
+ char * caja_window_info_get_current_location (CajaWindowInfo *window);
+ int caja_window_info_get_selection_count (CajaWindowInfo *window);
+ GList * caja_window_info_get_selection (CajaWindowInfo *window);
+ CajaWindowShowHiddenFilesMode caja_window_info_get_hidden_files_mode (CajaWindowInfo *window);
+ void caja_window_info_set_hidden_files_mode (CajaWindowInfo *window,
+ CajaWindowShowHiddenFilesMode mode);
+ gboolean caja_window_info_get_initiated_unmount (CajaWindowInfo *window);
+ void caja_window_info_set_initiated_unmount (CajaWindowInfo *window,
+ gboolean initiated_unmount);
+ GtkUIManager * caja_window_info_get_ui_manager (CajaWindowInfo *window);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* CAJA_WINDOW_INFO_H */