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
Tue Oct 3 18:28:09 2000 Christopher James Lahey <clahey@helixcode.com>
* e-table-config.glade, e-table-config.glade.h: Put in 3 more
dialog boxes in these files.
svn path=/trunk/; revision=5696
2000-10-02 Chris Toshok <toshok@helixcode.com>
* e-tree-model.h: change/add prototypes and a typedef for
ETreePathCompareFunc.
* e-tree-model.c (e_tree_model_node_set_compare_function): new
function, used to set the comparison function for sorted nodes.
Eventually sorting entail just calling this function, with the
tree maintaining the sort.
(e_tree_model_node_sort): use a helper function
(e_tree_model_node_compare) to allow the e-tree user's comparison
function to take mode reasonable paramaters. also, fix it so the
previous expanded state is kept with the node. i can't believe i
wrote it the way it originally was. also, don't take the
comparison function here. it's set in
e_tree_model_node_set_compare_function.
svn path=/trunk/; revision=5674
2000-10-02 Chris Toshok <toshok@helixcode.com>
* e-tree-model.c (e_tree_model_node_sort): don't screw things up
if we sort a collapsed node.
svn path=/trunk/; revision=5673
2000-10-02 Chris Toshok <toshok@helixcode.com>
* tree-unexpanded.xpm: flip black and gray, the way i intended them to be.
* tree-expanded.xpm: same.
svn path=/trunk/; revision=5665
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-09-27 Iain Holmes <iain@helixcode.com>
* e-cell-text.c: Fudge the location of a click in the tooltip, so
that it selects the current cell.
Pass keyboard events to the e-table.
* e-table-item.c: Don't show the tooltip if the cell is being editted.
Also don't destroy the tooltip until the button release event (other
wise the e-table-item starts a select)
2000-09-25 Iain Holmes <iain@helixcode.com>
* e-table-header-item.c (draw_button): Calculate the vertical
offset correctly to centre text.
2000-09-25 Iain Holmes <iain@helixcode.com>
* e-table-header-item.c (ethi_popup_best_fit): Fill this out
to call the "request_width" signal and set the new size.
svn path=/trunk/; revision=5599
2000-09-26 Chris Toshok <toshok@helixcode.com>
* gal/e-table/e-table.c (e_table_setup_table): drag/drop signals need to be
added to the same object that is passed to gtk_drag_begin in
e_table_drag_begin. namely, the ETable.
(et_drag_data_received): fix typo - should emit
TABLE_DRAG_DATA_RECEIVED, not TABLE_DRAG_MOTION.
svn path=/trunk/; revision=5590
2000-09-25 Chris Toshok <toshok@helixcode.com>
* gal/e-table/e-tree-model.h: add save_state stuff to ETreeModel, and
prototypes for the public methods.
* gal/e-table/e-tree-model.c: add save_id to the ENode.
(expanded_remove_func): new function, iterator to delete the save
id's.
(etree_destroy): iterate over expanded_state.
(etree_set_expanded): if the node has a save id, make sure to
update both the collapsed and expanded counts.
(e_tree_model_node_insert_id): convenience function that inserts a
node and sets its id.
(e_tree_model_node_sort): remove extra spew.
(save_expanded_state_func): new function, iterator for saving
expanded state.
(e_tree_model_save_expanded_state): new function.
(get_string_value): helper function for loading.
(e_tree_model_load_expanded_state): new function.
(e_tree_model_node_set_save_id): sets the save id for a node,
adding it to the hashtable if it's not already there. if the id
was there previously, set the expanded flag of the node
accordingly.
svn path=/trunk/; revision=5573
2000-09-24 Chris Toshok <toshok@helixcode.com>
* e-tree-model.c (e_tree_model_node_sort): fix sorting - need to
update the row_array as well as the actual structure of the
GNodes.
svn path=/trunk/; revision=5564
2000-09-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
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-11 Christopher James Lahey <clahey@helixcode.com>
* e-table.c: Made page up and page down active in the ETable.
svn path=/trunk/; revision=5319
2000-09-08 Christopher James Lahey <clahey@helixcode.com>
* e-tree-example-1.c: Added base ETableModel functions.
* e-tree-example-2.c: Added base ETableModel functions. Made it
never return NULL as a string, instead return "".
* e-tree-simple.c, e-tree-simple.h: Require base ETableModel
functions.
svn path=/trunk/; revision=5266
2000-09-01 Christopher James Lahey <clahey@helixcode.com>
* e-table-item.c, e-table.c: Fixed a leak and a double unref.
svn path=/trunk/; revision=5174
2000-09-01 Chris Toshok <toshok@helixcode.com>
* e-tree-example-2.c: new test, a home grown 2 hour hack of a file
browser. uses node_collapsed/emitted signals to populate the left
tree.
* Makefile.am: add tree-example-2.c stuff.
* .cvsignore: add tree-example-2
svn path=/trunk/; revision=5163
2000-09-01 Chris Toshok <toshok@helixcode.com>
* e-tree-model.h: add signals/prototypes for
e_tree_model_node_collapsed and e_tree_model_node_expanded.
* e-tree-model.c (etree_set_expanded): emit
node_expanded/node_collapsed signals, with node_expanded happening
before the expansion so it can much with the children, and
collapsed being emitted after.
(e_tree_model_row_of_node): remove stupid check, and g_warning.
(e_tree_model_node_collapsed): new function.
(e_tree_model_node_expanded): new function.
svn path=/trunk/; revision=5162
2000-08-31 Christopher James Lahey <clahey@helixcode.com>
* e-table-selection-model.c: Made the selection work when shift
clicking on the first row of the table.
svn path=/trunk/; revision=5139
2000-08-28 Christopher James Lahey <clahey@helixcode.com>
* e-table-group-container.c: Make printing of groups work better
and make them print headers.
* e-table-item.c: Turn off alternating row support.
svn path=/trunk/; revision=5086
2000-08-25 Christopher James Lahey <clahey@helixcode.com>
* e-table-col.c, e-table-config.c, e-table-header.c,
e-table-text-model.c: Added some g_return_if_fails and
g_return_val_if_fails.
svn path=/trunk/; revision=5056
2000-08-24 Christopher James Lahey <clahey@helixcode.com>
* e-table.c: Fix an off by one error that was causing crashes.
svn path=/trunk/; revision=5027
2000-08-24 Christopher James Lahey <clahey@helixcode.com>
* e-table.c: Set default values for all of the signal emissions.
svn path=/trunk/; revision=5026
2000-08-24 Christopher James Lahey <clahey@helixcode.com>
* e-table-selection-model.c: Check for selection->selection being
NULL in e_table_selection_model_selected_count.
svn path=/trunk/; revision=5025
2000-08-24 Christopher James Lahey <clahey@helixcode.com>
* e-table-item.c: Pay attention to the return value from the click
signal.
svn path=/trunk/; revision=5022
2000-08-24 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,
e-table.c, e-table.h: Added a click signal which gets sent if the
user hits the left or middle mouse button on a cell.
svn path=/trunk/; revision=5020
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-23 Christopher James Lahey <clahey@helixcode.com>
* e-table-subset-variable.c: Fixed a bug in
e_table_subset_variable_increment that causes problems with
ETree's. Specifically, when you incremented at position x, the
row x didn't get incremented as it should (s/>/>=/.)
svn path=/trunk/; revision=4994
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-21 Chris Toshok <toshok@helixcode.com>
* e-tree-example-1.c (remove_node): we can remove nodes with
children now.
* e-tree-model.h: add prototype for e_tree_model_node_sort.
* e-tree-model.c (etree_set_expanded): if the node is invisible,
just set its expanded flag and return.
(e_tree_model_root_node_set_visible): call set_expanded before we
remove it from the row array or else the aforementioned change
will result in nothing happening.
(e_tree_model_node_insert): use a position of -1 as "append".
(e_tree_model_node_insert): if the model was marked with
root_visible == FALSE, make sure to set it's expanded flag to TRUE
when the root node is inserted.
(e_tree_model_node_sort): new function.
svn path=/trunk/; revision=4912