Commit Graph

155 Commits

Author SHA1 Message Date
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
9c73622d38 Documented. Added a "cursor_activated" signal. Removed some unused
2001-01-25  Christopher James Lahey  <clahey@helixcode.com>

	* e-table-group-container.c, e-table-group-leaf.c,
	e-table-group.c, e-table-group.h, e-table-item.c, e-table-item.h:
	Documented.  Added a "cursor_activated" signal.  Removed some
	unused functions (e_table_group_get_count and
	e_table_group_get_ecol).

	* e-table-selection-model.c, e-table-selection-model.h: Added a
	"cursor_activated" signal.  Call it when the user changes the
	selection to match the cursor.

	* e-table.c, e-table.h: Added a "cursor_activated" signal.  Fixed
	the e_table_compute_location function to take into account the
	scrolled position.

svn path=/trunk/; revision=7808
2001-01-25 14:48:39 +00:00
7d1cbbaa10 Made this conform to the new prototype for e_popup_menu_run.
2001-01-21  Christopher James Lahey  <clahey@helixcode.com>

	* e-table-header-item.c (ethi_header_context_menu): Made this
	conform to the new prototype for e_popup_menu_run.

	* e-table-item.c, e-table-item.h: Documented.
	(e_table_item_is_row_selected): Removed this function.
	(eti_draw): Changed this so that if the ETableItem is in
	cursor-mode="row", the cursor is draw all the way across the row.
	(eti_cursor_move_up, eti_cursor_move_down): Commented these out
	since they're no longer used.
	(_do_tooltip, eti_event): Commented out tooltips.
	(eti_event): Made it so that we call the key_press function in the
	%ETableSelectionModel on each key press.

	* e-table-selection-model.c, e-table-selection-model.h:
	Documented.  Added a function e_table_selection_model_key_press
	that does whatever behavior is correct for the user having pressed
	the given key.  Changed the behavior of this to better match
	windows (use selection-mode="browse").

	* e-table-specification.c, e-table-specification.h: Added a
	draw_focus variable.

	* e-table.c: Decide whether to draw the focus based on the
	ETableSpecification.  Removed the argument for setting whether to
	draw the focus.

svn path=/trunk/; revision=7673
2001-01-21 05:46:49 +00:00
a35fff26e8 Keep track of the valid column names (not used right now).
2001-01-18  Miguel de Icaza  <miguel@gnu.org>

	* e-table-config.c (configure_sort_dialog): Keep track of the
	valid column names (not used right now).
	(config_destroy): release column names
	(entry_changed): Handle invalid input to mean "Next entry is
	grayed out".

	* e-table-header-item.c (ethi_popup_customize_view): Hook up to
	the "apply" signal on the dialog box to apply the changes.
	(apply_changes): New function to apply the changes from the
	ETableConfig object.

	* e-table-sort-info.c (e_table_sort_info_load_from_node): Notify
	of sort info changes.

	* e-table-header-item.c: Swapped the way arrows were done, so that
	they actually match the sorting that its expected.

	* e-table.c: Added inline documentation for a few methods.

	* e-table-config.h: Dropped ::spec, and temp_spec, we always use
	::source_spec, as we never modify this variable.

svn path=/trunk/; revision=7633
2001-01-19 04:48:04 +00:00
02c4a82a7f This fixes translations of library messages compared to application
This fixes translations of library messages compared to application messages.

2001-01-17  Miguel de Icaza  <miguel@gnu.org>

	* po/POTFILES.in: update.

	* gal/widgets/color-palette.c: use e-i18n.h

	* gal/util/e-i18n.h: Avoid inclussion of the GNOME i18n file as we
	provide our own.

2001-01-17  Miguel de Icaza  <miguel@gnu.org>

	* e-table-header-item.c: Use e-i18n.h here.

	* e-table.c (et_col_spec_to_col): Use gettext here.
	(et_real_construct): Use gettext too.
	(et_col_spec_to_col): Use gettext here.

	* e-cell-date.c: Use e-i18n.h here.

	* e-table-config.c (config_sort_info_update): Simplify column
	grabbing code and drop item layout code.
	(config_group_info_update): ditto.

	* e-table-config.c: Get correct translation setup working.

2001-01-17  Miguel de Icaza  <miguel@gnu.org>

	* e-group-bar.c: Use e-i18n.h

svn path=/trunk/; revision=7565
2001-01-17 07:59:19 +00:00
d645d1f236 Load frames.
2001-01-16  Miguel de Icaza  <miguel@gnu.org>

	* e-table-config.c (configure_sort_dialog): Load frames.

	* Kill e-table-config-field.c

	* e-table-specification.c (e_table_specification_save_to_file):
	Specify version to xmlNewDoc.

	* e-table-state.c (e_table_state_save_to_string): Specify version
	to xmlNewDoc.

	* e-table-config.c (config_destroy): Destroy the copies.  Unref
	the originals.
	(e_table_config_construct): Duplicate values of configuration
	here.
	(configure_sort_dialog): New function that populates the sort gtk
	combo boxes.

	* e-table.c (et_col_spec_to_col): Fixup use of title here.  Do the
	actual translation here.

	* e-table-column-specification.c: Remove title_, it is now called
	title.  Translation needs to take place elsewhere, not here

	* e-table-specification.c (e_table_specification_duplicate): Add
	preconditions here.
	(e_table_specification_save_to_node): ditto.
	(e_table_specification_save_to_string): ditto.
	(e_table_specification_save_to_file): ditto.

	* e-table-state.c (e_table_state_duplicate): Implement.

	* e-table-config.glade (dialog_sort): Change drop down menus to
	use GtkComboText widgets.

	* e-table-config.c (configure_dialog): New function, used to set
	up dialogs.

svn path=/trunk/; revision=7563
2001-01-17 06:56:04 +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
feccdbccfb Document all entry points. (e_table_specification_save_to_file): Change
2001-01-15  Miguel de Icaza  <miguel@gnu.org>

	* e-table-specification.c: Document all entry points.
	(e_table_specification_save_to_file): Change prototype to return
	the number of bytes written.
	(e_table_specification_duplicate):
	Implement a function to duplicate nodes.
	(e_table_specification_save_to_node): Implement missing function.
	(e_table_specification_save_to_file): Enable.
	(e_table_specification_save_to_string): Enable.
	(e_table_specification_load_from_node): Just load the normal
	version of the click-to-add-message version, let other code
	translate it.
	(e_table_specification_load_from_string): Alter prototype to
	return success code.

	* e-table-specification.h: Do not store the translated version,
	store the plain version, so we can restore this later during the
	saving routines.

	* e-table.c (et_real_construct): Translate click to add message here.


	* e-table-header-item.c: Destroy config object if we are
	destroyed.

svn path=/trunk/; revision=7518
2001-01-15 23:25:42 +00:00
cff9059380 Work on the ETableConfigurator. Pick up where Chris left.
Work on the ETableConfigurator.  Pick up where Chris left.

A lot more changes to come in the short future.

2001-01-15  Miguel de Icaza  <miguel@ximian.com>

	* e-table-config.c (config_group_info_update): Simplify
	signature.
	(config_sort_info_update): Simplify signature.
	(config_fields_info_update): Implement.
	(e_table_config_construct): Hook up field change spec.

	* e-table-header-item.c (config_destroyed): Add new utility
	function.

	* e-table-config.c (config_group_info_update): Simpify routine by
	using g_string.  Show a message if there is no grouping.

	* e-table-config.c: Made e-table-config dialog be a
	GnomePropertyBox.

	* e-table-header-item.c (ethi_popup_customize_view): Use the new
	api.

	* e-table-config.c (config_sort_info_update): Simplify this
	routine.  Fix bug that was not showing "unsorted" state.
	(setup_gui): Load XML user interface here.
	(config_init): Use Glade instead of manually coded user interface.
	(e_table_config_raise): New api call.

2001-01-14  Miguel de Icaza  <miguel@ximian.com>

	* e-table-config.h: Change parent to be a GtkObject from
	GnomeDialog.

svn path=/trunk/; revision=7495
2001-01-15 07:34:27 +00:00
36c2e49513 Added selection_mode argument.
2001-01-11  Christopher James Lahey  <clahey@helixcode.com>

	* e-table-selection-model.c, e-table-selection-model.h: Added
	selection_mode argument.

	* e-table-specification.c, e-table-specification.h: Added a
	selection_mode field that is set based on the selection-mode
	attribute in the ETableSpecification element.

	* e-table.c (et_real_construct): Set the selection model's
	selection mode based on the ETableSpecification.

svn path=/trunk/; revision=7427
2001-01-12 03:57:32 +00:00
a1ca83afd9 Added expansions field and loading and saving of that field.
2001-01-10  Christopher James Lahey  <clahey@helixcode.com>

	* e-table-state.c, e-table-state.h: Added expansions field and
	loading and saving of that field.

	* e-table.c: Load and save expansion data.

svn path=/trunk/; revision=7366
2001-01-10 18:15:13 +00:00
51284ee84a Destroy text and pixbuf if they exist whether or not is_pixbuf is set.
2000-12-23  Christopher James Lahey  <clahey@helixcode.com>

	* e-table-col.c, e-table-col.h (etc_destroy): Destroy text and
	pixbuf if they exist whether or not is_pixbuf is set.
	(e_table_col_new_with_pixbuf): Make new_with_pixbuf take a title
	argument which is for when you can't display pixmaps.

	* e-table-column-specification.c
	(e_table_column_specification_load_from_node): Don't translate the
	pixbuf string attribute.

	* e-table-sort-info.c, e-table-sort-info.h
	(e_table_sort_info_load_from_node): Added a state_version
	parameter to the load_from_node function.  This lets the loader
	specify which version of ETableState is being processed.  If it's
	less than .05, use the old nested version.  If it's greater, use
	the new flat version.
	(e_table_sort_info_save_to_node): Changed this to store a list of
	group and leaf nodes instead of nesting the group nodes and leaf
	nodes one inside the other.  This is much easier to understand and
	requires less typing when creating a new ETableSpecification's
	initial ETableState.

	* e-table-state.c: Changed the state-version parameter to 0.1.
	(e_table_state_load_from_node): Use
	e_xml_get_double_prop_by_name_with_default so that we can specify
	a state-version default of 0.1 for people writing ETableStates by
	hand.  Pass the state-version to e_table_sort_info_load_from_node.

	* e-table.c (et_col_spec_to_col): Pass the title from the
	ETableColumnSpecification to the ETableCol even if it's a pixbuf
	column.

svn path=/trunk/; revision=7138
2000-12-23 05:55:20 +00:00
feea74a8a7 Removed the set cursor and get cursor methods from ETableGroup.
2000-12-14  Christopher James Lahey  <clahey@helixcode.com>

	* e-table-group-container.c, e-table-group-leaf.c,
	e-table-group.c, e-table-group.h: Removed the set cursor and get
	cursor methods from ETableGroup.

	* e-table.c (e_table_get_cursor_row, e_table_set_cursor_row):
	Changed this to use the ETableSelection directly instead of going
	through the grouping structure.  This seems to fix a bug in
	evolution's folder list for some people.

svn path=/trunk/; revision=7018
2000-12-14 19:02:13 +00:00
a000f7480b New function to calculate the extra pixels per column header.
2000-12-13  Christopher James Lahey  <clahey@helixcode.com>

	* e-table-header-utils.c, e-table-header-utils.h
	(e_table_header_width_extras): New function to calculate the extra
	pixels per column header.

	* e-table-header.c, e-table-header.h: Added a "width_extras"
	argument which is used to calculate the correct minimum widths for
	each column header after adding padding.

	* e-table-item.c (_do_tooltip): Destroy the old tooltip window
	when creating the new one.
	(eti_event): Destroy the old tooltip window if the person presses
	a key.  Don't handle the tab key.

	* e-table.c (et_state_to_header): Set the ETableHeader's
	width_extras argument.

svn path=/trunk/; revision=6978
2000-12-13 22:34:36 +00:00
adf19f49fb set "sort_info" on our sorter when we get a new sort_info to keep things
2000-12-07  Chris Toshok  <toshok@helixcode.com>

	* e-table.c (e_table_set_state_object): set "sort_info" on our
	sorter when we get a new sort_info to keep things in sync.

	* e-table-sorter.c (ets_set_arg): new function, allowing the
	setting of "sort_info".
	(ets_get_arg): new function, allowing the getting of "sort_info".
	(ets_class_init): fill in GtkObject::set_arg and get_arg.
	(ets_sort): set ets->needs_sorting to 0 so we don't sort
	unnecessarily.
	(e_table_sorter_model_to_sorted): we may have ets->backsorted (and
	should use it if we do) even if we didn't need to sort.
	(e_table_sorter_sorted_to_model): same, except ets->sorted.

svn path=/trunk/; revision=6857
2000-12-07 23:55:56 +00:00
640883f04d Add column and GdkEvent * parameters to the double click signal.
2000-12-07  Christopher James Lahey  <clahey@helixcode.com>

	* e-table-group-container.c, e-table-group-leaf.c,
	e-table-group.c, e-table-group.h, e-table-item.c, e-table.c,
	e-table.h: Add column and GdkEvent * parameters to the double
	click signal.

	* e-table-header-item: Unref the ETableFullHeader when we're done
	with it.

	* e-table-scrolled.c, e-table-scrolled.h: Remove all of the
	proxies and add a function e_table_scrolled_get_table and a gtk
	argument "table".

svn path=/trunk/; revision=6850
2000-12-07 23:28:30 +00:00
a22a4c17a5 Free the xmlDoc when we are done with it. (e_table_state_save_to_file):
2000-12-07  Federico Mena Quintero  <federico@helixcode.com>

	* e-table-state.c (e_table_state_save_to_string): Free the xmlDoc
	when we are done with it.
	(e_table_state_save_to_file): Ditto.

	* e-table.c (e_table_get_state): Unref the state object; why was
	it being sunk instead?
	(e_table_save_state): Ditto.
	(e_table_load_state): Ditto.
	(e_table_set_state): Ditto.

	* e-table-header-item.c (ethi_destroy): Free the ethi->dnd_code.

svn path=/trunk/; revision=6837
2000-12-07 16:24:42 +00:00
93f5add731 disconnect the "group_info_changed" signal on the old sort_info and
* e-table.c (e_table_set_state_object): disconnect the
	"group_info_changed" signal on the old sort_info and connect it to
	the new one. (Noticed because of a gtk warning in et_destroy, but
	probably fixes some actual bug(s) too.)

svn path=/trunk/; revision=6809
2000-12-06 18:15:31 +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