2001-02-05 Christopher James Lahey <clahey@helixcode.com>
* e-table-header-item.c: Changed the text to pop up the Field
Chooser.
svn path=/trunk/; revision=7988
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-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
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
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
2000-12-01 Federico Mena Quintero <federico@helixcode.com>
Federico gets into pixel-perfect neurosis. Xmag is my best friend.
* e-table-item.c (eti_draw): Set the focus_gc stipple origin to
match the upper-left corner of the focus rectangle. This way
focusing will look consistent even among rows/columns with odd
pixel sizes. Also, make the focus rectangle span the whole cell;
there was one blank pixel column to the left of the rectangle.
* e-table-header-utils.c: New file with utilities for drawing
header buttons. This is so that ETableHeaderItem and
ETableFieldChooserItem can share the same code.
(e_table_header_compute_height): New function to compute the
height of a column button.
(make_composite_pixmap): New function to composite a pixbuf
against a solid background and make a pixmap out of the result.
This does some ultra-fancy fading-out of the original pixbuf if
the destination area is smaller than the source.
(compute_elision_length): New function to compute the elision
length in O(n log n) instead of O(n^2), for n = strlen (str).
(e_table_header_draw_button): New function to draw a header
button.
(e_table_draw_elided_string): New function to draw a string elided
to a maximum width.
* e-table-defines.h (HEADER_PADDING): Made the default padding be
1; now a header button's height is
content_height + 2 * (HEADER_PADDING + style->ythickness). This
is the correct way to measure button heights.
* e-table-field-chooser-item.c (etfci_find_button): Use
e_table_header_compute_height().
(etfci_reflow): Likewise.
(etfci_draw): Use e_table_header_draw_button().
(etfci_start_drag): Likewise.
(etfci_draw): Likewise.
(etfci_start_drag): Likewise.
(etfci_button_height): Removed function.
(draw_button): Removed function.
* e-table-header-item.c (draw_button): Removed function.
(e_table_header_item_get_height): Use e_table_header_compute_height().
(ethi_draw): e_table_header_draw_button().
(ethi_start_drag): Likewise.
(make_shaped_window_from_xpm): Fixed misspelling in function name.
(draw_button): Removed function.
* Makefile.am: Added e-table-header-utils.[ch].
svn path=/trunk/; revision=6766
2000-11-06 Christopher James Lahey <clahey@helixcode.com>
* e-table-header-item.c: Changed this to match the new EPopupMenu
structre.
svn path=/trunk/; revision=6467
2000-10-18 Christopher James Lahey <clahey@helixcode.com>
* e-table-field-chooser-item.c, e-table-field-chooser-item.h:
Fixed ETableFieldChooser row heights a bit.
* e-table-header-item.c: Formatting clean up.
* e-table-state.c: Added saving of the version of the ETableState.
This way, if we change the format of an ETableState, we can detect
old version numbers.
svn path=/trunk/; revision=6016
2000-10-18 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Moved the glade file directories.
* e-table-header-item.c: Removed an unused variable.
svn path=/trunk/; revision=5982
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-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-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-08-09 Christopher James Lahey <clahey@helixcode.com>
* e-table-header-item.c: Changed e_popup_menu_run call to match
the new arguments.
svn path=/trunk/; revision=4628
2000-07-31 Christopher James Lahey <clahey@helixcode.com>
* e-table-col.c, e-table-col.h: Added an argument to set a column
so that you can't sort by that column.
* e-table-header-item.c: Obey the sortable column of ETableCol.
svn path=/trunk/; revision=4439
2000-07-13 Christopher James Lahey <clahey@helixcode.com>
* e-table-header-item.c: Changed the background color of the
header.
svn path=/trunk/; revision=4152
2000-07-12 Christopher James Lahey <clahey@helixcode.com>
* e-table-header-item.c: Made scroll wheel work properly in
header.
svn path=/trunk/; revision=4128
2000-06-29 Christopher James Lahey <clahey@helixcode.com>
* message-list.c, mail-ops.c: Changed the name of
e_table_select_row to e_table_set_cursor_row.
From widgets/e-table:
2000-06-29 Christopher James Lahey <clahey@helixcode.com>
* e-table-click-to-add.c: Made this appear a bit better.
* e-table-defines.h: Cleaned this up a bit, added
ETableForeachFunc.
* 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: Changed e_table_select_row to
e_table_set_cursor_row. Changed e_table_get_selected_view_row to
e_table_get_cursor_row. Added e_table_selected_row_foreach.
* e-table-header-item.c: Fixed some warnings.
* e-table-sorted-variable.c: Removed some unneeded debugging print
statments.
* e-tree-example-1.c: Changed e_table_get_selected_view_row to
e_table_get_cursor_row.
svn path=/trunk/; revision=3799
2000-06-27 Christopher James Lahey <clahey@helixcode.com>
* e-table-header-item.c: Added an unsort command.
* e-table-item.c: leave_edit when you loose the cursor.
svn path=/trunk/; revision=3766
2000-06-21 Christopher James Lahey <clahey@helixcode.com>
* e-table-header-item.c: Changed this to move the cell to the
nearest edge instead of to the left of the column it's over.
* e-table-header.c: Made target_index equal to eti->col_count be a
valid parameter to e_table_header_move.
svn path=/trunk/; revision=3683
2000-06-08 Christopher James Lahey <clahey@helixcode.com>
* The field chooser works now.
* e-table-field-chooser-dialog.c: Make the dialog resizable.
* e-table-field-chooser-item.c: Requested a reflow on
realization. Made the correct column get dragged.
* e-table-field-chooser.c: Set the height correctly.
* e-table-field-chooser.glade: Replace the GnomeCanvas with an
ECanvas.
* e-table-header-item.c: Receive drags from the new dialog.
svn path=/trunk/; revision=3476
2000-06-08 Christopher James Lahey <clahey@helixcode.com>
* e-table-field-chooser-dialog.c, e-table-field-chooser-dialog.h,
e-table-field-chooser-item.c, e-table-field-chooser.c,
e-table-field-chooser.glade, e-table-field-chooser.h,
e-table-header-item.c, e-table.c: More work on the Field Chooser.
Not quite done yet.
svn path=/trunk/; revision=3475
2000-06-07 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added e-table-field-chooser*.
* e-table-defines.h: Moved some things to here.
* e-table-field-chooser-dialog.c, e-table-field-chooser-dialog.h,
e-table-field-chooser-item.c, e-table-field-chooser-item.h,
e-table-field-chooser.c, e-table-field-chooser.glade,
e-table-field-chooser.glade.h, e-table-field-chooser.h: New dialog
to drag extra fields from. (Not yet finished.)
* e-table-header-item.c, e-table-header-item.h: Changed to
accommodate e-table-field-chooser.
svn path=/trunk/; revision=3473
2000-05-23 Christopher James Lahey <clahey@helixcode.com>
* e-table-header-item.c: Added right click menus to the table
header items.
* e-table-sort-info.c: Fixed a small bug.
svn path=/trunk/; revision=3184
2000-05-14 Christopher James Lahey <clahey@helixcode.com>
* Implemented the feature where the ETable columns automatically
fill the given space.
* e-cell-text.c, e-cell-text.h: Moved #include
e-text-event-processor.h from the .h to the .c.
* e-table-col.c, e-table-col.h: Added an expansion variable, and
made it so that width isn't set by the programmer but instead by
the e-table-header.
* e-table-example-1.c, e-table-example-2.c, e-table-size-test.c,
test-check.c, test-cols.c, test-table.c: Fixed to handle new
ETable column resizing.
* e-table-group-container.c, e-table-group-container.h,
e-table-group-leaf.c, e-table-group-leaf.h, e-table-group.c,
e-table-group.h, e-table-item.c, e-table-item.h: Fixed these to do
a proper canvas reflow/update loop. Changed them to take a
minimum width and return a width and a height.
* e-table-header-item.c, e-table-header-item.h: Made this so that
it depends on e-table-header.c for deciding the actual size of
columns during resize (it was making incorrect decisions on its
own.)
* e-table-header.c, e-table-header.h: Changed this to make sure
that the sum of the widths of the columns was always as close as
possible to the width of the window. This is done by taking a
full width and having each of the columns have an "expansion"
field. This field is what makes each column have approximately
the same portion of its part of the screen that it used to.
* e-table.c: Changed this to set the width on the ETableHeader as
well as set the proper minimum width on the ETableGroup and get
the width and height it reports.
From addressbook/ChangeLog
2000-05-14 Christopher James Lahey <clahey@helixcode.com>
* backend/ebook/Makefile.am: Added libeutil for e-card's support
for categories.
* backend/ebook/e-card-list.c, backend/ebook/e-card-list.h: Added
a function to get the length.
* backend/ebook/e-card.c, backend/ebook/e-card.h: Added categories
support (accessible either as "categories" or "category_list".)
* contact-editor/Makefile.am: Added e-table and all of the
categories files.
* contact-editor/categories.glade,
contact-editor/categories-strings.h,
contact-editor/e-contact-editor-categories.c,
contact-editor/e-contact-editor-categories.h:
* contact-editor/contact-editor.glade,
contact-editor/e-contact-editor-strings.h: Rearranged this dialog.
* contact-editor/e-contact-editor.c: Rearranged dialog a bit.
Added opening of categories dialog.
* gui/component/Makefile.am: Rearranged libraries so that
libetable would be available for the contact editor categories
dialog.
* gui/component/addressbook.c: Fix for new ETable resizing. Make
contact editor dialog resizable.
* gui/minicard/Makefile.am: Added libetable contact editor
categories dialog.
* gui/minicard/e-minicard.c: Make contact editor dialog resizable.
From mail/ChangeLog
2000-05-14 Christopher James Lahey <clahey@helixcode.com>
* message-list.c: Updated to work with new ETable resizing.
svn path=/trunk/; revision=3027
2000-04-30 Christopher James Lahey <clahey@helixcode.com>
* e-table-header-item.c: Made this more reentrant.
* e-table-sorted-variable.c, e-table-sorted-variable.h: Does a
proper resort when the sorting info changes.
* e-table.c, e-table.h: Made it so that ETable doesn't destroy and
recreate the entire table when sorting info changes.
svn path=/trunk/; revision=2704
2000-04-24 Miguel de Icaza <miguel@helixcode.com>
* e-table.c (e_table_class_init): Add argument handling here.
* e-table-group-leaf.c (e_table_group_apply_to_leafs): New method.
Enables us to walk all the children of an ETableGroup.
* e-table.c (et_get_arg, et_set_arg): Implement ::get and ::set
methods.
(e_table_construct_from_spec_file): Now we return the etable.
(e_table_construct): ditto.
(et_real_construct): Now we return the ETable. Returns NULL on
construct failure.
(e_table_new): ditto.
(e_table_new_from_spec_file): ditto.
* (et_build_grouping_spec): Removed vestige code that still
contained references to the etable->specification XML code.
Dumped all the ifdefed out code.
* e-table.h: Removed ETable->specification finally.
svn path=/trunk/; revision=2632
2000-04-12 Miguel de Icaza <miguel@gnu.org>
* e-table-header-item.c (ethi_drag_motion): Remove test for
source. We will fix this later.
svn path=/trunk/; revision=2413
2000-04-11 Miguel de Icaza <miguel@helixcode.com>
* e-table-header-item.c (ethi_add_destroy_marker): Add group
indent width here.
(is_pointer_on_division): Use the group indent here, so the
resize pointer is shown at the correct time.
(TOLERANCE): Bump it up to 3
(draw_button): Do not paint an arrow if there is an icon present,
and not enough space to paint.
2000-04-10 Miguel de Icaza <miguel@helixcode.com>
* e-table-header-item.c (make_shapped_window_from_xpm): New
routine, creates a shapped mask window from an xpm buffer.
(ethi_add_drop_marker): New version, uses shaped windows instead
of canvas items to signal the drop location.
(ethi_maybe_start_drag): Disable dragging if there is only one
column left.
svn path=/trunk/; revision=2390