diff options
Diffstat (limited to 'components')
-rw-r--r-- | components/tree/Makefile.am | 20 | ||||
-rw-r--r-- | components/tree/nautilus-tree-expansion-state.c | 91 | ||||
-rw-r--r-- | components/tree/nautilus-tree-expansion-state.h | 70 |
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 */ + |