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-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-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
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-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
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-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-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
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-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-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-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 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 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
* 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-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-10-20 Christopher James Lahey <clahey@helixcode.com>
* e-table.c, e-table.h: Added e_table_set_state_object which loads
the state from the given ETableState object.
svn path=/trunk/; revision=6099
2000-10-18 Christopher James Lahey <clahey@helixcode.com>
* e-cell-text.c: Make text a different color if !(flags &
E_CELL_FOCUSED).
* e-cell.h: Added E_CELL_FOCUSED to flags.
* e-table-item.c: Changed the background color of selected cells
if the widget is focused. Send E_CELL_FOCUSED to flags if the
widget is focused.
* e-table.c: Repaint the window if focus changes.
svn path=/trunk/; revision=6010
2000-10-18 Christopher James Lahey <clahey@helixcode.com>
* e-table.c: Fixed the color of the background rectangle. Made
the rectangle start at the bottom of the table so that the row
lines are still there.
svn path=/trunk/; revision=5993
2000-10-18 Christopher James Lahey <clahey@helixcode.com>
* e-table.c: Make background color of ETable match the background
color of item rows.
svn path=/trunk/; revision=5989
2000-10-18 Christopher James Lahey <clahey@helixcode.com>
* e-table-field-chooser-dialog.h: Removed an unnecessary glade
include file.
* e-table-field-chooser.c: Make sure that glade is initialized.
* e-table.c, e-table.h: Added a white background to the ETable.
svn path=/trunk/; revision=5988
2000-10-15 Christopher James Lahey <clahey@helixcode.com>
* e-table.c: Made it so that ETable won't use a state with 0
columns.
svn path=/trunk/; revision=5931
2000-10-13 Christopher James Lahey <clahey@helixcode.com>
* gal/Makefile.am: Added e-table-config-field.lo.
* tests/test-tree-2.c: Changed this to use cursor-mode in the xml
instead of the no longer existing gtk argument.
From gal/e-table/ChangeLog:
2000-10-13 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added e-table-config-field.c and
e-table-config-field.h.
* e-table-column-specification.c: Cleaned this up a bit. Made it
leak less memory.
* e-table-config-field.c, e-table-config-field.h: New files.
This is the configuration widgets for sorting or grouping.
* e-table-config.c, e-table-config.h: Nuked these and replaced
them with a widget that handles all the ETable configuration.
* e-table-config.glade, e-table-config.glade.h: Updated this a bit
to match what's actually being used better. This isn't used in
actual code.
* e-table-header-item.c, e-table-header-item.h: Added a pointer to
the table in the header item structure so that we can launch the
configuration from the header item right click menu. Made the
header item launch the ETable configuration dialog.
* e-table.c, e-table.h: Keep the spec given to us around. Added a
get_state_object function which returns an ETableState *. Set the
"table" argument on the header item.
svn path=/trunk/; revision=5901
2000-10-11 Christopher James Lahey <clahey@helixcode.com>
* tests/test-tree-1.c, tests/test-tree-2.c, tests/test-tree-3.c:
Changed these to use the default cells.
From gal/e-table/ChangeLog:
2000-10-11 Christopher James Lahey <clahey@helixcode.com>
* e-cell-text.c, e-cell-text.h, e-cell-tree.c, e-cell-tree.h: Got
rid of the model parameter to e_cell_text_new and e_cell_tree_new
as they aren't used.
* e-table-extras.c: Added default "integer" compare and default
"tree-string", "string", and "checkbox" cells.
* e-table.c: Made this use the draw-grid, cursor-mode, and
_click-to-add-message fields from the xml.
svn path=/trunk/; revision=5841
2000-10-11 Christopher James Lahey <clahey@helixcode.com>
* tests/test-tree-1.c, tests/test-tree-2.c, tests/test-tree-3.c:
Changed these to match the new ETable system.
* gal/Makefile.am: Added e-table-column-specification.lo,
e-table-extras.lo, e-table-specification.lo, and e-table-state.lo.
From gal/e-table/ChangeLog:
2000-10-11 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added e-table-column-specification.c,
e-table-column-specification.h, e-table-extras.c,
e-table-extras.h, e-table-specification.c,
e-table-specification.h, e-table-state.c, and e-table-state.h.
Removed some duplicated .h files.
* e-cell-tree.c: Ref, sink, and unref the subcell instead of destroying
it when done.
* e-table-column-specification.c, e-table-column-specification.h:
New class which describes a column without having a table get
instantiated.
* e-table-config.c: Changed get_specification to get_state to get
this to compile.
* e-table-defines.h, e-table-item.h: Moved the definition of
ETableCursorMode from e-table-item.h to e-table-defines.h.
* e-table-extras.c, e-table-extras.h: New class which acts as a
set of 3 hash tables. All from char * and to alternately, ECells,
GCompareFuncs, and GdkPxibufs.
* e-table-scrolled.c, e-table-scrolled.h: Changed this to match
the new ETable function declarations.
* e-table-sort-info.c, e-table-sort-info.h: Added functions for
saving to and loading from xml.
* e-table-specification.c, e-table-specification.h: New class
which describes a table without having to instantiate it.
* e-table-state.c, e-table-state.h: New class which describes the
state of a table without having to instantiate the table.
* e-table.c, e-table.h: Changed this to accept both a state and a
specification instead of just a specification. You then save only
the state. The specification stays exactly the same. Also, you
no longer need to pass in an ETableHeader. Most of the
information contained in the ETableHeader are in the
specification. However you may need to translate some of the
strings in the specification to objects. If you need anything
other than the builtin choices, you need to create an ETableExtras
and pass it in.
* e-tree-model.c: Removed an unused variable.
svn path=/trunk/; revision=5837
2000-10-06 Not Zed <NotZed@HelixCode.com>
* e-table-item.c (eti_header_structure_changed): Removed the
assertion that there must be at least 1 column. No way to remove
all columns otherwise (which the header allows).
* e-table.c (et_xml_config_header): Reconfigure header based on
xml nodes for header.
(et_real_set_specification): Just configure the header only, dont
try to recreate everything.
2000-10-05 Not Zed <NotZed@HelixCode.com>
* e-table-scrolled.c (e_table_scrolled_set_specification): Set the
spec on a scrolled etable.
(e_table_scrolled_load_specification): Likewise for load.
* e-table.c (et_real_set_specification): Allow you to set the
specification after the widget was created.
(et_real_construct): Changed to use et_real_set_specification to
set the spec.
(e_table_load_specification): New frunction, load the
speficication from a specific file.
(e_table_set_specification): NEw function to set the specification
from a string.
svn path=/trunk/; revision=5795
2000-10-04 Jeffrey Stedfast <fejj@helixcode.com>
* e-table-selection-model.c (e_table_selection_model_select_all):
Select all elements of the etable.
(e_table_selection_model_invert_selection): Invert the current
selection.
* e-table.c (e_table_select_all): New convenience function to
select all elements in an e-table.
(e_table_invert_selection): New convenience function to invert the
current selection in an e-table.
svn path=/trunk/; revision=5719
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
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-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-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-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-21 Chris Toshok <toshok@helixcode.com>
* e-table.c (e_table_drag_source_set): pass table, not site as the
closure for these drag signals, since e_table_drag_source_event_cb
assumes it's the table.
svn path=/trunk/; revision=4911
2000-08-19 Christopher James Lahey <clahey@helixcode.com>
* e-cell-text.c: Made background colors alternate.
* e-table-click-to-add.c: Made tabbing off the right edge of the
click to add commit the new values.
* e-table-group-container.c, e-table-group-leaf.c,
e-table-group.c, e-table-group.h, e-table-sorted-variable.c,
e-table-subset-variable.c, e-table-subset-variable.h: Added a
decrement method. Made the add and remove methods not
automatically increment and decrement.
* e-table-item.c: Fixed some view vs model issues for both rows
and columns.
* e-table-model.c: Added debugging code. Removed automatic
signalling of changes by the ETableModel set_value_at function
(the model should send these signals itself.)
* e-table.c: Added increment and decrement calls when a row is
removed or added from the source model.
svn path=/trunk/; revision=4881
2000-08-05 Christopher James Lahey <clahey@helixcode.com>
* e-table.c, e-table.h: Added functions to convert from view row
to model row or from model row to view row. Also changed
e_table_set_cursor_row and e_table_get_cursor_row to take a model
row as this works better with the rest of the model. Changed the
name of e_table_get_next_row_sorted and
e_table_get_prev_row_sorted. (Dropped the _sorted.)
svn path=/trunk/; revision=4556
2000-08-05 Christopher James Lahey <clahey@helixcode.com>
* e-table.c: Added a function to get the next row with sorting
taken into account.
svn path=/trunk/; revision=4549
2000-08-05 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am, e-table-selection-model.c,
e-table-selection-model.h, e-table.c, e-table.h: Made selection
ranges work even if the table is sorted.
* e-table-sorter.c, e-table-sorter.h: New files to help with
making selection ranges work even if sorted.
svn path=/trunk/; revision=4546
2000-08-04 Christopher James Lahey <clahey@helixcode.com>
* e-table.c, e-table.h: Built code to have autodrags only work
from within the table and to report the row dragged from
automatically.
svn path=/trunk/; revision=4542
2000-07-26 Christopher James Lahey <clahey@helixcode.com>
* e-table-click-to-add.c: Fixed a reference.
* e-table-selection-model.c, e-table-selection-model.h: Added a
clear function.
* e-table.c, e-table.h: Made going from click to add to the main
table and back work better.
svn path=/trunk/; revision=4373