2001-10-05 Michael Meeks <michael@ximian.com>
* gal/util/e-util.h: add E_OBJECT_CLASS_ADD_SIGNALS and
E_OBJECT_CLASS_TYPE to ease migration to Gnome 2.0 from
a single source base.
* All C files:
s/object_class->type,/E_OBJECT_CLASS_TYPE (object_class),/g;
s/gtk_object_class_add_signals([^\(]*)\(([^,]*),([^,]*),([^\)]*)/
E_OBJECT_CLASS_ADD_SIGNALS\1(\2,\3,\4/;
svn path=/trunk/; revision=13428
2001-09-01 Christopher James Lahey <clahey@ximian.com>
* e-cell-float.c (ecf_get_text, ecf_free_text): Rename these
functions from ecn_get_text and ecn_free_text.
* e-cell-tree.c (ect_height): Make sure the height is a multiple
of two here.
* e-table-header-item.c, e-table-header-item.h: Added a "tree"
argument so that the sorting can be set by right clicking on the
header item.
* e-table-item.c (eti_table_model_rows_deleted): Added some
assertions here.
* e-tree-selection-model.c (etsm_find_node_unless_equals): Fixed
indentation.
* e-tree-table-adapter.c (etta_proxy_node_changed): Rewrote this
to be more readable.
(e_tree_table_adapter_node_set_expanded): Added an assertion.
* e-tree.c, e-tree.h (e_tree_get_spec): Added this function.
(e_tree_setup_header): Set the tree argument on the
ETableHeaderItem here.
svn path=/trunk/; revision=12553
Tue Aug 28 18:29:28 2001 George Lebl <jirka@5z.com>
Patch to fix few 64bit issues
* gal/e-table/e-table-header-item.c (ethi_draw) (ethi_start_drag)
gal/widgets/e-categories.c (e_categories_value_at)
(e_categories_value_to_string):
Use GINT_TO_POINTER and GPOINTER_TO_INT to cast between pointers
and ints to fix 64bit issues connected with that.
* gal/e-table/e-table-sorting-utils.c
(e_table_sorting_utils_tree_check_position)
gal/util/e-sorter-array.c (e_sorter_array_append):
Use size_t for size not ints to fix crashes
* gal/e-text/e-completion-match.c, gal/e-text/e-completion.c:
Include <string.h>
svn path=/trunk/; revision=12507
2001-08-10 Christopher James Lahey <clahey@ximian.com>
* e-table-config.c (setup_gui): If the sort_info can't group, hide
the grouping button and label.
* e-table-header-item.c (ethi_header_context_menu): Removed the
Group By This Field menu item if the sort_info doesn't support
grouping.
* e-table-sort-info.c, e-table-sort-info.h
(e_table_sort_info_get_can_group,
e_table_sort_info_set_can_group): Added these functions.
* e-tree.c (e_tree_set_state_object, et_real_construct): Set
can_group to FALSE for all our sort infos.
(e_tree_get_state_object): Fixed a potential gtk_object_ref (NULL)
here.
svn path=/trunk/; revision=11896
2001-08-09 Christopher James Lahey <clahey@ximian.com>
* e-table-field-chooser-dialog.c, e-table-field-chooser-dialog.h,
e-table-field-chooser.c, e-table-field-chooser.h: Added a "header"
argument to these structures which just gets passed downwards.
* e-table-field-chooser-item.c, e-table-field-chooser-item.h:
Added a "header" argument here. Made it so that only rows that
aren't already in the header are shown.
* e-table-header-item.c: Set the "header" argument on our
e-table-field-chooser-dialog. Fixes Ximian bug #2654.
svn path=/trunk/; revision=11828
2001-08-02 Christopher James Lahey <clahey@ximian.com>
* e-table-header-item.c (ethi_drag_data_received): Don't do most
of the work in this function if data->data is NULL. Fixes Ximian
bug #6041.
svn path=/trunk/; revision=11587
2001-08-01 Christopher James Lahey <clahey@ximian.com>
* e-table-header-item.c (ethi_change_sort_state): Make this
function not crash if x somehow doesn't land on some column.
Fixes Ximian bug #5957.
* e-table-header-item.c: Removed a bunch of menu items whose
functionality won't be ready for 1.0. Fixes Ximian bug #154.
svn path=/trunk/; revision=11560
2001-07-05 Christopher James Lahey <clahey@ximian.com>
* e-table-header-item.c (ethi_drag_motion): Made it so that the
drop marker can show up when dragging a new column to the leftmost
position of the table header item.
svn path=/trunk/; revision=10801
2001-07-02 Christopher James Lahey <clahey@ximian.com>
* e-table-header-item.c (ethi_header_context_menu): Made the
remove this column menu item greyed out if it's the last column.
svn path=/trunk/; revision=10725
2001-04-29 Jason Leach <jasonleach@usa.net>
(Fix bug #53111: Portability fixes for HP's ANSI compiler.)
* e-table-header-item.c (ethi_popup_sort_ascending): Changes for
initializing a struct for picky compiler.
(ethi_popup_sort_descending): Ditto.
(ethi_change_sort_state): Ditto.
* e-cell.c (e_cell_realize): Fix trying to return a value for a
void function.
(e_cell_show_tooltip): Here too.
* e-table-subset.c (etss_set_value_at): Another fix for trying to
return something instead of void.
svn path=/trunk/; revision=9695
2001-05-07 Gediminas Paulauskas <menesis@delfi.lt>
* gal/widgets/e-unicode.c (e_utf8_to_gtk_string_sized):
write what was converted to console, this function does not work
always.
(e_utf8_gtk_editable_get_chars),
(e_utf8_gtk_menu_item_new_with_label): removed some unneeded checks.
(e_xml_get_translated_utf8_string_prop_by_name): if i.e. "title"
was found, do not convert it to utf8 -- it already is. do this
only on "_title".
* gal/e-table/e-table-header-item.c: fix warning.
svn path=/trunk/; revision=9692
2001-04-09 Christopher James Lahey <clahey@ximian.com>
* e-table-col.c, e-table-col.h, e-table-header-item.c,
e-table-header.c, e-table-item.c: Changed resizeable to resizable
in ETableCol for consistency.
* e-tree-selection-model.c (etsm_row_of_node): Return -1 here if
the path isn't found.
(etsm_sorted_node_changed): If cursor_row is -1, make cursor_col
-1 as well.
svn path=/trunk/; revision=9211
2001-04-03 Christopher James Lahey <clahey@ximian.com>
* e-table-header-item.c (ethi_draw): Don't draw the button if it's
less than 1 pixel wide.
* e-tree-table-adapter.c (etta_proxy_node_inserted): Fixed a small
array overrun (wasn't causing problems, but it's best to be
correct.)
svn path=/trunk/; revision=9120
2001-03-30 Christopher James Lahey <clahey@ximian.com>
* e-table-group.c, e-table-header-item.c, e-table-item.c,
e-table.c, e-tree.c: Made these use GTK_TYPE_GDK_EVENT whenever
sending an event through the signal system instead of
GTK_TYPE_POINTER.
* e-table.c, e-tree.c (set_header_canvas_width): Check that none
of the variables we're going to need are NULL before executing
this function.
svn path=/trunk/; revision=9042
2001-03-18 Miguel de Icaza <miguel@ximian.com>
* e-table-config.c (sort_entry_changed): Use
update_sort_and_group_config dialog instead of the non-implemented
update_group_config_dialog.
(update_sort_and_group_config_dialog): Update the text correctly.
(sort_entry_changed): Handle empty string as not-in-set.
(group_entry_changed): Handle empty string as not-in-set.
(config_class_init): Fix the signal declaration for "changed",
this was sending the wrong information.
(update_sort_and_group_config_dialog): Use group_info here, not sort_info
* e-table-header-item.c (ethi_popup_customize_view): Changed to
use the "changed" signal in the ETableConfig instead of
promiscously using the "apply" from the PropertyBox
* e-table-config.glade: Set Hide On Close to yes for the Group-By
dialog.
The groups for Radio Buttons in the Glade file are global, which
caused all sorts of strange behaviour and really hard to debug
problems. This should be now fixed
svn path=/trunk/; revision=8801
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