Commit Graph

39 Commits

Author SHA1 Message Date
484c8193e1 Implement these functions as pass through to the child cell.
2001-10-10  Christopher James Lahey  <clahey@ximian.com>

	* e-cell-popup.c (ecp_get_bg_color), e-cell-tree.c
	(ect_get_bg_color): Implement these functions as pass through to
	the child cell.

	* e-cell-text.c, e-cell-text.h (ect_get_bg_color): Implemented
	this using a bg_color_column which can be set through the argument
	of the same string.

	* e-cell.c, e-cell.h (e_cell_get_bg_color): Added this function to
	allow background color to change by cell.

	* e-table-item.c (eti_get_cell_background_color): Call
	e_cell_get_bg_color to allow background color to change by cell.

svn path=/trunk/; revision=13566
2001-10-10 20:44:25 +00:00
06eb6e23fb Rename these functions from ecn_get_text and ecn_free_text.
2001-09-01  Christopher James Lahey  <clahey@ximian.com>

	* e-cell-float.c (ecf_get_text, ecf_free_text): Rename these
	functions from ecn_get_text and ecn_free_text.

	* e-cell-tree.c (ect_height): Make sure the height is a multiple
	of two here.

	* e-table-header-item.c, e-table-header-item.h: Added a "tree"
	argument so that the sorting can be set by right clicking on the
	header item.

	* e-table-item.c (eti_table_model_rows_deleted): Added some
	assertions here.

	* e-tree-selection-model.c (etsm_find_node_unless_equals): Fixed
	indentation.

	* e-tree-table-adapter.c (etta_proxy_node_changed): Rewrote this
	to be more readable.
	(e_tree_table_adapter_node_set_expanded): Added an assertion.

	* e-tree.c, e-tree.h (e_tree_get_spec): Added this function.
	(e_tree_setup_header): Set the tree argument on the
	ETableHeaderItem here.

svn path=/trunk/; revision=12553
2001-09-01 08:03:44 +00:00
61353c59dc Set "bold" argument on created tooltip. Adjusted position of displayed
2001-04-15  Christopher James Lahey  <clahey@ximian.com>

	* e-cell-text.c (ect_show_tooltip): Set "bold" argument on created
	tooltip.  Adjusted position of displayed tooltip.

	* e-cell-tree.c (offset_of_node): Changed it so that this function
	handles knowing whether on not to indent non expandable first
	level nodes.  This makes things more consistent.

	* e-table-item.c (eti_realize): Cleaned up the ETableItem code to
	properly hide tooltips when going off the screen.

	* e-table-tooltip.h: Added a visibility_count field to ETableTooltip.

svn path=/trunk/; revision=9320
2001-04-15 13:03:26 +00:00
d51041f0e1 add "break;" to otherwise-empty "default:" cases to make them ANSI.
* e-cell-tree.c (ect_event): add "break;" to otherwise-empty
        "default:" cases to make them ANSI.

svn path=/trunk/; revision=9199
2001-04-07 16:04:15 +00:00
08940ce6f6 Fix headers. Ditto. Ditto. Ditto. Ditto. Ditto. Ditto. Ditto. Ditto.
2001-04-04  Kjartan Maraas  <kmaraas@gnome.org>

	* e-cell-date.c: Fix headers.
	* e-cell-number.c: Ditto.
	* e-cell-pixbuf.[ch]: Ditto.
	* e-cell-size.c: Ditto.
	* e-cell-text.c: Ditto.
	* e-cell-tree.c: Ditto.
	* e-table-click-to-add.[ch]: Ditto.
	* e-table-column-specification.h: Ditto.
	* e-table-config-field.c: Ditto.
	* e-table-config.[ch]: Ditto.
	* e-table-example-2.c: Ditto.
	* e-table-field-chooser-dialog.[ch]: Ditto.
	* e-table-field-chooser-item.c: Ditto.
	* e-table-field-chooser.h: Ditto.
	* e-table-group-container.c: Ditto.
	* e-table-item.c: Ditto
	* e-table-memory.c: Ditto.
	* e-table-selection-model.c: Ditto.
	* e-table-sorter.c: Ditto.
	* e-table-subset-variable.c: Ditto.
	* e-table.c: Ditto.
	* e-tree-memory.c: Ditto.
	* e-tree-model.c: Ditto.
	* e-tree-selection-model.[ch]: Ditto.
	* e-tree-sorted-variable.c: Ditto.
	* e-tree-sorted.c: Ditto.
	* e-tree-table-adapter.c: Ditto.
	* e-tree.[ch]: Same here.

svn path=/trunk/; revision=9164
2001-04-04 05:24:34 +00:00
1510304c2d Deal with proxy_node_changed being called on a different root node than
2001-03-19  Christopher James Lahey  <clahey@ximian.com>

	* e-tree-sorted.c (ets_proxy_node_changed): Deal with
	proxy_node_changed being called on a different root node than the
	one we have in our tree.

	* e-tree-table-adapter.c: Did some general clean up here.

	* Merged branch:

2001-03-19  Christopher James Lahey  <clahey@ximian.com>

	* e-tree-sorted.c (find_child_path): Added this function to allow
	us to find paths that have been removed from the source.
	(ets_proxy_node_removed): Fixed the memmove here a bit.  Call
	find_child_path.

	* e-tree-table-adapter.c (find_node): Check that the passed in
	path isn't NULL.

2001-03-19  Christopher James Lahey  <clahey@ximian.com>

	* e-table-item.c (eti_reflow): Get width from header object
	instead of calculating it ourselves.

	* e-table-selection-model.c: Turn off selection saving since it's
	so slow.

	* e-table.c (e_table_set_state_object): Set the width of the newly
	created header object.

	* e-tree.c (e_tree_set_state_object): Set the width of the newly
	created header object.
	(tree_canvas_size_allocate): Don't bother setting the dimensions
	of the white background twice.

2001-03-18  Christopher James Lahey  <clahey@ximian.com>

	* e-table-selection-model.c, e-table-selection-model.h: Made
	ETableSelectionModel save the cursor properly across changed
	signals if has_save_id is true.

2001-03-18  Christopher James Lahey  <clahey@ximian.com>

	* e-table-selection-model.c, e-table-selection-model.h: Made
	ETableSelectionModel save selection properly across changed
	signals if has_save_id is true.

	* e-tree-memory.c: A couple of typos.

2001-03-18  Christopher James Lahey  <clahey@ximian.com>

	* e-tree-memory.c, e-tree-sorted.c: Send pre_changes properly.

2001-03-18  Christopher James Lahey  <clahey@ximian.com>

	* e-tree-table-adapter.c: Send pre_changes when performing
	set_expanded or root_node_set_visible.

2001-03-18  Christopher James Lahey  <clahey@ximian.com>

	* e-tree-sorted.c (ets_is_expandable): When the API requests
	whether the object is expandable and it isn't, make sure to send a
	signal when it becomes expandable.

	* e-tree-table-adapter.c: Made it so that in a number of cases
	where it doesn't need to create an empty hash table node if the
	current tree node has no children, it doesn't.

2001-03-18  Christopher James Lahey  <clahey@ximian.com>

	* e-tree-memory-callbacks.c, e-tree-memory-callbacks.h
	(etmc_has_save_id, etmc_get_save_id): Added has_save_id and
	get_save_id to the list of methods supported by
	e_tree_memory_callbacks.

	* e-tree-table-adapter.c, e-tree-table-adapter.h: Added saving of
	expanded nodes.

2001-03-18  Christopher James Lahey  <clahey@ximian.com>

	* e-table-model.c, e-table-model.h (e_table_model_get_save_id):
	Changed row_save_id to get_save_id to be consistent with ETree.

	* e-tree-model.c, e-tree-model.h: Added "pre_change" signal.
	Added has_save_id and get_save_id methods.

	* e-tree-sorted.c: Proxy pre_change signal.  Implemented
	has_save_id and get_save_id.  If the base model doesn't provide
	has_save_id then we g_strdup_printf the pointer of the base model
	ETreePath as the save_id.

	* e-tree-table-adapter.c: Proxy pre_change signal.  If base model
	has_save_id, then use the results of get_save_id as the key for
	the hash table of node attributes.  Otherwise use the pointer as
	before.

2001-03-17  Christopher James Lahey  <clahey@ximian.com>

	* e-tree-sorted.c (ets_sort_idle): Fixed it so that all nodes get
	sorted properly instead of just the top node.

2001-03-17  Christopher James Lahey  <clahey@ximian.com>

	* e-table-sorting-utils.c (e_table_sorting_utils_tree_sort): Made
	tree sorting faster by using a cache.

	* e-tree-sorted.c: Added commented out debugging g_prints.

2001-03-17  Christopher James Lahey  <clahey@ximian.com>

	* e-tree-sorted.c: Switched to using GMemChunks.

2001-03-17  Christopher James Lahey  <clahey@ximian.com>

	* e-tree-sorted.c (resort_node): Made it so that children of a
	node that's being sorted don't send changed signals.

2001-03-17  Christopher James Lahey  <clahey@ximian.com>

	* e-table-sorting-utils.c, e-table-sorting-utils.h: Switched to
	using e_sort and e_search instead of qsort and a linear search.
	Added the tree functions e_table_sorting_utils_tree_sort,
	e_table_sorting_utils_tree_check_position, and
	e_table_sorting_utils_tree_insert.

	* e-tree-sorted.c: Made this actually do sorting.

	* e-tree-table-adapter.c (etta_proxy_node_changed): The old_size
	needs to be the number of visible children + 1 to include the top
	node.

	* e-tree.c (e_tree_set_state_object): Set the sort_info on the
	ETreeSorted when you get a new sort_info.

2001-03-16  Christopher James Lahey  <clahey@ximian.com>

	* Makefile.am: Added e-tree-sorted.c and e-tree-sorted.h.

	* e-table-item.c (eti_realize_cell_views): Only realize the cells
	if they're not realized already and if the canvas is realized.

	* e-table-sorted.c (ets_proxy_model_cell_changed): Matched the
	change to the signature of e_table_sorting_utils_affects_sort.

	* e-table-sorting-utils.c, e-table-sorting-utils.h
	(e_table_sorting_utils_affects_sort): Changed the signature of
	this function to not take the ETableModel source since it doesn't
	use it and we need to use this function for ETreeSorted which
	doesn't have an ETableModel.

	* e-tree-memory.c (etmm_get_expanded_default): Actually implement
	the get_expanded_default for this tree.

	* e-tree-model.h: Cleaned up the indentation here.

	* e-tree-sorted.c, e-tree-sorted.h: New class meant to be used for
	sorting trees.  It doesn't actually sort yet.  It simply acts as
	an ETreeProxy which is the hardest part of making ETreeSorted.

	* e-tree.c, e-tree.h: Made this use an ETreeSorted.

2001-03-14  Christopher James Lahey  <clahey@ximian.com>

	* e-table-item.c, e-table-item.h, e-table-selection-model.c,
	e-table-selection-model.h, e-table-sorted.c, e-table-sorted.h,
	e-table-subset.c, e-table-subset.h, e-table.c, e-table.h: Switch
	to handling e_table_model_rows_inserted instead of
	e_table_model_row_inserted and e_table_model_rows_deleted instead
	of e_table_model_row_deleted.

	* e-table-model.c, e-table-model.h: Replaced the signals
	"model_row_inserted" and "model_row_deleted" with
	"model_rows_inserted" and "model_rows_deleted" so that when
	multiple rows are inserted or deleted at the same time they can be
	handled properly.

	* e-tree-table-adapter.c: Call "model_rows_inserted" and
	"model_rows_deleted" instead of "model_changed" when inserting or
	deleting multiple rows.

2001-03-14  Christopher James Lahey  <clahey@ximian.com>

	* e-table-item.c (e_table_item_row_diff): Made this not count the
	pixel between rows if it isn't there.

2001-03-14  Christopher James Lahey  <clahey@ximian.com>

	* e-table-item.c (eti_header_structure_changed): Properly attach &
	realize cell views here.

2001-03-13  Christopher James Lahey  <clahey@ximian.com>

	* e-tree-table-adapter.c (etta_proxy_node_removed): Check that
	parent_node and parent aren't NULL before making function calls on
	them.

2001-03-13  Christopher James Lahey  <clahey@ximian.com>

	* e-table-item.c (confirm_height_cache): Fixed a height cache
	miscalculation.

	* e-tree-table-adapter.c (find_first_child_node): Made the
	semantics of this mean that find_first_child_node(adapter, -1)
	means return the first node in the tree.

2001-03-13  Christopher James Lahey  <clahey@ximian.com>

	* e-table-extras.c: Added a "string-integer" comparison function
	to the default %ETableExtras so you can do comparisons based on
	integer value even if you using strings for the data (this lets
	you do editable numbers, for instance.)

	* e-table-item.c: Rearranged it a bit so that if you have
	draw_grid off it doesn't add space for the horizontal lines, nor
	leave them the background color.

	* e-table-model.c, e-table-model.h: Added the row_save_id and
	has_save_id methods to %ETableModel.

	* e-tree.c, e-tree.h: Replaced e_tree_compute_location with
	e_tree_get_cell_at.

2001-03-08  Christopher James Lahey  <clahey@ximian.com>

	* Makefile.am: Added e-table/e-table-utils.c,
	e-table/e-tree-memory-callbacks.c, e-table/e-tree-memory.c,
	e-table/e-tree-scrolled.c, e-table/e-tree-table-adapter.c, and
	e-table/e-tree.c.  Removed e-table/e-tree-simple.c.  Added
	e-table/e-table-utils.h, e-table/e-tree-memory-callbacks.h,
	e-table/e-tree-memory.h, e-table/e-tree-scrolled.h,
	e-table/e-tree-table-adapter.h, and e-table/e-tree.h.  Removed
	e-table/e-tree-simple.h.

	* e-cell-tree.c: Updated this for the new tree.

	* e-table-item.c: Added some redraw requests where appropriate.

	* e-table-item.h: Fixed an incorrect class method declaration.

	* e-table-model.c, e-table-model.h: Removed
	e_table_model_has_sort_group and e_table_model_row_sort_group.

	* e-table-scrolled.h: Removed unused headers.

	* e-table-simple.c, e-table-simple.h: Rearranged this a bit.

	* e-table-sorter.c, e-table-sorting-utils.c,
	e-table-sorting-utils.h: Removed sort group stuff.  Added the
	function e_table_sorting_utils_check_position.

	* e-table-utils.c, e-table-utils.h: Utility functions for ETable
	and ETree.

	* e-table.c: Moved some of the functionality from here to
	e-table-utils.c so that it can be reused by ETree.

	* e-tree-memory-callbacks.c, e-tree-memory-callbacks.h: Class to
	implement an ETreeMemory as callbacks instead of overriding the
	class.

	* e-tree-memory.c, e-tree-memory.h: ETreeModel that stores a tree
	of physical nodes.

	* e-tree-model.c, e-tree-model.h: Removed most of the
	functionality from here to the classes ETreeMemory and
	ETreeTableAdapter.  This is now just a simple virtualized tree
	class.

	* e-tree-scrolled.c, e-tree-scrolled.h: New class.  An ETree in an
	EScrollFrame.

	* e-tree-simple.c: Small change.  This is no longer used.

	* e-tree-table-adapter.c, e-tree-table-adapter.h: ETableModel that
	represents an ETreeModel as a table.

	* e-tree.c, e-tree.h: New super class kind of like ETable but for
	trees.

End of branch

svn path=/trunk/; revision=8837
2001-03-20 04:43:42 +00:00
5421d39a47 If we are drawing a top-level tree node, without any children then dont
2001-02-02  Not Zed  <NotZed@Ximian.com>

        * e-cell-tree.c (ect_draw): If we are drawing a top-level tree
        node, without any children then dont offset it for the expansion
        image it doesn't need.

svn path=/trunk/; revision=8304
2001-02-20 16:13:32 +00:00
e76ecc31c5 Change the calculation of the maximum with of tree cell, from O(n^2) to
2001-02-17  Rusty Conover  <rconover@zootweb.com>

	* e-cell-tree.c (ect_max_width): Change the calculation of the
	maximum with of tree cell, from O(n^2) to O(n), we don't need to
	continually recalculate the maximum width of the subcells when
	calculating the width of every row.

svn path=/trunk/; revision=8264
2001-02-17 07:29:22 +00:00
baffaa5769 Step 2
svn path=/trunk/; revision=7521
2001-01-15 23:33:00 +00:00
ac063e3d36 Rename from Helix Code -> Ximian
svn path=/trunk/; revision=7520
2001-01-15 23:32:09 +00:00
bb0585fe60 add api docs.
2000-12-24  Chris Toshok  <toshok@helixcode.com>

	* e-cell-tree.c: add api docs.

	* e-tree-simple.c: add api docs.

svn path=/trunk/; revision=7161
2000-12-25 04:51:03 +00:00
565e65690d remove the silly logic - we pop up a tooltip regardless of where the mouse
2000-12-13  Chris Toshok  <toshok@helixcode.com>

	* e-cell-tree.c (ect_show_tooltip): remove the silly logic - we
	pop up a tooltip regardless of where the mouse cursor hovers.
	just make sure it appears in the right place.
	(ect_event): reverse the change we make to the event after passing
	it to our subcell.  this fixes the problem of the tree reacting
	twice to events (once with flags == 0, and once with flags ==
	E_CELL_EDITING).

	* e-table-item.c (eti_event): destroy the tooltip window on a
	motion event.  this can (and does) happen when we get a tooltip on
	a tree cell and the cursor isn't over the area where the tooltip
	pops up.

svn path=/trunk/; revision=6979
2000-12-13 23:32:24 +00:00
f42cf43320 only return TRUE in the BUTTON_PRESS case if the node was expandable.
2000-12-13  Chris Toshok  <toshok@helixcode.com>

	* e-cell-tree.c (ect_event): only return TRUE in the BUTTON_PRESS
	case if the node was expandable.

svn path=/trunk/; revision=6977
2000-12-13 22:29:21 +00:00
3018f79188 Added the actions parameter to ect_event. Added an actions field to
2000-12-09  Christopher James Lahey  <clahey@helixcode.com>

	* e-cell-text.c: Added the actions parameter to ect_event.  Added
	an actions field to CellEdit.  Handle CellEdit properly in the
	ect_event function to do grabbing and ungrabbing when
	appropriate.  Set the actions field in CellEdit when appropriate
	in e_cell_text_view_command.

	* e-cell-toggle.c, e-cell-tree.c, e-cell.c, e-cell.h: Added a
	ECellActions enum, a ECellActions actions parameter to
	e_cell_event and added the actions parameter to all the handlers
	of the event method including having ECellTree pass it on to its
	child cell.

	* e-table-header-item.c: Use the NULL cursor instead of the
	E_CURSORS_ARROW cursor.

	* e-table-item.c, e-table-item.h: Added grabbed_row and
	grabbed_col fields to ETableItem (-1 on either means ungrabbed.)
	Pay attention to them in the find_cell function.  Handle the
	actions parameter of e_cell_event and grab or ungrab the pointer
	to a given cell if requested.  This is done using the new function
	eti_e_cell_event (which is internal to e-table-item.c,) instead of
	the old e_cell_event function call.  Fake an ungrabbed table when
	calling find_cell from within the compute_location method.

svn path=/trunk/; revision=6889
2000-12-09 22:20:52 +00:00
517cb96a31 pass along the column's width to e_cell_show_tooltip.
2000-12-06  Chris Toshok  <toshok@helixcode.com>

	* e-table-item.c (_do_tooltip): pass along the column's width to
	e_cell_show_tooltip.

	* e-cell-text.c (ect_show_tooltip): add col_width argument, and
	set cell.width = col_width - 8 (to mimic what happens in
	build_current_cell, but with a possibly altered width).

	* e-cell.c (e_cell_show_tooltip): add col_width argument, and pass
	along to virtual function.
	(ec_show_tooltip): add col_width argument.

	* e-cell.h: change prototype of e_cell_show_tooltip to include a
	width parameter.

	* e-cell-tree.c (ect_show_tooltip): send the width - the subcell's
	offset to e_cell_show_tooltip.

svn path=/trunk/; revision=6831
2000-12-06 23:25:06 +00:00
620dda2c36 Adapted these to accept the new flags parameter to e_cell_event.
2000-12-06  Christopher James Lahey  <clahey@helixcode.com>

	* e-cell-text.c, e-cell-toggle.c, e-cell-tree.c: Adapted these to
	accept the new flags parameter to e_cell_event.

	* e-cell.c, e-cell.h: Added a flags parameter to e_cell_event.

	* e-table-item.c: Send all e_cell_event calls a E_CELL_EDITABLE
	flag.  Add a new e_cell_event to the button press event that
	happens before selecting the appropriate row and which does not
	have the E_CELL_EDITABLE flag set.

svn path=/trunk/; revision=6823
2000-12-06 21:37:15 +00:00
a2ad62af11 Documented.
2000-11-25  Miguel de Icaza  <miguel@helixcode.com>

	* e-cell.c: Documented.

2000-11-24  Miguel de Icaza  <miguel@helixcode.com>

	* e-cell-toggle.c (etog_queue_redraw): Documented.

	* e-cell-text.c: Removed list of unused arguments.  Add docs.

	* e-cell-checkbox.c (e_cell_checkbox_new): Add docs.

	* e-table-simple.c (e_table_simple_new): Add docs.

svn path=/trunk/; revision=6665
2000-11-25 05:05:40 +00:00
f7069251d4 Save the children - Federico
svn path=/trunk/; revision=6652
2000-11-22 18:28:44 +00:00
8d310c47bd Changed these to use the default cells.
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 use the default cells.

From gal/e-table/ChangeLog:

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

	* e-cell-text.c, e-cell-text.h, e-cell-tree.c, e-cell-tree.h: Got
	rid of the model parameter to e_cell_text_new and e_cell_tree_new
	as they aren't used.

	* e-table-extras.c: Added default "integer" compare and default
	"tree-string", "string", and "checkbox" cells.

	* e-table.c: Made this use the draw-grid, cursor-mode, and
	_click-to-add-message fields from the xml.

svn path=/trunk/; revision=5841
2000-10-11 09:40:22 +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
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
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
1367922197 Better calculations for tooltip positions
svn path=/trunk/; revision=5477
2000-09-17 17:18:04 +00:00
e1e7952c86 Added some missing #includes.
2000-09-16  Christopher James Lahey  <clahey@helixcode.com>

	* e-cell-text.c: Added some missing #includes.

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

	* e-table-item.c: Added some missing casts.

svn path=/trunk/; revision=5470
2000-09-16 00:04:47 +00:00
6e4ae07fbf If the cursor is inside the subcell, call the show_tooltip on it.
2000-09-15  Iain Holmes  <iain@helixcode.com>

	* e-cell-tree.c (ect_show_tooltip): If the cursor is inside
	the subcell, call the show_tooltip on it.

	* e-table-header-item.c (draw_button): Draw the arrow first,
	then take it's size into account when calculating how to draw
	the text. Use ellipsis if the text it too long.

2000-09-15  Iain Holmes  <iain@helixcode.com>

	* e-table-header-item.c (draw_button): Fix a crash by passing
	the canvas widget to gtk_paint_box. Reported by Radek.

2000-09-14  Iain Holmes  <iain@helixcode.com>

	* e-table-header-item.c (set_cursor): The column isn't resizable
	if it is the last, or if all other columns after it are not
	resizable.

	* e-cell-text.c (ect_max_width): Correctly calculate the width
	of the line of text. Unbuild the current cell and unref the lines
	as well.
	(build_current_cell): Initialize cell->style to 0;

2000-09-14  Iain Holmes  <iain@helixcode.com>

	* e-table-item.c: Start timers for the tooltip to appear, on motion
	events.

	* e-cell.[ch]: Add a new show_tooltip method.

	* e-cell-text.c (ect_show_tooltip): Show the tooltip.

svn path=/trunk/; revision=5466
2000-09-15 21:42:38 +00:00
22f72cc08e Fix some crashes Make double clicking on the header dividers automatically
Fix some crashes
Make double clicking on the header dividers automatically size the header
to it's best fit.
When dragging onto the header check the dragged item is a header object.
Check the column is resizeable before setting the cursor to <->
Use the font and themes to draw the table and items.

svn path=/trunk/; revision=5438
2000-09-15 00:08:06 +00:00
695baf618d Added infrastructure for setting the justification of columns. Still need
2000-08-24  Christopher James Lahey  <clahey@helixcode.com>

	* e-cell-text.c, e-cell-toggle.c, e-cell-tree.c, e-cell.c,
	e-cell.h, e-table-col.c, e-table-col.h, e-table-item.c: Added
	infrastructure for setting the justification of columns.  Still
	need to change the cells to support it and need to add user
	interface to change the justification.

svn path=/trunk/; revision=5010
2000-08-24 19:06:54 +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
308228cd4e fix the conditions under which we draw a horizontal line.
2000-07-06  Chris Toshok  <toshok@helixcode.com>

	* e-cell-tree.c (ect_draw): fix the conditions under which we draw
	a horizontal line.

svn path=/trunk/; revision=3929
2000-07-06 23:27:17 +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
cb802b193c print the icon for the tree control.
2000-06-15  Chris Toshok  <toshok@helixcode.com>

	* e-cell-tree.c (ect_print): print the icon for the tree control.

svn path=/trunk/; revision=3579
2000-06-15 21:05:28 +00:00
5ae693645f new function, to generate postscript so i can test tree printing.
2000-06-14  Chris Toshok  <toshok@helixcode.com>

	* e-tree-example-1.c (print_tree): new function, to generate
	postscript so i can test tree printing.
	(create_tree): add print button.

	* e-cell-tree.c (ect_print_height): implement function (in a
	broken way for the time being, heh).
	(ect_print): implement function to draw tree controls and offset
	the subcell's printing.  icons aren't printed yet, just lines.
	(ect_draw): remove old unnecessary comments.  only draw the
	horizontal line in specific instances (well, add a test so a lone
	root node doesn't get the horizontal line.)
	(e_cell_tree_class_init): add print/print_height methods.

svn path=/trunk/; revision=3565
2000-06-14 07:07:38 +00:00
ab8f482b21 supply the pixbufs here.
2000-06-10  Chris Toshok  <toshok@helixcode.com>

	* e-tree-example-1.c (create_tree): supply the pixbufs here.

	* e-cell-tree.h: change pixbuf names to open_pixbuf/closed_pixbuf.

	* e-cell-tree.c (e_cell_tree_construct): take open/closed pixbuf
	parameters, and don't #include the .xpm files directly here.
	(e_cell_tree_new): same.
	(ect_draw): use the pixbufs from the ECellTree.

svn path=/trunk/; revision=3522
2000-06-11 05:07:13 +00:00
07707b81af offset events before passing them to our subcell view.
2000-06-10  Chris Toshok  <toshok@helixcode.com>

	* e-cell-tree.c (ect_event): offset events before passing them to
	our subcell view.

svn path=/trunk/; revision=3520
2000-06-11 04:44:27 +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