Commit 54aeb283 authored by Rebecca Schulman's avatar Rebecca Schulman Committed by Rebecca Schulman

Fixed bug #99: Implemented copy, paste, clear, and cut for text Added new

2000-04-26  Rebecca Schulman <rebecka@eazel.com>

	Fixed bug #99:  Implemented copy, paste, clear, and cut for text
	Added new files nautilus-clipboard.c,h which contains clipboard
	functionality.  All components with text widgets should use this
	code.  It can just be copied from any existing sample code
	(see ntl-notes.c in the notes component)
	The frame cut, copy and paste stuff is now happy when there is a
	widget in focus.

	Added
	* libnautilus/nautilus-clipboard.c
	* libnautilus/nautilus-clipboard.h

	Modified
	* src/nautilus-window-menus.c  (turned on clear, fixed up callbacks for cut, copy, and
	                                paste buttons)
	* components/notes/ntl-notes.c (Clipboard activated notes text box)
	* components/websearch/ntl-web-search.c (Clipboard activated the search box)
parent 27acf68f
2000-04-26 Rebecca Schulman <rebecka@eazel.com>
Fixed bug #99: Implemented copy, paste, clear, and cut for text
Added new files nautilus-clipboard.c,h which contains clipboard
functionality. All components with text widgets should use this
code. It can just be copied from any existing sample code
(see ntl-notes.c in the notes component)
The frame cut, copy and paste stuff is now happy when there is a
widget in focus.
Added
* libnautilus/nautilus-clipboard.c
* libnautilus/nautilus-clipboard.h
Modified
* src/nautilus-window-menus.c (turned on clear, fixed up callbacks for cut, copy, and
paste buttons)
* components/notes/ntl-notes.c (Clipboard activated notes text box)
* components/websearch/ntl-web-search.c (Clipboard activated the search box)
2000-04-26 John Sullivan <sullivan@eazel.com>
More FIXME-to-bug work.
......@@ -80,6 +100,7 @@
Wrote bug reports for all FIXMEs in these files. Down to 90
in Nautilus with no bug report.
>>>>>>> 1.133
2000-04-26 Ramiro Estrugo <ramiro@eazel.com>
* doc/nautilus.faq: Added faq.
......@@ -113,6 +134,7 @@
(nautilus_directory_notify_files_moved):
Updated bug numbers on FIXMEs in here.
>>>>>>> 1.127
2000-04-26 John Sullivan <sullivan@eazel.com>
More FIXME-to-bug work.
......@@ -456,6 +478,7 @@
gnet and large chunks of the current xml parsing come from his work on
the Helix Code install/updater.
>>>>>>> 1.123
2000-04-25 John Sullivan <sullivan@eazel.com>
Fixed part of bug 556 (nautilus_file_can_rename returns
......@@ -966,6 +989,7 @@
* configure.in (ALL_LINGUAS): Added Danish language
>>>>>>> 1.102
2000-04-19 Shane Culpepper <pepper@eazel.com>
* components/services/install/eazel-install-lib-xml.c
......@@ -1128,6 +1152,7 @@
components/mozilla/nautilus-mozilla-content-view.c: Dont use
code from libnautilus-extensions. Fix struct tag names.
>>>>>>> 1.69
2000-04-18 Ramiro Estrugo <ramiro@eazel.com>
* nautilus-widgets/nautilus-preferences.c,
......
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
/*
......@@ -37,9 +38,10 @@
#include <libnautilus-extensions/nautilus-background.h>
#include <libnautilus-extensions/nautilus-file.h>
#include <libnautilus-extensions/nautilus-debug.h>
#include <libnautilus/nautilus-clipboard.h>
#define NOTES_DEFAULT_BACKGROUND_COLOR "rgb:FFFF/FFFF/BBBB"
typedef struct {
NautilusViewFrame *view;
GtkWidget *note_text_field;
......@@ -90,10 +92,9 @@ notes_load_metainfo (Notes *notes)
if (notes->file == NULL) {
return;
}
keys = g_list_prepend (NULL, NAUTILUS_METADATA_KEY_ANNOTATION);
keys = g_list_prepend (NULL, NAUTILUS_METADATA_KEY_ANNOTATION);
nautilus_file_call_when_ready (notes->file, keys, finish_loading_note, notes);
g_list_free (keys);
g_list_free (keys);
}
/* save the metainfo corresponding to the current uri, if any, into the text field */
......@@ -125,6 +126,9 @@ notes_notify_location_change (NautilusViewFrame *view,
}
}
static void
do_destroy (GtkObject *obj, Notes *notes)
{
......@@ -144,9 +148,9 @@ make_notes_view (BonoboGenericFactory *Factory, const char *goad_id, gpointer cl
GtkWidget *vbox;
Notes *notes;
NautilusBackground *background;
g_return_val_if_fail (strcmp (goad_id, "OAFIID:ntl_notes_view:7f04c3cb-df79-4b9a-a577-38b19ccd4185") == 0, NULL);
NautilusClipboardInfo *info;
g_return_val_if_fail (strcmp (goad_id, "OAFIID:ntl_notes_view:7f04c3cb-df79-4b9a-a577-38b19ccd4185") == 0, NULL);
notes = g_new0 (Notes, 1);
notes->uri = g_strdup ("");
......@@ -167,17 +171,29 @@ make_notes_view (BonoboGenericFactory *Factory, const char *goad_id, gpointer cl
/* Create CORBA object. */
notes->view = NAUTILUS_VIEW_FRAME (nautilus_meta_view_frame_new (vbox));
gtk_signal_connect (GTK_OBJECT (notes->view), "destroy", do_destroy, notes);
notes_object_count++;
/* handle events */
gtk_signal_connect (GTK_OBJECT (notes->view), "notify_location_change",
notes_notify_location_change, notes);
/* handle selections */
info = nautilus_clipboard_info_new ();
nautilus_clipboard_info_set_view_frame (info, notes->view);
nautilus_clipboard_info_set_clipboard_owner (info, GTK_WIDGET (notes->note_text_field));
nautilus_clipboard_info_set_component_name (info, "Notes");
gtk_signal_connect (GTK_OBJECT (notes->note_text_field), "focus_in_event",
GTK_SIGNAL_FUNC (nautilus_component_merge_bonobo_items_cb), info);
gtk_signal_connect (GTK_OBJECT (notes->note_text_field), "focus_out_event",
GTK_SIGNAL_FUNC (nautilus_component_unmerge_bonobo_items_cb), info);
gtk_signal_connect (GTK_OBJECT (notes->view), "destroy", nautilus_clipboard_info_destroy, info);
/* set description */
nautilus_meta_view_frame_set_label (NAUTILUS_META_VIEW_FRAME (notes->view),
_("Notes"));
return BONOBO_OBJECT (notes->view);
}
int
......
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
/*
......@@ -37,9 +38,10 @@
#include <libnautilus-extensions/nautilus-background.h>
#include <libnautilus-extensions/nautilus-file.h>
#include <libnautilus-extensions/nautilus-debug.h>
#include <libnautilus/nautilus-clipboard.h>
#define NOTES_DEFAULT_BACKGROUND_COLOR "rgb:FFFF/FFFF/BBBB"
typedef struct {
NautilusViewFrame *view;
GtkWidget *note_text_field;
......@@ -90,10 +92,9 @@ notes_load_metainfo (Notes *notes)
if (notes->file == NULL) {
return;
}
keys = g_list_prepend (NULL, NAUTILUS_METADATA_KEY_ANNOTATION);
keys = g_list_prepend (NULL, NAUTILUS_METADATA_KEY_ANNOTATION);
nautilus_file_call_when_ready (notes->file, keys, finish_loading_note, notes);
g_list_free (keys);
g_list_free (keys);
}
/* save the metainfo corresponding to the current uri, if any, into the text field */
......@@ -125,6 +126,9 @@ notes_notify_location_change (NautilusViewFrame *view,
}
}
static void
do_destroy (GtkObject *obj, Notes *notes)
{
......@@ -144,9 +148,9 @@ make_notes_view (BonoboGenericFactory *Factory, const char *goad_id, gpointer cl
GtkWidget *vbox;
Notes *notes;
NautilusBackground *background;
g_return_val_if_fail (strcmp (goad_id, "OAFIID:ntl_notes_view:7f04c3cb-df79-4b9a-a577-38b19ccd4185") == 0, NULL);
NautilusClipboardInfo *info;
g_return_val_if_fail (strcmp (goad_id, "OAFIID:ntl_notes_view:7f04c3cb-df79-4b9a-a577-38b19ccd4185") == 0, NULL);
notes = g_new0 (Notes, 1);
notes->uri = g_strdup ("");
......@@ -167,17 +171,29 @@ make_notes_view (BonoboGenericFactory *Factory, const char *goad_id, gpointer cl
/* Create CORBA object. */
notes->view = NAUTILUS_VIEW_FRAME (nautilus_meta_view_frame_new (vbox));
gtk_signal_connect (GTK_OBJECT (notes->view), "destroy", do_destroy, notes);
notes_object_count++;
/* handle events */
gtk_signal_connect (GTK_OBJECT (notes->view), "notify_location_change",
notes_notify_location_change, notes);
/* handle selections */
info = nautilus_clipboard_info_new ();
nautilus_clipboard_info_set_view_frame (info, notes->view);
nautilus_clipboard_info_set_clipboard_owner (info, GTK_WIDGET (notes->note_text_field));
nautilus_clipboard_info_set_component_name (info, "Notes");
gtk_signal_connect (GTK_OBJECT (notes->note_text_field), "focus_in_event",
GTK_SIGNAL_FUNC (nautilus_component_merge_bonobo_items_cb), info);
gtk_signal_connect (GTK_OBJECT (notes->note_text_field), "focus_out_event",
GTK_SIGNAL_FUNC (nautilus_component_unmerge_bonobo_items_cb), info);
gtk_signal_connect (GTK_OBJECT (notes->view), "destroy", nautilus_clipboard_info_destroy, info);
/* set description */
nautilus_meta_view_frame_set_label (NAUTILUS_META_VIEW_FRAME (notes->view),
_("Notes"));
return BONOBO_OBJECT (notes->view);
}
int
......
......@@ -30,6 +30,7 @@
#include <liboaf/liboaf.h>
#include <limits.h>
#include <ctype.h>
#include <libnautilus/nautilus-clipboard.h>
typedef struct {
char *name, *url_head, *url_tail;
......@@ -165,6 +166,7 @@ make_obj(BonoboGenericFactory *Factory, const char *goad_id, gpointer closure)
{
GtkWidget *vbox;
WebSearchView *hview;
NautilusClipboardInfo *info;
g_return_val_if_fail(!strcmp(goad_id, "OAFIID:ntl_websearch_view:8216e1e4-6b01-4a28-82d9-5df30ed7d044"), NULL);
......@@ -218,7 +220,18 @@ make_obj(BonoboGenericFactory *Factory, const char *goad_id, gpointer closure)
/* handle events */
gtk_signal_connect(GTK_OBJECT(hview->view), "notify_location_change", web_search_notify_location_change, hview);
/* handle selections */
info = nautilus_clipboard_info_new ();
nautilus_clipboard_info_set_view_frame (info, hview->view);
nautilus_clipboard_info_set_clipboard_owner (info, GTK_WIDGET (hview->ent_params));
nautilus_clipboard_info_set_component_name (info, "WebSearch");
gtk_signal_connect (GTK_OBJECT (hview->ent_params), "focus_in_event",
GTK_SIGNAL_FUNC (nautilus_component_merge_bonobo_items_cb), info);
gtk_signal_connect (GTK_OBJECT (hview->ent_params), "focus_out_event",
GTK_SIGNAL_FUNC (nautilus_component_unmerge_bonobo_items_cb), info);
gtk_signal_connect (GTK_OBJECT (hview->ent_params), "destroy", nautilus_clipboard_info_destroy, info);
/* set description */
nautilus_meta_view_frame_set_label (NAUTILUS_META_VIEW_FRAME (hview->view),
_("WebSearch"));
......
......@@ -37,6 +37,7 @@ libnautilusinclude_HEADERS= \
nautilus-content-view-frame.h \
nautilus-meta-view-frame.h \
nautilus-view-frame.h \
nautilus-clipboard.h \
$(NULL)
libnautilus_la_SOURCES= \
......@@ -45,6 +46,7 @@ libnautilus_la_SOURCES= \
nautilus-content-view-frame.c \
nautilus-meta-view-frame.c \
nautilus-view-frame.c \
nautilus-clipboard.c \
$(NULL)
$(nautilus_view_component_idl_sources): nautilus_view_component_idl_stamp
......
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/* nautilus-clipboard.c
* Nautilus Clipboard support. For now, routines to support component cut
* and paste.
*
* Copyright (C) 1999, 2000 Free Software Foundaton
* Copyright (C) 2000 Eazel, 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: Rebecca Schulman <rebecka@eazel.com>
*/
#include<config.h>
#include<gtk/gtksignal.h>
#include<gtk/gtkwidget.h>
#include<gtk/gtkeditable.h>
#include<gtk/gtkscrolledwindow.h>
#include<gnome.h>
#include<bonobo/bonobo-control.h>
#include "nautilus-clipboard.h"
#define MENU_PATH_CUT "/Edit/Cut"
#define MENU_PATH_COPY "/Edit/Copy"
#define MENU_PATH_PASTE "/Edit/Paste"
#define MENU_PATH_CLEAR "/Edit/Clear"
#include <libgnome/gnome-i18n.h>
#include <libgnomeui/gnome-stock.h>
#include <libnautilus-extensions/nautilus-gtk-macros.h>
/* forward declarations */
static void nautilus_clipboard_info_initialize_class (NautilusClipboardInfoClass *klass);
void nautilus_clipboard_info_initialize (NautilusClipboardInfo *info);
void nautilus_clipboard_info_destroy (NautilusClipboardInfo *info);
void nautilus_clipboard_info_destroy_cb (GtkObject *object, gpointer user_data);
NAUTILUS_DEFINE_CLASS_BOILERPLATE (NautilusClipboardInfo, nautilus_clipboard_info, GTK_TYPE_SCROLLED_WINDOW)
NautilusClipboardInfo* nautilus_clipboard_info_new (void);
static BonoboControl * nautilus_clipboard_info_get_bonobo_control (NautilusClipboardInfo *info);
/* static BonoboUIHandler* nautilus_clipboard_info_get_bonobo_ui_handler (NautilusClipboardInfo *info); */
static void nautilus_component_bonobo_menu_cut_cb (BonoboUIHandler *uihandler,
gpointer data, const char *path);
static void nautilus_component_bonobo_menu_copy_cb (BonoboUIHandler *uihandler,
gpointer data, const char *path);
static void nautilus_component_bonobo_menu_paste_cb (BonoboUIHandler *uihandler,
gpointer data, const char *path);
static void nautilus_component_bonobo_menu_clear_cb (BonoboUIHandler *uihandler,
gpointer data, const char *path);
struct NautilusClipboardDetails {
char *component_name;
GtkWidget *clipboard_owner;
NautilusViewFrame *view;
};
NautilusClipboardInfo*
nautilus_clipboard_info_new ()
{
return NAUTILUS_CLIPBOARD_INFO (gtk_type_new (nautilus_clipboard_info_get_type ()));
}
void
nautilus_clipboard_info_initialize (NautilusClipboardInfo *info)
{
info->details = g_new0 (NautilusClipboardDetails, 1);
info->details->component_name = NULL;
info->details->clipboard_owner = NULL;
info->details->view = NULL;
}
static void
nautilus_clipboard_info_initialize_class (NautilusClipboardInfoClass *klass)
{
klass->destroy = nautilus_clipboard_info_destroy;
}
void
nautilus_clipboard_info_destroy (NautilusClipboardInfo *info)
{
bonobo_object_unref (BONOBO_OBJECT (info->details->view));
g_free (info->details->component_name);
gtk_widget_unref (info->details->clipboard_owner);
g_free (info->details);
NAUTILUS_CALL_PARENT_CLASS (GTK_OBJECT_CLASS, destroy, (GTK_OBJECT (info)));
}
void
nautilus_clipboard_info_destroy_cb (GtkObject *object, gpointer user_data)
{
NautilusClipboardInfo *view;
g_assert (NAUTILUS_IS_CLIPBOARD_INFO (user_data));
view = NAUTILUS_CLIPBOARD_INFO (user_data);
nautilus_clipboard_info_destroy (view);
}
void
nautilus_clipboard_info_set_component_name (NautilusClipboardInfo *info, char *component_name)
{
info->details->component_name = g_strdup(component_name);
}
char*
nautilus_clipboard_info_get_component_name (NautilusClipboardInfo *info)
{
return info->details->component_name;
}
void
nautilus_clipboard_info_set_clipboard_owner (NautilusClipboardInfo *info, GtkWidget *clipboard_owner)
{
g_assert (GTK_IS_EDITABLE (clipboard_owner));
info->details->clipboard_owner = clipboard_owner;
gtk_widget_ref (clipboard_owner);
}
GtkWidget*
nautilus_clipboard_info_get_clipboard_owner (NautilusClipboardInfo *info)
{
return info->details->clipboard_owner;
}
void
nautilus_clipboard_info_set_view_frame (NautilusClipboardInfo *info, NautilusViewFrame *view)
{
info->details->view = view;
bonobo_object_ref (BONOBO_OBJECT (view));
}
NautilusViewFrame*
nautilus_clipboard_info_get_view_frame (NautilusClipboardInfo *info)
{
return info->details->view;
}
/*
static BonoboUIHandler *
nautilus_clipboard_info_get_bonobo_ui_handler (NautilusClipboardInfo *info)
{
return bonobo_control_get_ui_handler (nautilus_clipboard_info_get_bonobo_control (info));
}
*/
static BonoboControl *
nautilus_clipboard_info_get_bonobo_control (NautilusClipboardInfo *info)
{
return BONOBO_CONTROL (nautilus_view_frame_get_bonobo_control (info->details->view));
}
void
nautilus_component_merge_bonobo_items_cb (GtkWidget *widget, GdkEventAny *event, gpointer user_data)
{
NautilusClipboardInfo *info;
BonoboUIHandler *local_ui_handler;
g_assert (NAUTILUS_IS_CLIPBOARD_INFO(user_data));
info = NAUTILUS_CLIPBOARD_INFO(user_data);
g_assert (BONOBO_IS_CONTROL (nautilus_clipboard_info_get_bonobo_control (info)));
local_ui_handler = bonobo_control_get_ui_handler (nautilus_clipboard_info_get_bonobo_control (info));
bonobo_ui_handler_set_container (local_ui_handler,
bonobo_control_get_remote_ui_handler (nautilus_clipboard_info_get_bonobo_control (info)));
bonobo_ui_handler_menu_new_item (local_ui_handler,
MENU_PATH_CUT,
_("_Cut"),
_("Remove selected text from selection"),
bonobo_ui_handler_menu_get_pos (local_ui_handler , MENU_PATH_CUT),
BONOBO_UI_HANDLER_PIXMAP_NONE,
NULL,
0,
0,
nautilus_component_bonobo_menu_cut_cb,
info);
bonobo_ui_handler_menu_new_item (local_ui_handler,
MENU_PATH_COPY,
_("_Copy"),
_("Copy selected text to the clipboard"),
bonobo_ui_handler_menu_get_pos (local_ui_handler , MENU_PATH_COPY),
BONOBO_UI_HANDLER_PIXMAP_NONE,
NULL,
0,
0,
nautilus_component_bonobo_menu_copy_cb,
info);
bonobo_ui_handler_menu_new_item (local_ui_handler,
MENU_PATH_PASTE,
_("_Paste"),
_("Paste text from clipboard into text box"),
bonobo_ui_handler_menu_get_pos (local_ui_handler , MENU_PATH_PASTE),
BONOBO_UI_HANDLER_PIXMAP_NONE,
NULL,
0,
0,
nautilus_component_bonobo_menu_paste_cb,
info);
bonobo_ui_handler_menu_new_item (local_ui_handler,
MENU_PATH_CLEAR,
_("_Clear"),
_("Clear the current selection"),
bonobo_ui_handler_menu_get_pos (local_ui_handler , MENU_PATH_CLEAR),
BONOBO_UI_HANDLER_PIXMAP_NONE,
NULL,
0,
0,
nautilus_component_bonobo_menu_clear_cb,
info);
}
void
nautilus_component_unmerge_bonobo_items_cb (GtkWidget *widget, GdkEventAny *event, gpointer user_data)
{
NautilusClipboardInfo *info;
BonoboUIHandler *local_ui_handler;
g_assert (NAUTILUS_IS_CLIPBOARD_INFO(user_data));
info = NAUTILUS_CLIPBOARD_INFO(user_data);
g_assert (BONOBO_IS_CONTROL (nautilus_clipboard_info_get_bonobo_control (info)));
local_ui_handler = bonobo_control_get_ui_handler (nautilus_clipboard_info_get_bonobo_control (info));
bonobo_ui_handler_unset_container (local_ui_handler);
}
static void
nautilus_component_bonobo_menu_cut_cb (BonoboUIHandler *uihandler,
gpointer data, const char *path)
{
NautilusClipboardInfo *info;
g_assert (NAUTILUS_IS_CLIPBOARD_INFO (data));
info = NAUTILUS_CLIPBOARD_INFO (data);
g_assert (GTK_IS_EDITABLE (nautilus_clipboard_info_get_clipboard_owner (info)));
gtk_editable_cut_clipboard (GTK_EDITABLE (nautilus_clipboard_info_get_clipboard_owner (info)));
}
static void
nautilus_component_bonobo_menu_copy_cb (BonoboUIHandler *uihandler,
gpointer data, const char *path)
{
NautilusClipboardInfo *info;
g_assert (NAUTILUS_IS_CLIPBOARD_INFO (data));
info = NAUTILUS_CLIPBOARD_INFO (data);
g_assert (GTK_IS_EDITABLE (nautilus_clipboard_info_get_clipboard_owner (info)));
gtk_editable_copy_clipboard (GTK_EDITABLE (nautilus_clipboard_info_get_clipboard_owner (info)));
}
static void
nautilus_component_bonobo_menu_paste_cb (BonoboUIHandler *uihandler,
gpointer data, const char *path)
{
NautilusClipboardInfo *info;
g_assert (NAUTILUS_IS_CLIPBOARD_INFO (data));
info = NAUTILUS_CLIPBOARD_INFO (data);
g_assert (GTK_IS_EDITABLE (nautilus_clipboard_info_get_clipboard_owner (info)));
gtk_editable_paste_clipboard (GTK_EDITABLE (nautilus_clipboard_info_get_clipboard_owner (info)));
}
static void
nautilus_component_bonobo_menu_clear_cb (BonoboUIHandler *uihandler,
gpointer data, const char *path)
{
NautilusClipboardInfo *info;
g_assert (NAUTILUS_IS_CLIPBOARD_INFO (data));
info = NAUTILUS_CLIPBOARD_INFO (data);
g_assert (GTK_IS_EDITABLE (nautilus_clipboard_info_get_clipboard_owner (info)));
/* A negative index deletes until the end of the string */
gtk_editable_delete_text (GTK_EDITABLE (nautilus_clipboard_info_get_clipboard_owner (info)),
0, -1);
}
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/* fm-directory-view.h
*
* Copyright (C) 1999, 2000 Free Software Foundaton
* Copyright (C) 2000 Eazel, 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: Rebecca Schulman <rebecka@eazel.com>
*/
#ifndef NAUTILUS_CLIPBOARD_INFO_H
#define NAUTILUS_CLIPBOARD_INFO_H
#include <gtk/gtkscrolledwindow.h>
#include <libgnome/gnome-i18n.h>
#include <libgnomeui/gnome-stock.h>
#include <libnautilus-extensions/nautilus-gtk-macros.h>
#include <libnautilus/nautilus-view-frame.h>
typedef struct NautilusClipboardInfo NautilusClipboardInfo;
typedef struct NautilusClipboardInfoClass NautilusClipboardInfoClass;