2001-01-27 Christopher James Lahey <clahey@helixcode.com>
* e-table-item.c (eti_event): Make ETable stop editing when it
looses focus.
* e-table.c (et_canvas_button_press): Make ETable stop editing if
you click on an unhandled area of the table canvas (The white area
at the bottom for instance.)
svn path=/trunk/; revision=7849
2001-01-26 Jon Trowbridge <trow@gnu.org>
* gal/e-text/e-text-model-test.c: Added; a new test program that
demonstrates objects in ETexts.
* gal/e-text/e-text-model-uri.c: Added; a text model that converts
URIs in the text into objects that are passed off to the GNOME URI
handler when activated. This is actually still extremely broken;
I got it just working enough to test out my EText changes.
* gal/e-text/e-text.c: A whole lot of changes, designed to make
ETextModel objects render properly. The basic idea of the changes
is pretty simple, though.
(text_width_with_objects): First of all, this function is an
alternative to e_font_utf8_text_width that takes into the account
the embedded \1s in the text string and properly accounts for the
width of the object strings.
(unicode_strlen_with_objects): Next, this function finds the
proper strlen of a string, expanding the \1s.
(text_draw_with_objects): Finally, this is just a replacement for
e_font_draw_utf8_text that does the right thing for objects. I've
gone through all of e-text.c and replace calls by those original
functions with my new object-enabled alternatives.
(split_into_lines): Some tweaking to get line breaking to work
properly. Made \1 into a "break character", so that we can break
lines between multiple adjacent objects. (Which seemed like the
right thing to do, but there may be cases where that is
undesireable.)
(_get_position_from_xy): Fixed to properly handle embedded
objects, and to get the right selection semantics for objects.
(Or at least semantics that feel right to me.) Also fixed a bug
that caused selection, etc. to not work properly if the text was
anchored anywhere other than with GTK_ANCHOR_NORTH*.
(_get_position): Hacked to cause objects to activate when they are
double-clicked. There is probably a better way to do this.
* gal/e-text/e-text-model.c (e_text_model_real_object_count):
Provide a default implementation of an object counter. Derived
classes might want to override this for efficiency reasons.
(e_text_model_strdup_expanded_text): Added. Allocates and returns
a string contains the model's text with the objects "expanded"
within.
* gal/e-text/e-text-model.h: Added obj_count, get_nth_obj, and
activate_nth_obj virtual methods to ETextModelClass.
svn path=/trunk/; revision=7842
2001-01-25 Federico Mena Quintero <federico@ximian.com>
* e-table.c (e_table_init): Set the GTK_CAN_FOCUS flag on the
widget, since an ETable ought to be focusable.
(e_table_class_init): Override ::grab_focus() and ::focus().
(et_grab_focus): Since people may do gtk_widget_grab_focus() on
the ETable, we have to proxy the request to the actual focusable
canvas.
(e_table_setup_header): Unset GTK_CAN_FOCUS for the header canvas.
(et_focus): Reject focus if our child canvas already had it.
* e-table-scrolled.c (e_table_scrolled_init): Set the
GTK_FOCUS_FLAG on the widget. This is just so that people can
easily do gtk_widget_grab_focus (my_e_table_scrolled) on their own
applications.
(e_table_scrolled_class_init): Override ::grab_focus() and
::focus().
(ets_grab_focus): Proxy the grab_focus to our child ETable.
(ets_focus): Proxy the request to the child ETable.
svn path=/trunk/; revision=7830
2001-01-25 Christopher James Lahey <clahey@helixcode.com>
* gal/widgets/e-canvas-utils.c (e_canvas_item_show_area): Clamp
the value we set here.
(compute_offset): Switched to ints here.
svn path=/trunk/; revision=7825
2001-01-25 Christopher James Lahey <clahey@helixcode.com>
* gal/widgets/e-canvas-utils.c (e_canvas_item_show_area): Made
this function put some space around the area shown.
svn path=/trunk/; revision=7820
2001-01-25 Christopher James Lahey <clahey@helixcode.com>
* e-table-selection-model.c (move_selection): Made this correctly
check for going off the end of the table.
svn path=/trunk/; revision=7817
2001-01-25 Christopher James Lahey <clahey@helixcode.com>
* menus/gal-view-menus.c: Make this actually deploy the titles
from the GalViewCollection and emit the display_view signals and
such.
svn path=/trunk/; revision=7809
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-25 Damon Chaplin <damon@ximian.com>
* e-calendar-item.[hc]: e_calendar_item_get_date_range() now returns
a boolean, which is FALSE if no dates are currently shown.
Plus a couple of minor sanity checks.
svn path=/trunk/; revision=7799
2001-01-24 Christopher James Lahey <clahey@helixcode.com>
* gal-define-views-dialog.c (gal_define_views_dialog_class_init):
Have the argument system do type checking on our "collection"
argument. Refactored the setting of the "collection" argument
into a set_argument function.
* gal-define-views-model.c (gal_define_views_model_class_init):
Have the argument system do type checking on our "collection"
argument.
svn path=/trunk/; revision=7783
2001-01-24 Christopher James Lahey <clahey@helixcode.com>
* gal-view-collection.c (gal_view_collection_get_view_item):
Actually implement this function.
svn path=/trunk/; revision=7774
2001-01-23 Christopher James Lahey <clahey@helixcode.com>
* gal-view-collection.c, gal-view-collection.h: Made
GalViewCollectionItem a public type.
(load_single_file): Made it so that the filename does not get
saved with the directory structure.
(gal_view_collection_get_view_item): Added this function to return
a certain GalViewCollectionItem.
svn path=/trunk/; revision=7773
2001-01-22 Jon Trowbridge <trow@gnu.org>
* menus/gal-view-menus.c (define_views): Fixed
gal_define_views_dialog_new to be called with its proper argument.
svn path=/trunk/; revision=7707
2001-01-22 Christopher James Lahey <clahey@helixcode.com>
* gal-define-views-dialog.c, gal-define-views-dialog.h
(gal_define_views_dialog_init): Initialize collection field to
NULL. Set the collection on the model as soon as we create it.
(gal_define_views_dialog_new): Add a GalViewCollection argument to
this function. This just makes this dialog a bit easier to use
through the API.
(gal_define_views_dialog_set_arg): When we set the collection, set
it on the dialog->model.
* gal-define-views-model.c, gal-define-views-model.h: Rewrote this
object to use a GalViewCollection to store the information instead
of an array of GalViews.
* gal-view-collection.c, gal-view-collection.h: Added
gal_view_collection_get_count, gal_view_collection_get_view,
gal_view_collection_append, gal_view_collection_delete_view, and
gal_view_collection_copy_view.
(view_changed, load_single_file): Connect to the "changed" signal
on the views.
(load_single_dir): Survive loading if there's no xml file.
* gal-view-etable.c: Implemented get_type_code method.
* gal-view-factory-etable.c: Implemented get_type_code method.
* gal-view.c, gal-view.h: Added gal_view_get_type_code and
"changed" signal.
svn path=/trunk/; revision=7699
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>
* gal-define-views-model.c (gdvm_set_value_at): Use the new
gal_view_set_title function.
* gal-view-collection.c, gal-view-collection.h: Implemented this.
Added gal_view_collection_save and gal_view_collection_load.
* gal-view-etable.c: Implemented save, load, and set_title methods
for this class.
* gal-view-factory.c: Implemented gal_view_factory_get_type_code.
* gal-view.c, gal-view.h: Replaced gal_view_save_to_node with
gal_view_save. Replaced gal_view_load_from_node with
gal_view_load. Added gal_view_set_title.
svn path=/trunk/; revision=7676
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-19 Federico Mena Quintero <federico@ximian.com>
* e-calendar.c (e_calendar_init): Unset the GTK_CAN_FOCUS flag on
the ECalendar.
(e_calendar_focus_in): Removed function since it did nothing.
(e_calendar_focus_out): Likewise.
(e_calendar_key_press): Likewise.
(e_calendar_init): Turn off the GTK_CAN_FOCUS flag for both arrow
buttons.
svn path=/trunk/; revision=7665
* gal/widgets/e-popup-menu.c (e_popup_menu_run):
s/GdkEventButton/GdkEvent/
* gal/widgets/e-gui-utils.c (e_popup_menu): ditto, and deal with
key events as well
svn path=/trunk/; revision=7660
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-17 Federico Mena Quintero <federico@ximian.com>
* e-calendar-item.c (e_calendar_item_set_max_days_sel): Make zero
the minimum number of days that can be specified.
(e_calendar_item_set_arg): We do need an update when the maximum
number of selected days is changed.
(e_calendar_item_set_max_days_sel): Request an update of the
canvas item.
(e_calendar_item_button_press): Do not start selecting days if the
max_days_selected is less than 1.
svn path=/trunk/; revision=7625
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 Christopher James Lahey <clahey@helixcode.com>
* gal/e-text/e-text.c (_do_tooltip): Make tooltip appear properly
even if anchor is set.
svn path=/trunk/; revision=7620
2001-01-18 Christopher James Lahey <clahey@helixcode.com>
* gal/e-text/e-entry.c (canvas_size_allocate, et_set_arg): Center
text vertically.
svn path=/trunk/; revision=7619
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
2001-01-17 Christopher James Lahey <clahey@helixcode.com>
* gal/e-text/e-entry.c (e_entry_init): Made EEntry be shrinkable.
svn path=/trunk/; revision=7604
2001-01-17 Christopher James Lahey <clahey@helixcode.com>
* gal/e-text/e-entry.c, gal/e-text/e-entry.h (et_set_arg): Make
justification work properly for entries. Documented.
svn path=/trunk/; revision=7603
2001-01-17 Christopher James Lahey <clahey@helixcode.com>
* gal-define-views-dialog.c, gal-define-views-dialog.h: Added a
collection argument to this to set the GalViewCollection.
Connected up the modify, delete, and copy buttons. Documented.
* gal-define-views-model.c, gal-define-views-model.h: Added
gal_define_views_model_get_view,
gal_define_views_model_delete_view, and
gal_define_views_model_copy_view methods. Documented.
* gal-view-collection.c: Documented.
* gal-view-etable.c, gal-view-etable.h: Documented. Implemented
edit and clone methods of GalView. Initialized state to a
non-NULL value. Added a name parameter to gal_view_etable_new.
* gal-view-factory-etable.c: Documented. Added the name argument
to gal_view_etable_new.
* gal-view-factory.c: Fixed the g_return_val_if_fails to check for
GalViewFactory as the type instead of GalView.
* gal-view.c, gal-view.h: Added the clone method.
svn path=/trunk/; revision=7599
2001-01-17 Jeffrey Stedfast <fejj@ximian.com>
* e-messagebox.c (e_message_box_get_id): Oops. Delete this. I
never meant for this to get commit'd.
svn path=/trunk/; revision=7587
2001-01-17 JP Rosevear <jpr@ximian.com>
* e-messagebox.c (e_message_box_get_id): Dont remove the function, give
it the proper name
svn path=/trunk/; revision=7580
2001-01-17 Jeffrey Stedfast <fejj@ximian.com>
* Makefile.am: Added e-messagebox to the build.
* e-messagebox.[c,h]: Added a new messagebox window that contains
a checkbox for "Don't show me this again."
svn path=/trunk/; revision=7566
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-16 Jason Leach <jasonleach@usa.net>
* gal/e-text/e-text.c (e_text_set_arg): Emit a "changed" signal to
the EText after we gtk_object_set a "model" arg and fill the EText
with text from the model, which obviously changes the text.
svn path=/trunk/; revision=7530
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