summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
Diffstat (limited to 'components')
-rw-r--r--components/tree/Makefile.am20
-rw-r--r--components/tree/nautilus-tree-expansion-state.c91
-rw-r--r--components/tree/nautilus-tree-expansion-state.h70
3 files changed, 172 insertions, 9 deletions
diff --git a/components/tree/Makefile.am b/components/tree/Makefile.am
index a6e0f654a..f2c3ca4b3 100644
--- a/components/tree/Makefile.am
+++ b/components/tree/Makefile.am
@@ -24,15 +24,17 @@ oaf_DATA = \
bin_PROGRAMS = \
nautilus-tree-view
-nautilus_tree_view_SOURCES = \
- nautilus-tree-view.h \
- nautilus-tree-view.c \
- nautilus-tree-model.h \
- nautilus-tree-model.c \
- nautilus-tree-node-private.h \
- nautilus-tree-node.h \
- nautilus-tree-node.c \
- main.c \
+nautilus_tree_view_SOURCES = \
+ nautilus-tree-view.h \
+ nautilus-tree-view.c \
+ nautilus-tree-model.h \
+ nautilus-tree-model.c \
+ nautilus-tree-node-private.h \
+ nautilus-tree-node.h \
+ nautilus-tree-node.c \
+ nautilus-tree-expansion-state.h \
+ nautilus-tree-expansion-state.c \
+ main.c \
$(NULL)
nautilus_tree_view_LDADD = \
diff --git a/components/tree/nautilus-tree-expansion-state.c b/components/tree/nautilus-tree-expansion-state.c
new file mode 100644
index 000000000..65cc9b48b
--- /dev/null
+++ b/components/tree/nautilus-tree-expansion-state.c
@@ -0,0 +1,91 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+
+/*
+ * 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: Maciej Stachowiak <mjs@eazel.com>
+ */
+
+/* nautilus-tree-expansion-state.c - class to track expansion state for the tree view */
+
+#include <config.h>
+#include "nautilus-tree-expansion-state.h"
+
+#include <libnautilus-extensions/nautilus-gtk-macros.h>
+
+
+
+
+struct NautilusTreeExpansionStateDetails {
+};
+
+
+
+
+static void nautilus_tree_expansion_state_destroy (GtkObject *object);
+static void nautilus_tree_expansion_state_initialize (gpointer object,
+ gpointer klass);
+static void nautilus_tree_expansion_state_initialize_class (gpointer klass);
+
+NAUTILUS_DEFINE_CLASS_BOILERPLATE (NautilusTreeExpansionState, nautilus_tree_expansion_state, GTK_TYPE_OBJECT)
+
+
+
+
+/* infrastructure stuff */
+
+static void
+nautilus_tree_expansion_state_initialize_class (gpointer klass)
+{
+ GtkObjectClass *object_class;
+
+ object_class = GTK_OBJECT_CLASS (klass);
+
+ object_class->destroy = nautilus_tree_expansion_state_destroy;
+
+}
+
+static void
+nautilus_tree_expansion_state_initialize (gpointer object, gpointer klass)
+{
+ NautilusTreeExpansionState *expansion_state;
+
+ expansion_state = NAUTILUS_TREE_EXPANSION_STATE (object);
+
+ expansion_state->details = g_new0 (NautilusTreeExpansionStateDetails, 1);
+}
+
+static void
+nautilus_tree_expansion_state_destroy (GtkObject *object)
+{
+ NautilusTreeExpansionState *expansion_state;
+
+ expansion_state = (NautilusTreeExpansionState *) object;
+
+ g_free (expansion_state->details);
+
+ NAUTILUS_CALL_PARENT_CLASS (GTK_OBJECT_CLASS, destroy, (object));
+}
+
+
+NautilusTreeExpansionState *
+nautilus_tree_expansion_state_new ()
+{
+ return NAUTILUS_TREE_EXPANSION_STATE (gtk_type_new (NAUTILUS_TYPE_TREE_EXPANSION_STATE));
+}
+
diff --git a/components/tree/nautilus-tree-expansion-state.h b/components/tree/nautilus-tree-expansion-state.h
new file mode 100644
index 000000000..1fe537901
--- /dev/null
+++ b/components/tree/nautilus-tree-expansion-state.h
@@ -0,0 +1,70 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+
+/*
+ * 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: Maciej Stachowiak <mjs@eazel.com>
+ */
+
+/* nautilus-tree-expansion-state.h - Class to track what nodes are
+ expanded for the tree view */
+
+#ifndef NAUTILUS_TREE_EXPANSION_STATE_H
+#define NAUTILUS_TREE_EXPANSION_STATE_H
+
+#include <gtk/gtkobject.h>
+
+typedef struct NautilusTreeExpansionState NautilusTreeExpansionState;
+typedef struct NautilusTreeExpansionStateClass NautilusTreeExpansionStateClass;
+
+#define NAUTILUS_TYPE_TREE_EXPANSION_STATE (nautilus_tree_expansion_state_get_type ())
+#define NAUTILUS_TREE_EXPANSION_STATE(obj) (GTK_CHECK_CAST ((obj), NAUTILUS_TYPE_TREE_EXPANSION_STATE, NautilusTreeExpansionState))
+#define NAUTILUS_TREE_EXPANSION_STATE_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_TREE_EXPANSION_STATE, NautilusTreeExpansionStateClass))
+#define NAUTILUS_IS_TREE_EXPANSION_STATE(obj) (GTK_CHECK_TYPE ((obj), NAUTILUS_TYPE_TREE_EXPANSION_STATE))
+#define NAUTILUS_IS_TREE_EXPANSION_STATE_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_TREE_EXPANSION_STATE))
+
+typedef struct NautilusTreeExpansionStateDetails NautilusTreeExpansionStateDetails;
+
+
+struct NautilusTreeExpansionState {
+ GtkObject parent;
+ NautilusTreeExpansionStateDetails *details;
+};
+
+struct NautilusTreeExpansionStateClass {
+ GtkObjectClass parent_class;
+};
+
+
+
+GtkType nautilus_tree_expansion_state_get_type (void);
+
+NautilusTreeExpansionState *nautilus_tree_expansion_state_new (void);
+
+gboolean nautilus_tree_expansion_state_is_node_expanded (const char *uri);
+void nautilus_tree_expansion_state_expand_node (const char *uri);
+void nautilus_tree_expansion_state_collapse_node (const char *uri);
+void nautilus_tree_expansion_state_remove_node (const char *uri);
+
+void nautilus_tree_expansion_state_save (void);
+
+
+
+
+#endif /* NAUTILUS_TREE_EXPANSION_STATE_H */
+