aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/table/e-tree-model.c
Commit message (Collapse)AuthorAgeFilesLines
* Changed to take into account the sort group, if the table has one.xNot Zed2000-10-041-1/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* change/add prototypes and a typedef for ETreePathCompareFunc.Chris Toshok2000-10-031-44/+90
| | | | | | | | | | | | | | | | | | | | | | 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
* don't screw things up if we sort a collapsed node.Chris Toshok2000-10-031-2/+5
| | | | | | | | | 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
* reinstate file.Chris Toshok2000-10-031-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* add save_state stuff to ETreeModel, and prototypes for the public methods.Chris Toshok2000-09-261-7/+203
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fix include typo.Ariel Rios2000-09-251-1/+1
| | | | | | | | 2000-09-24 Ariel Rios <ariel@arcavia.com> * e-tree-model.c: Fix include typo. svn path=/trunk/; revision=5566
* fix sorting - need to update the row_array as well as the actual structureChris Toshok2000-09-251-4/+20
| | | | | | | | | | 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
* Moved files, fixed header files and paths - FedericoFederico Mena Quintero2000-09-201-1/+1
| | | | svn path=/trunk/; revision=5513
* Fixed e-table #includes so that it would compile.Chris Lahey2000-09-181-1/+1
| | | | svn path=/trunk/; revision=5482
* add signals/prototypes for e_tree_model_node_collapsed andChris Toshok2000-09-011-8/+56
| | | | | | | | | | | | | | | | | 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
* Remove a ton of (hopefully harmless) warnings from the ETable code.Ettore Perazzoli2000-08-281-0/+3
| | | | svn path=/trunk/; revision=5081
* Moved drawing of the cell backgrounds from ECell into ETableItem.Christopher James Lahey2000-08-221-0/+1
| | | | | | | | | | | 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
* we can remove nodes with children now.Chris Toshok2000-08-221-5/+49
| | | | | | | | | | | | | | | | | | | | | | 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
* Call our parent's destroy method.Miguel de Icaza2000-08-091-0/+5
| | | | | | | | | 2000-07-18 Miguel de Icaza <miguel@helixcode.com> * e-tree-model.c (etree_destroy): Call our parent's destroy method. svn path=/trunk/; revision=4643
* When inserting a root node, only call e_table_model_row_inserted ifDan Winship2000-07-091-4/+4
| | | | | | | | | | * e-tree-model.c (e_tree_model_node_insert): When inserting a root node, only call e_table_model_row_inserted if root_visible. (e_tree_model_node_remove): Call e_table_model_row_deleted before removing the row from the row_array, because the chain of signal handlers will sometimes need that info. svn path=/trunk/; revision=3994
* add a g_return_val_if_fail to etree_node_at_rowDan Winship2000-07-071-2/+2
| | | | svn path=/trunk/; revision=3937
* Make this work recursively.Dan Winship2000-07-071-1/+8
| | | | | | | * e-tree-model.c (e_tree_model_node_remove): Make this work recursively. svn path=/trunk/; revision=3935
* Calculate height including if clip_height is set to -1.Christopher James Lahey2000-06-271-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-06-26 Christopher James Lahey <clahey@helixcode.com> * widgets/e-text/e-text.c: Calculate height including if clip_height is set to -1. From addressbook/ChangeLog: 2000-06-26 Christopher James Lahey <clahey@helixcode.com> * contact-editor/e-contact-editor-categories.c, addressbook/gui/component/e-cardlist-model.c: Added value_to_string handlers. * demo/addressbook-widget.c, demo/demo.c: Removed usage of "x" and "y" arguments. * addressbook/gui/component/addressbook.c: Activated Click To Add and set the click to add message. * addressbook/gui/component/e-addressbook-model.c: Added value_to_string and append_row handlers. * addressbook/gui/component/e-select-names.c: Added a column. From calendar/ChangeLog: 2000-06-26 Christopher James Lahey <clahey@helixcode.com> * gui/calendar-model.c: Added an #ifdefed value_to_string handler assignment. From camel/ChangeLog: 2000-06-26 Christopher James Lahey <clahey@helixcode.com> * providers/mbox/camel-mbox-summary.c: Added debugging information. From composer/ChangeLog: 2000-06-26 Christopher James Lahey <clahey@helixcode.com> * Makefile.am: Added e-msg-composer-select-file.h for make distcheck. From e-util/ChangeLog: 2000-06-26 Christopher James Lahey <clahey@helixcode.com> * Makefile.am: Added e-canvas-vbox.c and e-canvas-vbox.h. * e-canvas-vbox.c, e-canvas-vbox.h: New canvas object to act like a vbox using the reflow system. From mail/ChangeLog: 2000-06-26 Christopher James Lahey <clahey@helixcode.com> * message-list.c: Added a value_to_string handler. From shell/ChangeLog: 2000-06-26 Christopher James Lahey <clahey@helixcode.com> * glade/Makefile.am: Added EXTRA_DIST for make distcheck. From widgets/e-table/ChangeLog: 2000-06-26 Christopher James Lahey <clahey@helixcode.com> * Makefile.am: Added e-table-click-to-add.c, e-table-click-to-add.h, e-table-one.c, and e-table-one.h. * e-table-click-to-add.c, e-table-click-to-add.h: A new canvas item that represents a single row that sometimes exists. It's for adding new rows to your table. * e-table-example-1.c, e-table-example-2.c, e-table-size-test.c, test-check.c, test-cols.c, test-table.c: Added value_to_string handlers. * e-table-group-container.c: Use value_to_string to make grouping not crash for non string columns. Made some changes to work properly in an ECanvasVbox. * e-table-group-leaf.c, e-table-item.c: Made some changes to work properly in an ECanvasVbox. * e-table-model.c, e-table-model.h: Added append_row and value_to_string methods. * e-table-one.c, e-table-one.h: Given a source ETableModel, this provides a single row model that uses the initialize_value, duplicate_value, free_value, and value_is_empty methods of the original source to implement set_value and value_at (and proxies most of the other methods.) This is used for ETableClickToAdd. * e-table-simple.c, e-table-simple.h: Added append_row and value_to_string handlers. append_row uses a GtkArg instead of a parameter to e_table_simple_new. * e-table-subset.c: Added append_row and value_to_string handlers. * e-table.c, e-table.h: Use a vbox containing an ETableClickToAdd and an ETableItem instead of an ETableItem directly. Only show the ETableClickToAdd if the top level of the xml SPEC has the attribute click-to-add set to some non-zero integer. (click-to-add="1"). Add a "click_to_add_message" argument. * e-tree-model.c: Add a commented out value_to_string handler. From widgets/meeting-time-sel/ChangeLog: 2000-06-26 Christopher James Lahey <clahey@helixcode.com> * Makefile.am: Added the include path to top_srcdir. svn path=/trunk/; revision=3744
* add icon_at virtual function - it was stupid to make the insert call takeChris Toshok2000-06-231-33/+15
| | | | | | | | | | | | | | | | | | | | 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
* use the expanded/unexpanded pixbufs as node pixbufs for the first level ofChris Toshok2000-06-231-2/+37
| | | | | | | | | | | | | | | | | | | | 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
* call e_table_model_row_inserted instead of e_table_model_changed.Chris Toshok2000-06-201-4/+4
| | | | | | | | | 2000-06-17 Chris Toshok <toshok@helixcode.com> * e-tree-model.c (e_tree_model_node_insert): call e_table_model_row_inserted instead of e_table_model_changed. svn path=/trunk/; revision=3637
* change things so we focus the cell and select the row, and also dispatchChris Toshok2000-06-111-90/+459
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* New files. A tree model using a GNode structure to store it's info.Chris Toshok2000-06-091-0/+316
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