2001-01-21 Christopher James Lahey <clahey@helixcode.com>
* e-table-selection-model.c: Made the cursor move when rows are
inserted or deleted. If in single mode and the selected row gets
removed, move it up.
svn path=/trunk/; revision=7691
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
Do most of the work to get Grouping working, by reusing massive
ammounts of code from the sorting pieces.
2001-01-19 Miguel de Icaza <miguel@gnu.org>
* e-table-config.c (group_entry_changed, group_ascending_toggled):
New methods.
(configure_group_dialog): New function, sets up the group GUI.
(e_table_config_construct): Populate column names here and use in
configure_group_dialog and configure_sort_dialog
(sort_entry_changed, sort_ascending_toggled): renamed from
entry_changed, ascending_toggled.
svn path=/trunk/; revision=7637
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-18 Federico Mena Quintero <federico@ximian.com>
* e-table-subset.c (etss_destroy): Disconnect from the
etss->source's signals *before* we unref it.
* e-table-group-container.c (e_table_group_apply_to_leafs): Ref()
and unref() around the callback to protect ourselves from being
unrefed in the middle of iterating through the nodes.
svn path=/trunk/; revision=7621
2001-01-18 Miguel de Icaza <miguel@gnu.org>
* e-table-config.c (find_model_column_by_name): New function.
(update_sort_config_dialog): Massive update to this function, it
is almost complete now, it just needs a few cosmetic touchups.
(config_sort_config_show): Get the main interaction working as
well.
(config_group_info_update): Beautify.
(entry_changed): Do all the magic for the GUI for entries.
(ascending_toggled): Implement callback.
(configure_sort_dialog): Do also descending.
(configure_sort_dialog): Hook up changed/toggled.
* e-table-config.h: Put all the configuration stuff for sorting
into its own structure to pass around funny functions.
svn path=/trunk/; revision=7617
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-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-16 Christopher James Lahey <clahey@helixcode.com>
* e-table-config.c: Added a bit of documentation.
(config_sort_config_show, config_group_config_show):
gnome_dialog_set_parent on the config->dialog_toplevel instead of
the config.
* e-table-specification: Pass "1.0" instead of NULL to xmlNewDoc
here.
* e-table-state.c, e-table-state.h: Pass "1.0" instead of NULL to
xmlNewDoc here. Make sure that sort_info is never NULL if this
object exists. Added ETableStateDuplicate.
svn path=/trunk/; revision=7542
2001-01-15 Christopher James Lahey <clahey@ximian.com>
* Makefile.am: Added e-cell-date.c, e-cell-date.h, e-cell-size.c,
and e-cell-size.h.
* e-cell-date.c, e-cell-date.h: New cell to implement displaying a
date.
* e-cell-size.c, e-cell-size.h: New cell to implement displaying a
file size.
* e-cell-text.c, e-cell-text.h: Got rid of the filter arguments.
Replaced them with the ability to subclass ECellText and override
the get_text method. Added free_text to override if your get_text
implementation returns allocated memory.
* e-table-extras.c (ete_init): Added "size" and "date" cells to
the default ETableExtras.
svn path=/trunk/; revision=7523
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 Miguel de Icaza <miguel@ximian.com>
* e-table-config.c (config_fields_info_update): Make output
pretier by using newlines when there is a lot of information to
display.
(config_group_info_update): ditto.
(config_sort_info_update): ditto.
svn path=/trunk/; revision=7517
2001-01-15 Miguel de Icaza <miguel@ximian.com>
* e-table-config.c (config_fields_info_update): Make output
pretier by using newlines when there is a lot of information to
display.
(config_group_info_update): ditto.
(config_sort_info_update): ditto.
svn path=/trunk/; revision=7497
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-12 Christopher James Lahey <clahey@helixcode.com>
* e-cell-text.h, e-cell-text.h: Changed the filter function back
to being args to be more consistent with the rest of the object.
svn path=/trunk/; revision=7465
2001-01-12 Miguel de Icaza <miguel@ximian.com>
* e-cell-text.c (key_begins_editing): New function. Tells whether
a key should begin editing.
(ect_event, GDK_KEY_PRESS/RELEASE): check whether we should start
editing.
svn path=/trunk/; revision=7445
2001-01-12 Miguel de Icaza <miguel@ximian.com>
* e-cell-text.c (e_cell_text_set_filter): Implement new function
API. Remove Gtk arguments for this.
(ect_height): Pass all the extra information Dan requested.
(ect_print): Pass all the extra information Dan requested.
(build_current_cell): ditto.
svn path=/trunk/; revision=7444
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-10 Christopher James Lahey <clahey@helixcode.com>
* e-table-click-to-add.c: Made this the same size as an ETableItem
with all text items. Made the background color white. These need
to be made themeable.
svn path=/trunk/; revision=7370
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 Christopher James Lahey <clahey@helixcode.com>
* e-tree-sorted-variable.c, e-tree-sorted-variable.h: Unfinished
sorted variable model for ETree.
svn path=/trunk/; revision=7355
2001-01-06 Christopher James Lahey <clahey@helixcode.com>
* e-table-sorter.c, e-table-sorter.h (ets_sort): Fixed sorting.
needs_sorting was getting set to 0 when sorted happens, but
needs_sorting tells you whether or not the sorter is sorted or
not, not whether the sorting has happened. Documented the
needs_sorting variable.
svn path=/trunk/; revision=7281
2000-12-27 Christopher James Lahey <clahey@helixcode.com>
* e-cell-text.c (ect_draw, ect_event): Removed a bunch of unused
code.
svn path=/trunk/; revision=7179
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-19 Christopher James Lahey <clahey@helixcode.com>
* e-table-group-container.c (etgc_add): Set the minimum width of
newly created children.
(e_table_group_container_construct): Use function
e_table_header_get_column_by_col_idx instead of
e_table_header_get_column since we're passing in a col_idx.
* e-table-header.c, e-table-header.h: New function
e_table_header_get_column_by_col_idx which searches for a column
in the ETableHeader with a certain model column (col_idx).
* e-table-sorted-variable.c (etsv_compare),
(etsv_sort), e-table-sorter.c (ets_sort): Use function
e_table_header_get_column_by_col_idx instead of
e_table_header_get_column since we're passing in a col_idx.
svn path=/trunk/; revision=7079
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 Chris Toshok <toshok@helixcode.com>
* e-cell-text.c (ect_show_tooltip): call set_style and use the
appropriate style for the text to determine if the tooltip should
be shown.
svn path=/trunk/; revision=7016
2000-12-14 Christopher James Lahey <clahey@helixcode.com>
* e-table-item.c (eti_realize): Commented out an unused variable
to fix a warning.
svn path=/trunk/; revision=7014
2000-12-13 Christopher James Lahey <clahey@helixcode.com>
* e-table-item.c (eti_realize): Added eti_visibility_notify.
Didn't get it to work properly, so it's #if 0ed out.
svn path=/trunk/; revision=6991
2000-12-13 Christopher James Lahey <clahey@helixcode.com>
* e-cell-text.c (ect_show_tooltip): Changed the background color
of the tooltips to light gray.
* e-table-item.c (eti_event): Changed the tooltip timeout to 100
milliseconds.
svn path=/trunk/; revision=6988
2000-12-13 Chris Toshok <toshok@helixcode.com>
* e-cell-tree.c (ect_show_tooltip): remove the silly logic - we
pop up a tooltip regardless of where the mouse cursor hovers.
just make sure it appears in the right place.
(ect_event): reverse the change we make to the event after passing
it to our subcell. this fixes the problem of the tree reacting
twice to events (once with flags == 0, and once with flags ==
E_CELL_EDITING).
* e-table-item.c (eti_event): destroy the tooltip window on a
motion event. this can (and does) happen when we get a tooltip on
a tree cell and the cursor isn't over the area where the tooltip
pops up.
svn path=/trunk/; revision=6979
2000-12-13 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 Chris Toshok <toshok@helixcode.com>
* e-cell-tree.c (ect_event): only return TRUE in the BUTTON_PRESS
case if the node was expandable.
svn path=/trunk/; revision=6977
2000-12-13 Chris Toshok <toshok@helixcode.com>
* e-table-sorter.c (qsort_callback_complex),
(ets_sort_build_subset), (ets_sort_subset),
(ets_sort_free_subset), (sort_groups_compare),
(ets_sort_by_group): cut&paste from e-table-sorted-variable.c and
massage names a bit to make sort group sorting work.
(ets_sort): if the ETableModel has sort groups, sort using the
sort group.
svn path=/trunk/; revision=6975
2000-12-11 Christopher James Lahey <clahey@helixcode.com>
* e-cell-text.c (ect_draw): Made selected rows ignore their color
specification.
svn path=/trunk/; revision=6935
2000-12-09 Christopher James Lahey <clahey@helixcode.com>
* e-cell-text.c (_blink_scroll_timeout): Split the lines in this
cell before testing whether we're to the right of the right edge
of the text data (since that test uses the split lines.)
svn path=/trunk/; revision=6892
2000-12-09 Christopher James Lahey <clahey@helixcode.com>
* e-cell-text.c (_blink_scroll_timeout): cell should be edit cast
to a CurrentCell, not data cast to a CurrentCell. Fixed this.
svn path=/trunk/; revision=6890
2000-12-09 Christopher James Lahey <clahey@helixcode.com>
* e-cell-text.c: Added the actions parameter to ect_event. Added
an actions field to CellEdit. Handle CellEdit properly in the
ect_event function to do grabbing and ungrabbing when
appropriate. Set the actions field in CellEdit when appropriate
in e_cell_text_view_command.
* e-cell-toggle.c, e-cell-tree.c, e-cell.c, e-cell.h: Added a
ECellActions enum, a ECellActions actions parameter to
e_cell_event and added the actions parameter to all the handlers
of the event method including having ECellTree pass it on to its
child cell.
* e-table-header-item.c: Use the NULL cursor instead of the
E_CURSORS_ARROW cursor.
* e-table-item.c, e-table-item.h: Added grabbed_row and
grabbed_col fields to ETableItem (-1 on either means ungrabbed.)
Pay attention to them in the find_cell function. Handle the
actions parameter of e_cell_event and grab or ungrab the pointer
to a given cell if requested. This is done using the new function
eti_e_cell_event (which is internal to e-table-item.c,) instead of
the old e_cell_event function call. Fake an ungrabbed table when
calling find_cell from within the compute_location method.
svn path=/trunk/; revision=6889