Commit Graph

33 Commits

Author SHA1 Message Date
9e5420ee9d Move the correct offset when memmoving. Patch provided by Richard Hult
2000-12-05  JP Rosevear  <jpr@helixcode.com>

	* e-tree-model.c (e_tree_model_node_remove): Move the correct
	offset when memmoving.  Patch provided by Richard Hult
	<rhult@hem.passagen.se>.

svn path=/trunk/; revision=6795
2000-12-05 15:58:04 +00:00
f300ac0095 Updated version number.
2000-11-13  Christopher James Lahey  <clahey@helixcode.com>

	* configure.in: Updated version number.

	* gal/e-table/e-tree-model.c, gal/e-table/e-tree-model.h: Added
	freeze and thaw functions.

	* gal/menus/gal-define-views-dialog.c: Fixed some warnings.

svn path=/trunk/; revision=6563
2000-11-13 19:27:24 +00:00
d9a3710f52 Since we insert at the parent->child position, we need to account for
2000-11-03  Not Zed  <NotZed@HelixCode.com>

        * e-tree-model.c (e_tree_model_node_insert): Since we insert at
        the parent->child position, we need to account for expanded nodes
        above this node to properly calculate the absolute row position of
        the node.
        (e_tree_model_node_insert): If we're inserting at the end of this
        node, then we just use the position directly.
        (e_tree_model_node_remove): Completely rewritten.  Now we delete
        all nodes at once, which should be >> faster, unfortunately still
        have to signal each removal, which is >> SLOW :(  Its still about
        2-3x faster than it was (for 25K nodes).
        (child_free): Free all data/subnodes of a given path, no
        unlinking.
        (e_tree_model_node_remove): If we are removing a lot of nodes
        [>1000 or >1/4 total nodes], then use model_changed, rather then
        removing each node.  Yay.  Now its about 500x faster than it was,
        for 25K nodes.
        (etree_pre_change): Signal handler, so we can find out when we are
        in a pre-change state.
        (etree_changed): Likewise to find when we have finished.
        (e_tree_model_construct): Link to the model*changed signals so we
        know when we are in pre/changed state.
        (e_tree_model_node_insert): Only perform a row_inserted if not in
        pre_change state.  Another significant speed improvement (200-500%)
        on big trees.
        (e_tree_model_node_remove): Do not emit row_deleted (or
        model_changed), if we are in the pre_change state.
        (add_visible_descendents_to_array): Likewise for row_inserted.
        (e_tree_model_node_sort): And here too, for consistency.

svn path=/trunk/; revision=6363
2000-11-03 09:16:41 +00:00
89beb886b9 Updated these unused glade files to better match the versions in the code.
2000-11-02  Christopher James Lahey  <clahey@helixcode.com>

	* e-table-config.glade, e-table-config.glade.h: Updated these
	unused glade files to better match the versions in the code.

	* e-table.c, e-table.h: Added e_table_selected_count and
	"selection_change" signal.

	* e-tree-model.c: Fixed an out of order

svn path=/trunk/; revision=6354
2000-11-02 17:28:16 +00:00
b234a3141b If we are inserting into the root level, we dont have to search the whole
2000-10-27  Not Zed  <NotZed@HelixCode.com>

        * e-tree-model.c (e_tree_model_node_insert): If we are inserting
        into the root level, we dont have to search the whole array for a
        parent node we'll never find.

svn path=/trunk/; revision=6218
2000-10-27 02:31:08 +00:00
7a6e9be357 remove the save_id here, so we don't save state for nodes that no longer
2000-10-25  Chris Toshok  <toshok@helixcode.com>

	* e-tree-model.c (e_tree_model_node_remove): remove the save_id
	here, so we don't save state for nodes that no longer exist.
	(etree_destroy): remove the foreach, since all the save_id's
	should have been removed by now (don't destroy a tree without
	destroying the root node.)  also, make sure to call
	g_hash_table_destroy.

svn path=/trunk/; revision=6202
2000-10-26 06:48:09 +00:00
606c6276a8 make ETreeModel opaque, and switch from using g_new0 and g_free for
2000-10-24  Chris Toshok  <toshok@helixcode.com>

	* e-tree-model.c: make ETreeModel opaque, and switch from using
	g_new0 and g_free for ETreePath's to using g_mem_chunk routines.
	(e_tree_model_node_remove): free the path's save_id.  *
	(e_tree_model_set_expanded_default): add method to add default
	expanded status for parent nodes.
	(etree_set_expanded_recurse): make this more efficient.
	e-tree-model.h: make ETreeModel opaque.  add prototype for
	e_tree_model_set_expanded_default.

svn path=/trunk/; revision=6156
2000-10-25 00:09:18 +00:00
40effd4a8a get the next child before traversing/calling func.
2000-10-15  Chris Toshok  <toshok@helixcode.com>

	* e-tree-model.c (e_tree_model_node_traverse): get the next child
	before traversing/calling func.

svn path=/trunk/; revision=5937
2000-10-15 23:46:23 +00:00
ec30090929 get rid of ENode type, as everything in it is now in ETreePath, and add
2000-10-15  Chris Toshok  <toshok@helixcode.com>

	* e-tree-model.c: get rid of ENode type, as everything in it is
	now in ETreePath, and add parent/sibling/child pointers to
	ETreePath.  everywhere where GNode/ENode were used, we just use
	ETreePath now.
	(e_tree_path_depth): new function.
	(e_tree_path_insert): new function.
	(e_tree_path_unlink): new function.
	(e_tree_model_node_traverse): new function.
	(etree_get_first_child): new virtual function impl.
	(etree_get_last_child): same.
	(e_tree_model_class_init): fill in function pointers for
	get_first_child/get_last_child.
	(e_tree_model_node_get_first_child): new function.
	(e_tree_model_node_get_last_child): new function.
	(e_tree_model_node_depth): g_node_depth -> e_tree_path_depth.
	(e_tree_model_node_insert): modify to use ETreePath and new
	e_tree_path functions.  Prepends and appends are now both constant
	time.
	(child_remove): modify for e_tree_model_node_traverse.
	(e_tree_model_node_remove): same, and use e_tree_path functions.
	(e_tree_model_node_insert_before): add a loop here to figure out
	the position, since it's the only place we care about the child
	position.
	(e_tree_model_node_sort): rework to accomodate new e_tree_path
	functions, and put the e_tree_model_node_set_expanded calls in a
	separate loop after all the children have been added.

	* e-tree-model.h: add prototypes and virtual functions for more
	tree traversal operations (get_first_child, get_last_child), as
	well as a new function to traverse depth first the descendents of
	a node (e_tree_model_node_traverse), much like g_node_traverse
	(G_IN_ORDER).  Also, ETreePath is an opaque type now, and is not a
	GNode.

svn path=/trunk/; revision=5932
2000-10-15 23:17:56 +00:00
e16e25daa7 Changed these to match the new ETable system.
2000-10-11  Christopher James Lahey  <clahey@helixcode.com>

	* tests/test-tree-1.c, tests/test-tree-2.c, tests/test-tree-3.c:
	Changed these to match the new ETable system.

	* gal/Makefile.am: Added e-table-column-specification.lo,
	e-table-extras.lo, e-table-specification.lo, and e-table-state.lo.

From gal/e-table/ChangeLog:

2000-10-11  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Added e-table-column-specification.c,
	e-table-column-specification.h, e-table-extras.c,
	e-table-extras.h, e-table-specification.c,
	e-table-specification.h, e-table-state.c, and e-table-state.h.
	Removed some duplicated .h files.

	* e-cell-tree.c: Ref, sink, and unref the subcell instead of destroying
	it when done.

	* e-table-column-specification.c, e-table-column-specification.h:
	New class which describes a column without having a table get
	instantiated.

	* e-table-config.c: Changed get_specification to get_state to get
	this to compile.

	* e-table-defines.h, e-table-item.h: Moved the definition of
	ETableCursorMode from e-table-item.h to e-table-defines.h.

	* e-table-extras.c, e-table-extras.h: New class which acts as a
	set of 3 hash tables.  All from char * and to alternately, ECells,
	GCompareFuncs, and GdkPxibufs.

	* e-table-scrolled.c, e-table-scrolled.h: Changed this to match
	the new ETable function declarations.

	* e-table-sort-info.c, e-table-sort-info.h: Added functions for
	saving to and loading from xml.

	* e-table-specification.c, e-table-specification.h: New class
	which describes a table without having to instantiate it.

	* e-table-state.c, e-table-state.h: New class which describes the
	state of a table without having to instantiate the table.

	* e-table.c, e-table.h: Changed this to accept both a state and a
	specification instead of just a specification.  You then save only
	the state.  The specification stays exactly the same.  Also, you
	no longer need to pass in an ETableHeader.  Most of the
	information contained in the ETableHeader are in the
	specification.  However you may need to translate some of the
	strings in the specification to objects.  If you need anything
	other than the builtin choices, you need to create an ETableExtras
	and pass it in.

	* e-tree-model.c: Removed an unused variable.

svn path=/trunk/; revision=5837
2000-10-11 08:16:37 +00:00
58eba683f8 Changed to take into account the sort group, if the table has one.x
2000-10-04  Not Zed  <NotZed@HelixCode.com>

        * e-table-sorted-variable.c (etsv_add): Changed to take into
        account the sort group, if the table has one.x
        (etsv_insert_idle): Clear the insert count if we hit an idle loop.
        (etsv_sort_idle): Reset the insert count if we perform a sort.
        (etsv_add): If we are adding a lot (>ETSV_INSERT_MAX) items,
        without hitting an idle loop, assume we're better off performing a
        sort instead.  Use another idle handler to reset the count.

2000-10-03  Not Zed  <NotZed@HelixCode.com>

        * e-table-sorted-variable.c (etsv_sort_by_group): Sort based on
        the sort_group stuff.

        * e-tree-model.c (e_tree_init): Setup the group sort info string.
        (etree_destroy): And free it.
        (build_sort_group): Build a string for this node.

2000-09-29  Not Zed  <NotZed@HelixCode.com>

        * e-cell-tree.c (e_cell_tree_get_node): Changed to take the source
        model, not the tree model.  The source model may be a subset, and
        it needs to remap the rows for us.
        (ect_draw):
        (ect_event):
        (ect_max_width):
        (ect_print): Changed callers.

        * e-table-sorted-variable.c (etsv_sort_subset):
        (etsv_sort_build_subset):
        (etsv_sort_free_subset): Functions to perfom grouping of sorts for
        sorts that have row_sort_group returning useful info.
        (etsv_sort): Use the complex sort routines if we need to.

        * e-table-model.c (e_table_model_row_sort_group): Return a sort-id
        for a given row.
        (e_table_model_has_sort_group): Return if the sort-id provides any
        useful information.

svn path=/trunk/; revision=5705
2000-10-04 15:51:35 +00:00
4dd58b9823 change/add prototypes and a typedef for ETreePathCompareFunc.
2000-10-02  Chris Toshok  <toshok@helixcode.com>

	* e-tree-model.h: change/add prototypes and a typedef for
	ETreePathCompareFunc.

	* e-tree-model.c (e_tree_model_node_set_compare_function): new
	function, used to set the comparison function for sorted nodes.
	Eventually sorting entail just calling this function, with the
	tree maintaining the sort.

	(e_tree_model_node_sort): use a helper function
	(e_tree_model_node_compare) to allow the e-tree user's comparison
	function to take mode reasonable paramaters.  also, fix it so the
	previous expanded state is kept with the node.  i can't believe i
	wrote it the way it originally was.  also, don't take the
	comparison function here.  it's set in
	e_tree_model_node_set_compare_function.

svn path=/trunk/; revision=5674
2000-10-02 22:10:13 +00:00
9f50c83ac5 don't screw things up if we sort a collapsed node.
2000-10-02  Chris Toshok  <toshok@helixcode.com>

	* e-tree-model.c (e_tree_model_node_sort): don't screw things up
	if we sort a collapsed node.

svn path=/trunk/; revision=5673
2000-10-02 21:13:43 +00:00
1c2eec1fd4 reinstate file.
2000-10-02  Chris Toshok  <toshok@helixcode.com>

	* tree-expanded.xpm: reinstate file.

	* tree-unexpanded.xpm: same.

	* e-tree-example-1.c (main): remove calls to e_cursor_*, and don't
	create pixbufs.  let's the tree give us the defaults.

	* e-tree-model.c (e_tree_model_node_changed): call
	e_table_model_row_changed on the node's row (if it's visible).
	(e_tree_model_node_inserted): call e_table_model_row_inserted on
	the new node's row, if it's visible.
	(e_tree_model_node_removed): call e_table_model_row_removed on the
	old node's row, if it was visible.

	* e-cell-tree.c (e_cell_tree_construct): allow open_pixbuf and
	closed_pixbuf to be NULL, and default them to the xpm data in
	rtee-{un}expanded.xpm.
	(ect_destroy): call gdk_pixbuf_unref on our open/closed pixbufs.

	* tree-expanded.xpm, tree-unexpanded.xpm: make the + and - a
	little lighter than straight black.

svn path=/trunk/; revision=5660
2000-10-02 18:02:53 +00:00
1084ed7340 add save_state stuff to ETreeModel, and prototypes for the public methods.
2000-09-25  Chris Toshok  <toshok@helixcode.com>

	* gal/e-table/e-tree-model.h: add save_state stuff to ETreeModel, and
	prototypes for the public methods.

	* gal/e-table/e-tree-model.c: add save_id to the ENode.
	(expanded_remove_func): new function, iterator to delete the save
	id's.
	(etree_destroy): iterate over expanded_state.
	(etree_set_expanded): if the node has a save id, make sure to
	update both the collapsed and expanded counts.
	(e_tree_model_node_insert_id): convenience function that inserts a
	node and sets its id.
	(e_tree_model_node_sort): remove extra spew.
	(save_expanded_state_func): new function, iterator for saving
	expanded state.
	(e_tree_model_save_expanded_state): new function.
	(get_string_value): helper function for loading.
	(e_tree_model_load_expanded_state): new function.
	(e_tree_model_node_set_save_id): sets the save id for a node,
	adding it to the hashtable if it's not already there.  if the id
	was there previously, set the expanded flag of the node
	accordingly.

svn path=/trunk/; revision=5573
2000-09-25 19:02:44 +00:00
b846b91082 Fix include typo.
2000-09-24  Ariel Rios <ariel@arcavia.com>

        * e-tree-model.c: Fix include typo.

svn path=/trunk/; revision=5566
2000-09-25 04:04:17 +00:00
f5ad2892d1 fix sorting - need to update the row_array as well as the actual structure
2000-09-24  Chris Toshok  <toshok@helixcode.com>

	* e-tree-model.c (e_tree_model_node_sort): fix sorting - need to
	update the row_array as well as the actual structure of the
	GNodes.

svn path=/trunk/; revision=5564
2000-09-24 22:01:03 +00:00
a3de274f7c Moved files, fixed header files and paths - Federico
svn path=/trunk/; revision=5513
2000-09-19 22:57:58 +00:00
8c99725b91 Fixed e-table #includes so that it would compile.
svn path=/trunk/; revision=5482
2000-09-17 20:29:14 +00:00
0a380243b1 add signals/prototypes for e_tree_model_node_collapsed and
2000-09-01  Chris Toshok  <toshok@helixcode.com>

	* e-tree-model.h: add signals/prototypes for
	e_tree_model_node_collapsed and e_tree_model_node_expanded.

	* e-tree-model.c (etree_set_expanded): emit
	node_expanded/node_collapsed signals, with node_expanded happening
	before the expansion so it can much with the children, and
	collapsed being emitted after.
	(e_tree_model_row_of_node): remove stupid check, and g_warning.
	(e_tree_model_node_collapsed): new function.
	(e_tree_model_node_expanded): new function.

svn path=/trunk/; revision=5162
2000-09-01 08:57:43 +00:00
876558f75f Remove a ton of (hopefully harmless) warnings from the ETable code.
svn path=/trunk/; revision=5081
2000-08-28 15:27:38 +00:00
a30113eebc Moved drawing of the cell backgrounds from ECell into ETableItem.
2000-08-22  Christopher James Lahey  <clahey@helixcode.com>

	* e-cell-text.c, e-cell-toggle.c, e-cell-tree.c, e-table-item.c:
	Moved drawing of the cell backgrounds from ECell into ETableItem.

	* e-tree-model.c: Include stdlib.c.

svn path=/trunk/; revision=4915
2000-08-22 10:03:36 +00:00
95ba651873 we can remove nodes with children now.
2000-08-21  Chris Toshok  <toshok@helixcode.com>

	* e-tree-example-1.c (remove_node): we can remove nodes with
	children now.

	* e-tree-model.h: add prototype for e_tree_model_node_sort.

	* e-tree-model.c (etree_set_expanded): if the node is invisible,
	just set its expanded flag and return.
	(e_tree_model_root_node_set_visible): call set_expanded before we
	remove it from the row array or else the aforementioned change
	will result in nothing happening.
	(e_tree_model_node_insert): use a position of -1 as "append".
	(e_tree_model_node_insert): if the model was marked with
	root_visible == FALSE, make sure to set it's expanded flag to TRUE
	when the root node is inserted.
	(e_tree_model_node_sort): new function.

svn path=/trunk/; revision=4912
2000-08-22 00:42:14 +00:00
92a068467b Call our parent's destroy method.
2000-07-18  Miguel de Icaza  <miguel@helixcode.com>

	* e-tree-model.c (etree_destroy): Call our parent's destroy
	method.

svn path=/trunk/; revision=4643
2000-08-09 06:33:46 +00:00
70909df376 When inserting a root node, only call e_table_model_row_inserted if
* e-tree-model.c (e_tree_model_node_insert): When inserting a root
	node, only call e_table_model_row_inserted if root_visible.
	(e_tree_model_node_remove): Call e_table_model_row_deleted before
	removing the row from the row_array, because the chain of signal
	handlers will sometimes need that info.

svn path=/trunk/; revision=3994
2000-07-09 02:05:59 +00:00
d692cab641 add a g_return_val_if_fail to etree_node_at_row
svn path=/trunk/; revision=3937
2000-07-07 03:00:52 +00:00
540bde0aff Make this work recursively.
* e-tree-model.c (e_tree_model_node_remove): Make this work
	recursively.

svn path=/trunk/; revision=3935
2000-07-07 02:26:36 +00:00
e4de45da5f Calculate height including if clip_height is set to -1.
2000-06-26  Christopher James Lahey  <clahey@helixcode.com>

	* widgets/e-text/e-text.c: Calculate height including if
	clip_height is set to -1.

From addressbook/ChangeLog:

2000-06-26  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor-categories.c,
	addressbook/gui/component/e-cardlist-model.c: Added
	value_to_string handlers.

	* demo/addressbook-widget.c, demo/demo.c: Removed usage of "x" and
	"y" arguments.

	* addressbook/gui/component/addressbook.c: Activated Click To Add
	and set the click to add message.

	* addressbook/gui/component/e-addressbook-model.c: Added
	value_to_string and append_row handlers.

	* addressbook/gui/component/e-select-names.c: Added a column.

From calendar/ChangeLog:

2000-06-26  Christopher James Lahey  <clahey@helixcode.com>

	* gui/calendar-model.c: Added an #ifdefed value_to_string handler
	assignment.

From camel/ChangeLog:

2000-06-26  Christopher James Lahey  <clahey@helixcode.com>

	* providers/mbox/camel-mbox-summary.c: Added debugging
	information.

From composer/ChangeLog:

2000-06-26  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Added e-msg-composer-select-file.h for make
	distcheck.

From e-util/ChangeLog:

2000-06-26  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Added e-canvas-vbox.c and e-canvas-vbox.h.

	* e-canvas-vbox.c, e-canvas-vbox.h: New canvas object to act like
	a vbox using the reflow system.

From mail/ChangeLog:

2000-06-26  Christopher James Lahey  <clahey@helixcode.com>

	* message-list.c: Added a value_to_string handler.

From shell/ChangeLog:

2000-06-26  Christopher James Lahey  <clahey@helixcode.com>

	* glade/Makefile.am: Added EXTRA_DIST for make distcheck.

From widgets/e-table/ChangeLog:

2000-06-26  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Added e-table-click-to-add.c,
	e-table-click-to-add.h, e-table-one.c, and e-table-one.h.

	* e-table-click-to-add.c, e-table-click-to-add.h: A new canvas
	item that represents a single row that sometimes exists.  It's for
	adding new rows to your table.

	* e-table-example-1.c, e-table-example-2.c, e-table-size-test.c,
	test-check.c, test-cols.c, test-table.c: Added value_to_string handlers.

	* e-table-group-container.c: Use value_to_string to make grouping
	not crash for non string columns.  Made some changes to work
	properly in an ECanvasVbox.

	* e-table-group-leaf.c, e-table-item.c: Made some changes to work
	properly in an ECanvasVbox.

	* e-table-model.c, e-table-model.h: Added append_row and
	value_to_string methods.

	* e-table-one.c, e-table-one.h: Given a source ETableModel, this
	provides a single row model that uses the initialize_value,
	duplicate_value, free_value, and value_is_empty methods of the
	original source to implement set_value and value_at (and proxies
	most of the other methods.)  This is used for ETableClickToAdd.

	* e-table-simple.c, e-table-simple.h: Added append_row and
	value_to_string handlers.  append_row uses a GtkArg instead of a
	parameter to e_table_simple_new.

	* e-table-subset.c: Added append_row and value_to_string handlers.

	* e-table.c, e-table.h: Use a vbox containing an ETableClickToAdd
	and an ETableItem instead of an ETableItem directly.  Only show
	the ETableClickToAdd if the top level of the xml SPEC has the
	attribute click-to-add set to some non-zero integer.
	(click-to-add="1").  Add a "click_to_add_message" argument.

	* e-tree-model.c: Add a commented out value_to_string handler.

From widgets/meeting-time-sel/ChangeLog:

2000-06-26  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Added the include path to top_srcdir.

svn path=/trunk/; revision=3744
2000-06-27 00:51:06 +00:00
422046cc58 add icon_at virtual function - it was stupid to make the insert call take
2000-06-23  Chris Toshok  <toshok@helixcode.com>

	* e-tree-model.h, e-tree-model.c: add icon_at virtual function -
	it was stupid to make the insert call take 2 pixbufs.  the model
	should give this information.

	* e-cell-tree.c: get rid of the opened/closed pixbuf stuff.  call
	e_tree_model_icon_of_node.

	* e-tree-example-1.c: add my_icon_at.

	* e-tree-simple.c (simple_icon_at): new function
	(e_tree_simple_new): add icon_at parameter.

	* e-tree-simple.h: add SimpleIconAtFn.

svn path=/trunk/; revision=3707
2000-06-23 07:47:37 +00:00
29a313c41e use the expanded/unexpanded pixbufs as node pixbufs for the first level of
2000-06-23  Chris Toshok  <toshok@helixcode.com>

	* e-tree-example-1.c (create_tree): use the expanded/unexpanded
	pixbufs as node pixbufs for the first level of children, to test
	the drawing.

	* e-tree-model.c (e_tree_model_node_get_closed_pixbuf): new function.
	(e_tree_model_node_get_opened_pixbuf): same.
	(e_tree_model_node_insert): add opened/closed pixbuf argument.
	(e_tree_model_node_insert_before): same.

	* e-tree-model.h: add prototypes for opened/closed pixbuf
	accessors, and add them to the e_tree_model_node_insert_* calls.

	* e-cell-tree.c (ect_draw): add opened/closed pixbuf drawing per node.

svn path=/trunk/; revision=3706
2000-06-23 07:19:11 +00:00
9c3a56da17 call e_table_model_row_inserted instead of e_table_model_changed.
2000-06-17  Chris Toshok  <toshok@helixcode.com>

	* e-tree-model.c (e_tree_model_node_insert): call
	e_table_model_row_inserted instead of e_table_model_changed.

svn path=/trunk/; revision=3637
2000-06-19 21:02:18 +00:00
aac3f2c8b6 change things so we focus the cell and select the row, and also dispatch
2000-06-10  Chris Toshok  <toshok@helixcode.com>

	* e-table-item.c (eti_event): change things so we focus the cell
	and select the row, and also dispatch the event to that row/cell.
	This fixes the problem with the tree where you had to click twice
	to activate the tree controls.

	* Makefile.am (libetable_a_SOURCES): remove e-tree-gnode.* and add
	e-tree-simple.*
	(icons): add tree-expanded.xpm and tree-unexpanded.xpm

	* e-cell-tree.c (ect_enter_edit): defer to subcell's view.
	(ect_leave_edit): defer to subcell's view.
	(visible_depth_of_node): visual depth, taking into account that
	the root node of the model might not be displayed.
	(offset_of_node): return the offset used to shift the subcell
	over.
	(ect_draw): don't draw vertical lines if we're the leftmode node
	(a visual root node).  also, don't shift x2 by the subcell offset,
	so we get ellipses like we're supposed to.
	(ect_event): remove GDK_BUTTON_RELEASE from the list of events
	that we care about.

	* e-tree-example-1.c: lots of changes, a more dynamic UI so we can
	test tree model api stuff.

	* e-tree-gnode.c, e-tree-gnode.c: removed files, since their guts
	have been rolled into e-tree-model.c

	* e-tree-model.c, e-tree-model.h: substantially changed.  too much
	to really describe here.  this should really be considered the
	first revision of these files :)

	* e-tree-simple.c, e-tree-simple.h: analogous to e-table-simple, a
	subclass that allows the use of function pointers.

svn path=/trunk/; revision=3519
2000-06-11 04:20:56 +00:00
e581631a9c New files. A tree model using a GNode structure to store it's info.
2000-06-08  Chris Toshok  <toshok@helixcode.com>

	* e-tree-gnode.c, e-tree-gnode.h: New files.  A tree model using a
	GNode structure to store it's info.

	* e-tree-model.c, e-tree-model.h: New files.  A proxy model
	sitting between a table model and the real tree model (of which
	ETreeGNode is an example).

	* e-cell-tree.c, e-cell-tree.h: New files.  A cell renderer
	capable of wrapping up a subcell and drawing the tree controls for
	expanding/collapsing trees.

	* tree-expanded.xpm, tree-unexpanded.xpm: New files.  the standard
	+ and - icons.

	* e-tree-example-1.c: New file, giving a (pretty poor :) example
	of using ETreeGNode.

	* Makefile.am: at the tree stuff to the build, and build
	tree-example-1.

	* .cvsignore: ignore tree-example-1.

svn path=/trunk/; revision=3483
2000-06-08 23:16:22 +00:00