Commit Graph

174 Commits

Author SHA1 Message Date
a5931319b6 Use new e_table_header_prioritized_column field.
2001-10-12  Christopher James Lahey  <clahey@ximian.com>

	* e-table-click-to-add.c (set_initial_selection): Use new
	e_table_header_prioritized_column field.

	* e-table-header.c, e-table-header.h
	(e_table_header_prioritized_column): New function.  Refactors the
	code from ETableClickToAdd to find the column with the highest
	priority.

	* e-table-selection-model.c, e-table-selection-model.h
	(model_changed_idle): Changed this function to use the
	e_table_header_prioritized_column function.  Added an argument to
	set the "header" on this selection model.

	* e-table-utils.h: Indentation cleanup.

	* e-table.c (et_real_construct): Set the "header" argument on the
	selection model here.

	* e-table.h: #include <gal/e-table/e-table-sorter.h>

svn path=/trunk/; revision=13633
2001-10-12 21:52:49 +00:00
cd18ff4f51 Added this function.
2001-10-10  Christopher James Lahey  <clahey@ximian.com>

	* e-table.c, e-table.h (e_table_get_selection_model): Added this
	function.

svn path=/trunk/; revision=13548
2001-10-10 11:22:19 +00:00
c259b85c5d Use g_dataset_set_data_full to find out when the context is destroyed.
2001-10-06  Christopher James Lahey  <clahey@ximian.com>

	* e-tree.c (context_destroyed), e-table.c (context_destroyed): Use
	g_dataset_set_data_full to find out when the context is destroyed.
	Fixes Ximian bug #8502 and Ximian bug #11691.

svn path=/trunk/; revision=13482
2001-10-06 15:47:29 +00:00
9a92cc103a Adapted height method to deal with a row of -1.
2001-10-05  Christopher James Lahey  <clahey@ximian.com>

	* e-cell-text, e-cell-pixbuf: Adapted height method to deal with a
	row of -1.

	* e-table-group-container.c, e-table-group-container.h,
	e-table-group-leaf.c, e-table-group-leaf.h, e-table-item.c,
	e-table-item.h, e-table.c, e-table.h, e-tree.c: Added
	"uniform_row_height" argument.

svn path=/trunk/; revision=13440
2001-10-05 13:27:03 +00:00
c5f392ca0e add E_OBJECT_CLASS_ADD_SIGNALS and E_OBJECT_CLASS_TYPE to ease migration
2001-10-05  Michael Meeks  <michael@ximian.com>

	* gal/util/e-util.h: add E_OBJECT_CLASS_ADD_SIGNALS and
	E_OBJECT_CLASS_TYPE to ease migration to Gnome 2.0 from
	a single source base.

	* All C files:
	s/object_class->type,/E_OBJECT_CLASS_TYPE (object_class),/g;
	s/gtk_object_class_add_signals([^\(]*)\(([^,]*),([^,]*),([^\)]*)/
	E_OBJECT_CLASS_ADD_SIGNALS\1(\2,\3,\4/;

svn path=/trunk/; revision=13428
2001-10-04 23:52:20 +00:00
39e2d6d8a1 Set the step_increment on the horizontal scrollbars here to 20.
2001-09-26  Christopher James Lahey  <clahey@ximian.com>

	* e-table.c, e-tree.c: Set the step_increment on the horizontal
	scrollbars here to 20.

svn path=/trunk/; revision=13146
2001-09-26 11:22:22 +00:00
650c4690b2 Commit patch from Chris to implement e_tree_right_click_up() for
correct right-click behavior in single selection mode.

svn path=/trunk/; revision=13123
2001-09-25 21:24:22 +00:00
53e4dca70f Use the correct prototype for the signal handler.
2001-09-24  Federico Mena Quintero  <federico@ximian.com>

	* e-table.c (et_canvas_button_press): Use the correct prototype
	for the signal handler.

	* e-tree.c (et_canvas_button_press): Likewise.

svn path=/trunk/; revision=13105
2001-09-24 21:51:24 +00:00
40226dadd5 Assert that the virtual method is implemented instead of being forgiving.
2001-09-24  Federico Mena Quintero  <federico@ximian.com>

	* e-table-group.c (e_table_group_add): Assert that the virtual
	method is implemented instead of being forgiving.
	(e_table_group_add_array): Likewise.
	(e_table_group_add_all): Likewise.
	(e_table_group_remove): Likewise.
	(e_table_group_increment): Likewise.
	(e_table_group_decrement): Likewise.
	(e_table_group_row_count): Likewise.
	(e_table_group_set_focus): Likewise.
	(e_table_group_get_focus): Likewise.
	(e_table_group_get_focus_column): Likewise.
	(e_table_group_get_printable): Likewise.
	(e_table_group_compute_location): Likewise.
	(e_table_group_get_cell_geometry): Likewise.
	(etg_destroy): Clear the fields after we unref them.

	* e-table-group-leaf.c (etgl_destroy): Clear the fields after we
	unref them.
	(e_table_group_leaf_construct): Subsets should not be sunk.  Do
	not ref/sink the subset.

	* e-table-header.c (e_table_header_add_column): Document the fact
	that the header assumes ownership of the column.

svn path=/trunk/; revision=13102
2001-09-24 21:31:50 +00:00
59da647724 Fixed typo.
* e-table.c (e_table_init): Fixed typo.

svn path=/trunk/; revision=12467
2001-08-24 23:32:36 +00:00
f7120120cd Added start_drag signals.
2001-08-24  Christopher James Lahey  <clahey@ximian.com>

	* e-table-group-container.c, e-table-group-leaf.c,
	e-table-group-leaf.h, e-table-group.c, e-table-group.h: Added
	start_drag signals.

	* e-table-item.c, e-table-item.h (eti_event): Send the start_drag
	signal.  Fixes Ximian bug #807.

	* e-table.c, e-table.h, e-tree.c, e-tree.h: Added start_drag
	signal.  Made default handler start drag & drop if we're set to
	automatically handle dnd.  Ripped out the code to handle watching
	events for dnd since start_drag does this now.

svn path=/trunk/; revision=12437
2001-08-24 16:33:30 +00:00
6d8437d4a9 Handle GDK_KP_Page_Up, GDK_KP_Page_Down, GDK_KP_Right, and GDK_KP_Left
2001-08-14  Christopher James Lahey  <clahey@ximian.com>

	* e-table.c (group_key_press), e-tree.c (item_key_press): Handle
	GDK_KP_Page_Up, GDK_KP_Page_Down, GDK_KP_Right, and GDK_KP_Left
	here.

svn path=/trunk/; revision=11996
2001-08-14 08:03:25 +00:00
2f81032abc new proto and virtual method
2001-08-10  JP Rosevear  <jpr@ximian.com>

	* gal/widgets/e-canvas-vbox.h: new proto and virtual method

	* gal/widgets/e-canvas-vbox.c (e_canvas_vbox_real_add_item_start):
	adds the the item to the beginning
	(e_canvas_vbox_add_item_start): call the virtual method

2001-08-10  JP Rosevear  <jpr@ximian.com>

	* e-table.c (et_build_groups): add the items to the start or end
	based on where the click to add should be
	(e_table_setup_table): ditto
	(et_real_construct): read additional spec flag

	* e-table.h: new flag

	* e-table-specification.c (etsp_init): init new flag
	(e_table_specification_load_from_node): set click to add end flag
	(e_table_specification_save_to_node): write out flag

	* e-table-specification.h: new flag

svn path=/trunk/; revision=11880
2001-08-10 15:47:18 +00:00
0cb44895c5 Added scrolling to access nodes that are scrolled off screen for drops.
2001-08-07  Christopher James Lahey  <clahey@ximian.com>

	* e-tree.c (scroll_timeout): Added scrolling to access nodes that
	are scrolled off screen for drops.  Fixes Ximian bug #5645.

	* e-table.c, e-table.h (scroll_timeout): Added scrolling to access
	rows that are scrolled off screen for drops.  This doesn't work
	for some reason, but I'm checking the code in.

svn path=/trunk/; revision=11724
2001-08-07 05:55:36 +00:00
ba57a90d93 Implemented these functions.
2001-08-06  Christopher James Lahey  <clahey@ximian.com>

	* e-table.c, e-table.h (e_table_drag_highlight,
	e_table_drag_unhighlight): Implemented these functions.

	* e-tree.c (e_tree_drag_highlight, e_tree_drag_unhighlight):
	Implemented these functions.

svn path=/trunk/; revision=11713
2001-08-06 22:07:28 +00:00
342880e798 Set the et->cursor_loc *before* committing the click-to-add to avoid
2001-08-01  Federico Mena Quintero  <federico@ximian.com>

	* e-table.c (group_cursor_change): Set the et->cursor_loc *before*
	committing the click-to-add to avoid reentrancy issues if the
	table model changes while the click-to-add is being committed.

svn path=/trunk/; revision=11564
2001-08-02 03:27:59 +00:00
7b9622f8e0 Created this function for key presses that move in some way other than
2001-07-11  Christopher James Lahey  <clahey@ximian.com>

	* gal/widgets/e-selection-model.c, gal/widgets/e-selection-model.h
	(e_selection_model_select_as_key_press): Created this function for
	key presses that move in some way other than just to the next or
	previous row.
	(e_selection_model_key_press): Use
	e_selection_model_select_as_key_press for handling home and end
	here.

svn path=/trunk/; revision=10993
2001-07-11 10:30:51 +00:00
0a71e607b1 Made the amount to scroll by smaller here.
2001-07-11  Christopher James Lahey  <clahey@ximian.com>

	* e-table.c (group_key_press), e-tree.c (item_key_press): Made the
	amount to scroll by smaller here.

svn path=/trunk/; revision=10992
2001-07-11 10:17:52 +00:00
73a6f3a7fa Use e_selection_model_do_something directly for page up and page down
2001-07-11  Christopher James Lahey  <clahey@ximian.com>

	* e-table.c (group_key_press), e-tree.c (item_key_press): Use
	e_selection_model_do_something directly for page up and page down
	instead of emulating a key press.

svn path=/trunk/; revision=10990
2001-07-11 09:05:09 +00:00
a7d41cc36e send signals even if the row/col is -1. (et_drag_drop): same.
2001-06-28  Chris Toshok  <toshok@ximian.com>

	* e-table.c (et_drag_motion): send signals even if the row/col is
	-1.
	(et_drag_drop): same.

	* e-tree.c (et_drag_motion): same.
	(et_drag_drop): same.

svn path=/trunk/; revision=10584
2001-06-29 03:09:48 +00:00
a99162af68 Remove row row + i instead of row i. (et_table_rows_inserted): Insert row
2001-05-25  Christopher James Lahey  <clahey@ximian.com>

	* e-table.c (et_table_rows_deleted): Remove row row + i instead of
	row i.
	(et_table_rows_inserted): Insert row row + i instead of row row.

svn path=/trunk/; revision=10003
2001-05-25 21:31:10 +00:00
9e14fe9c69 Remove row i instead of row row. Destroy et->group when you get the
2001-05-25  Christopher James Lahey  <clahey@ximian.com>

	* e-table.c (et_table_rows_deleted): Remove row i instead of row
	row.  Destroy et->group when you get the changed or
	sort_info_changed signal instead of in the idle handler.

svn path=/trunk/; revision=10002
2001-05-25 20:57:04 +00:00
0ec25e9430 Added a read only argument "model" to ETable.
2001-04-29  Christopher James Lahey  <clahey@ximian.com>

	* e-table.c: Added a read only argument "model" to ETable.

svn path=/trunk/; revision=9624
2001-04-29 11:15:22 +00:00
2d3c06b3a4 (Make the alternating row colors a option in ETableSpecification instead
2001-04-28  Jason Leach  <jasonleach@usa.net>

	(Make the alternating row colors a option in ETableSpecification
	instead of a compiled in #define)

	* e-table-specification.c (e_table_specification_load_from_node):
	Read in the "alternating-row-colors=bool" option for
	ETableSpecifications.  Default value is true so unless it is
	specified to be false, row colors will alternate.
	(e_table_specification_save_to_node): Save the alternating row
	color options here.

	* e-table.c (et_build_groups): Pass down the alternating row
	colors through to the ETableGroup.

	* e-table-group-container.[ch]: Handle the new alternating row
	colors
	option here, passing it to ETableItem.

	* e-table-group-leaf.[ch]: Here too.

	* e-table-item.c (eti_get_cell_background_color): Got rid of the
	#define ALTERNATE_COLORS, replaced with truth check for
	ETableItem::alternating_row_colors.

	* e-tree.c: Make ETree recognize alternating row color options as
	well.

svn path=/trunk/; revision=9622
2001-04-29 01:14:50 +00:00
f0f1bd1f90 Add the header height to the returned y location here so that things will
2001-04-25  Christopher James Lahey  <clahey@ximian.com>

	* e-table.c (e_table_get_cell_geometry): Add the header height to
	the returned y location here so that things will be lined up
	correctly.

svn path=/trunk/; revision=9563
2001-04-25 16:25:25 +00:00
e37b58efec Documented this function properly.
2001-04-23  Christopher James Lahey  <clahey@ximian.com>

	* e-table.c (e_table_get_cell_geometry): Documented this function
	properly.

	* e-tree.c, e-tree.h (e_tree_get_cell_geometry): Added this
	function.

svn path=/trunk/; revision=9533
2001-04-24 02:23:47 +00:00
44c7d23144 Added get_cell_geometry method.
2001-04-23  Christopher James Lahey  <clahey@ximian.com>

	* e-table-group-container.c, e-table-group-leaf.c,
	e-table-group.c, e-table-group-.h: Added get_cell_geometry method.

	* e-table-item.c, e-table-item.h: Added
	e_table_item_get_cell_geometry.

	* e-table.c, e-table.h: Added e_table_get_cell_geometry.

svn path=/trunk/; revision=9532
2001-04-24 01:30:48 +00:00
d9dc354180 Free some things that weren't getting freed.
* e-table.c (et_destroy): Free some things that weren't getting
        freed.

        * e-tree.c (et_destroy): Free some things that weren't getting
        freed.
        (e_tree_set_state_object): Don't ref the return value of
        e_table_state_to_header.

svn path=/trunk/; revision=9448
2001-04-18 17:53:14 +00:00
6cf1a4d151 #include "gal/widgets/e-unicode.h".
2001-04-10  Christopher James Lahey  <clahey@ximian.com>

	* e-table.c: #include "gal/widgets/e-unicode.h".

svn path=/trunk/; revision=9218
2001-04-10 23:34:59 +00:00
0b90b0b1e8 i18n fixes.
i18n fixes.

2001-04-10  Gediminas Paulauskas <menesis@delfi.lt>

	* gal/widgets/e-unicode.c (e_utf8_*_*_string): if (!string) return NULL;
	to avoid crashes in strlen(NULL). TODO: need g_strlen which does that.

2001-04-10  Gediminas Paulauskas <menesis@delfi.lt>

	* e-table.c (et_real_construct): convert click_to_add_message locale->utf8.

svn path=/trunk/; revision=9214
2001-04-10 20:55:52 +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
44882da7a7 Typo fix; call e_cell_unrealize(), not e_cell_realize().
2001-04-02  Federico Mena Quintero  <federico@ximian.com>

	* e-cell-popup.c (ecp_unrealize): Typo fix; call
	e_cell_unrealize(), not e_cell_realize().

	* e-cell-text.c (ect_event): Removed fallback "else", from "if
	(edit_display)"since our planned return value is already zero and
	we do need to unbuild_current_cell() instead of returning
	immediately.

	* e-table-state.c (etst_destroy): Free the expansions field.

	* e-table.c (e_table_set_state_object): Do not ref the header
	since we just created it!

svn path=/trunk/; revision=9123
2001-04-03 05:34:27 +00:00
90ed53edb0 Made these use GTK_TYPE_GDK_EVENT whenever sending an event through the
2001-03-30  Christopher James Lahey  <clahey@ximian.com>

	* e-table-group.c, e-table-header-item.c, e-table-item.c,
	e-table.c, e-tree.c: Made these use GTK_TYPE_GDK_EVENT whenever
	sending an event through the signal system instead of
	GTK_TYPE_POINTER.

	* e-table.c, e-tree.c (set_header_canvas_width): Check that none
	of the variables we're going to need are NULL before executing
	this function.

svn path=/trunk/; revision=9042
2001-03-30 10:30:28 +00:00
0e347fdbe1 Changed the signal "table_selection_model" to just be "selection_model"
2001-03-30  Christopher James Lahey  <clahey@ximian.com>

	* e-table-group-container.c, e-table-group-container.h,
	e-table-group-leaf.c, e-table-group-leaf.h, e-table-item.c,
	e-table-item.h, e-table.c, e-tree.c: Changed the signal
	"table_selection_model" to just be "selection_model" everywhere
	and made it be ESelectionModels instead of ETableSelectionModels
	for generality.

	* e-table-item.c (eti_event): Make right arrow and left arrow
	accessible as events that can be caught.

	* e-tree-sorted.c, e-tree-sorted.h (e_tree_sorted_orig_position):
	Added this function.

svn path=/trunk/; revision=9041
2001-03-30 08:52:04 +00:00
491523b07c Updated to set the width of the header canvas to be equal to the width of
2001-03-29  Christopher James Lahey  <clahey@ximian.com>

	* e-table.c, e-tree.c, e-tree.h: Updated to set the width of the
	header canvas to be equal to the width of the table canvas to
	avoid infinite loops.  Added left arrow and right arrow as tree
	collapse and expand bindings.

svn path=/trunk/; revision=9035
2001-03-30 01:27:38 +00:00
7680855427 ref the sort_info taken from the state object. Ditto. Fixes the last ETree
* e-table.c (et_real_construct): ref the sort_info taken from the
	state object.
	* e-tree.c (et_real_construct): Ditto. Fixes the last ETree
	crash-on-exit bug for me.

svn path=/trunk/; revision=8929
2001-03-25 16:55:03 +00:00
f5624b74ca Fixed a typo in the word horiztonal.
2001-03-20  Christopher James Lahey  <clahey@ximian.com>

	* e-table.c: Fixed a typo in the word horiztonal.

svn path=/trunk/; revision=8852
2001-03-20 19:12:01 +00:00
451c410dec Bumped the version number to 05.99.9.
2001-03-20  Christopher James Lahey  <clahey@ximian.com>

	* configure.in: Bumped the version number to 05.99.9.

From gal/e-table/ChangeLog:

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

	* e-table-click-to-add.c: Turn on the vertical grid.

	* e-table-group-container.c, e-table-group-container.h,
	e-table-group-leaf.c, e-table-group-leaf.h, e-table-item.c,
	e-table-item.h: Replaced the "drawgrid" argument with
	"horizontal_draw_grid" and "vertical_draw_grid" arguments.

	* e-table-specification.c, e-table-specifcation: Replaced the
	draw_grid setting with the horizontal_draw_grid and
	vertical_draw_grid settings.  If the draw-grid property is set in
	a ETableSpecification it is still obeyed and overrides the
	vertical-draw-grid and horizontal-draw-grid properties.

	* e-table.c, e-table.h, e-tree.c, e-tree.h: Deal with the
	horizontal_draw_grid and vertical_draw_grid changes.

	* e-tree-model.h: Added a missing include.

svn path=/trunk/; revision=8846
2001-03-20 16:22:30 +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
862b298c7d New public API call, `e_table_get_cell_at()'. Also upped the GAL
version number because of that.

svn path=/trunk/; revision=8587
2001-03-07 23:41:14 +00:00
6a8d4951dc Changed e_table_selection_model_clear to e_selection_model_clear.
2001-02-27  Christopher James Lahey  <clahey@ximian.com>

	* gal/e-text/e-completion-view.c: Changed
	e_table_selection_model_clear to e_selection_model_clear.

	* tests/test-tree-3.c: Changed E_TABLE_CURSOR_LINE to
	E_CURSOR_LINE.

From gal/e-table/ChangeLog:

2001-02-27  Christopher James Lahey  <clahey@ximian.com>

	* e-table-click-to-add.c, e-table-group-container.c,
	e-table-group-container.h, e-table-group-leaf.c,
	e-table-group-leaf.h, e-table-item.c, e-table-item.h,
	e-table-specification.c, e-table-specification.h, e-table.c,
	e-table.h: Changed a lot of the ETableSelectionModels to
	ESelectionModels, a lot of the ETableSorters to ESorters, all the
	ETableCursorModes to ECursorModes, and all of the
	ETableForeachFuncs into EForeachFuncs.

	* e-table-defines.h: Moved ETableForeachFunc and ETableCursorMode
	to e-selection-model.h.

	* e-table-selection-model.c, e-table-selection-model.h: Made this
	a subclass of ESelectionModel which simple connects to an
	ETableModel.

	* e-table-sorter.c, e-table-sorter.h: Made this a subclass of
	ESorter so that implements the same semantics it used to.

svn path=/trunk/; revision=8422
2001-02-28 03:36:29 +00:00
c7b0f21667 Prevent `gtk_signal_disconnect()' warnings when destroying a
non-grouping ETable by only disconnecting the signals that are
actually connected.

svn path=/trunk/; revision=8401
2001-02-27 04:06:20 +00:00
40d58afa7c Added e-table/e-table-sorting-utils.lo.
2001-02-23  Christopher James Lahey  <clahey@ximian.com>

	* gal/Makefile.am (libgal_la_LIBADD): Added
	e-table/e-table-sorting-utils.lo.

From gal/e-table/ChangeLog:

2001-02-23  Christopher James Lahey  <clahey@ximian.com>

	* Makefile.am (libetable_la_SOURCES): Added
	e-table-sorting-utils.c.
	(libetableinclude_HEADERS): Added e-table-sorting-utils.h.

	* e-table-group-container.c: Implemented add_array method.  Use
	add_array to implement add_all instead of using add.  Did some
	general clean up.

	* e-table-group-leaf.c, e-table-group-leaf.h: Implemented
	add_array method.  Changed everything to use an ETableSubset
	variable instead of an ETableSortedVariable.  Implemented it as
	ETableSortedVariable if there's grouping involved and ETableSorted
	if there isn't.

	* e-table-group.c, e-table-group.h: Added add_array method.  Added
	unused get_position code.

	* e-table-sorted-variable.c, e-table-sorted-variable.h: Moved a
	lot of the actual implementation of sorting to
	e-table-sorting-utils.c.  Got rid of the signal handlers here
	since we weren't using them and ETableSubset has the proxy virtual
	methods.

	* e-table-sorted.c, e-table-sorted.h: Completely replaced these
	files with a variation on ETableSortedVariable that doesn't have
	the add methods and such but instead just mimics the source
	model's set of rows completely.

	* e-table-sorter.c, e-table-sorter.h: Added functions to get at
	the arrays here.

	* e-table-sorting-utils.c, e-table-sorting-utils.h: Utility
	functions for doing sorting.

	* e-table-subset-variable.c, e-table-subset-variable.h: Added
	add_array method.

	* e-table-subset.c, e-table-subset.h: Made it so that the signal
	hookups to the source model's signals are virtual methods.

	* e-table.c, e-table.h: Don't call add_all and add and remove type
	functions if not grouped.  Don't rebuild for sort changes unless
	it was either grouped before or will be grouped now.

svn path=/trunk/; revision=8374
2001-02-23 23:00:09 +00:00
08f5c5e324 Removed setting of invalid "horizontal_scrolling" argument.
2001-02-17  Christopher James Lahey  <clahey@ximian.com>

	* e-table.c (et_real_construct): Removed setting of invalid
	"horizontal_scrolling" argument.

	* e-table-column-model.h: Removed this as it is not used.

svn path=/trunk/; revision=8268
2001-02-17 08:56:14 +00:00
d4be90f9b2 This new function updates the minimum width of all of the columns based on
2001-02-13  Christopher James Lahey  <clahey@ximian.com>

	* e-table-header.c, e-table-header.h
	(e_table_header_update_horizontal): This new function updates the
	minimum width of all of the columns based on the data contained in
	that column.

	* e-table.c, e-table.h (changed_idle): Added a
	horizontal_scrolling field.  Call e_table_header_update_horizontal
	if the model changes at all and horizontal_scrolling is set to TRUE.

svn path=/trunk/; revision=8214
2001-02-13 23:15:13 +00:00
aa92a8935b Set the dnd_code on the header properly.
2001-02-08  Christopher James Lahey  <clahey@ximian.com>

	* e-table.c (e_table_setup_header): Set the dnd_code on the header
	properly.

svn path=/trunk/; revision=8110
2001-02-08 17:59:50 +00:00
707cce7733 Added a "changed" signal.
2001-02-05  Christopher James Lahey  <clahey@helixcode.com>

	* e-table-config.c, e-table-config.h (dialog_apply): Added a
	"changed" signal.

	* e-table-sort-info.c, e-table-sort-info.h
	(e_table_sort_info_duplicate): Added this function.

	* e-table.c (e_table_set_state_object): Duplicate the state's
	sort_info object here.

svn path=/trunk/; revision=7985
2001-02-05 21:16:13 +00:00
a7a767287f Make home and end keys move to the beginning and end of the row if cursor
2001-01-27  Christopher James Lahey  <clahey@helixcode.com>

	* e-table-item.c (eti_event): Make home and end keys move to the
	beginning and end of the row if cursor mode is set to
	E_TABLE_CURSOR_SIMPLE.  Otherwise have %ETableSelectionModel
	handle them.

	* e-table-selection-model.c, e-table-selection-model.h: Added a
	"cursor_mode" argument.
	(e_table_selection_model_key_press): Made home and end keys move
	the beginning and end of the table if cursor_mode is
	E_TABLE_CURSOR_MODE_LINE.

	* e-table.c: Set the cursor-mode argument of our
	%ETableSelectionModel.

svn path=/trunk/; revision=7864
2001-01-27 22:21:10 +00:00
133b44558c Make ETable stop editing when it looses focus.
2001-01-27  Christopher James Lahey  <clahey@helixcode.com>

	* e-table-item.c (eti_event): Make ETable stop editing when it
	looses focus.

	* e-table.c (et_canvas_button_press): Make ETable stop editing if
	you click on an unhandled area of the table canvas (The white area
	at the bottom for instance.)

svn path=/trunk/; revision=7849
2001-01-27 06:43:39 +00:00
9be603bebd Set the GTK_CAN_FOCUS flag on the widget, since an ETable ought to be
2001-01-25  Federico Mena Quintero  <federico@ximian.com>

	* e-table.c (e_table_init): Set the GTK_CAN_FOCUS flag on the
	widget, since an ETable ought to be focusable.
	(e_table_class_init): Override ::grab_focus() and ::focus().
	(et_grab_focus): Since people may do gtk_widget_grab_focus() on
	the ETable, we have to proxy the request to the actual focusable
	canvas.
	(e_table_setup_header): Unset GTK_CAN_FOCUS for the header canvas.
	(et_focus): Reject focus if our child canvas already had it.

	* e-table-scrolled.c (e_table_scrolled_init): Set the
	GTK_FOCUS_FLAG on the widget.  This is just so that people can
	easily do gtk_widget_grab_focus (my_e_table_scrolled) on their own
	applications.
	(e_table_scrolled_class_init): Override ::grab_focus() and
	::focus().
	(ets_grab_focus): Proxy the grab_focus to our child ETable.
	(ets_focus): Proxy the request to the child ETable.

svn path=/trunk/; revision=7830
2001-01-26 00:08:54 +00:00