diff options
Diffstat (limited to 'widgets')
81 files changed, 2386 insertions, 18849 deletions
diff --git a/widgets/ChangeLog b/widgets/ChangeLog deleted file mode 100644 index 13337e0d76..0000000000 --- a/widgets/ChangeLog +++ /dev/null @@ -1,1050 +0,0 @@ -2009-04-07 Takao Fujiwara <takao.fujiwara@sun.com> - - Reviewed by Milan Crha <mcrha@redhat.com> - Reviewed by Matthew Barnes <mbarnes@redhat.com> - - * Fixes bug #537530 - - * misc/e-attachment-bar.c (update): - Use g_filename_to_utf8 for attachment filenames. - -2009-03-25 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #576694 - - * text/e-text.c (reset_layout): - Handle absolute font sizes correctly. - -2009-02-14 Matthew Barnes <mbarnes@redhat.com> - - * text/e-text.c: - Remove unneeded #include <libart_lgpl/...>. - -2009-01-10 Matthew Barnes <mbarnes@redhat.com> - - * menus/gal-view-collection.c: - * menus/gal-view-instance.c: - Remove unneeded #include <libgnome/gnome-util.h>. - -2009-01-10 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #567276 - - * menus/gal-view-menus.c: - Remove unneeded #include <libgnomeui/gnome-dialog.h>. - -2009-01-09 Takao Fujiwara <takao.fujiwara@sun.com> - - Reviewed by Matthew Barnes <mbarnes@redhat.com> - - * Fix for bug #566011 - - * misc/e-charset-picker.c: - * misc/e-signature-combo-box.c: - Include <glib/gi18n-lib.h> instead of <glib/gi18n.h>. - -2008-11-03 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes bug #559041 - - * text/e-text.c (e_text_class_init): - Add translator comment for "im_context" property. - -2008-10-30 Matthew Barnes <mbarnes@redhat.com> - - * widgets/menus/gal-view-menus.c: - * widgets/misc/e-activity-handler.c: - * widgets/table/e-table-config-field.h: - Only include the toplevel GTK+ header. - -2008-10-17 Sankar P <psankar@novell.com> - -License Changes - - * text/e-text.c: - * text/e-text.h: - -2008-10-03 Sankar P <psankar@novell.com> - -License Changes - - * text/e-text-test.c: - -2008-09-12 Sankar P <psankar@novell.com> - -License Changes - - * menus/gal-view-instance-save-as-dialog.c: - * menus/gal-view-instance-save-as-dialog.h: - * text/e-text.h: - -2008-09-02 Sankar P <psankar@novell.com> - -License Changes - - * e-timezone-dialog/e-timezone-dialog.c: - * e-timezone-dialog/e-timezone-dialog.h: - * menus/gal-define-views-dialog.h: - * menus/gal-define-views-model.c: - * menus/gal-view-collection.c: - * menus/gal-view-collection.h: - * menus/gal-view-etable.c: - * menus/gal-view-factory.c: - * menus/gal-view-menus.c: - * menus/gal-view-new-dialog.h: - * text/e-text-model-repos.h: - * text/e-text-model.c: - * text/e-text-model.h: - -2008-08-27 Sankar P <psankar@novell.com> - -License Changes - - * menus/gal-define-views-dialog.c: - * menus/gal-define-views-model.h: - * menus/gal-view-etable.h: - * menus/gal-view-factory-etable.c: - * menus/gal-view-factory-etable.h: - * menus/gal-view-factory.h: - * menus/gal-view-instance.c: - * menus/gal-view-instance.h: - * menus/gal-view-menus.h: - * menus/gal-view-new-dialog.c: - * menus/gal-view.c: - * menus/gal-view.h: - * text/e-text-model-repos.c: - * text/e-text-model-test.c: - -2008-06-03 Kjartan Maraas <kmaraas@gnome.org> - - * text/e-text-model-test.c: (main): - * text/e-text-test.c: (main): - gdk_rgb_get_cmap -> gdk_rgb_get_colormap - -2008-06-03 Kjartan Maraas <kmaraas@gnome.org> - - * menus/gal-define-views-dialog.c: (gal_define_views_dialog_init): - * menus/gal-view-new-dialog.c: (gal_view_new_dialog_init): - gtk_window_set_policy -> gtk_window_set_resizable. - -2008-05-22 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #534360 - - * e-timezone-dialog/e-timezone-dialog.h: - * menus/gal-view-instance.c: - * menus/gal-view-menus.h: - * text/e-text.h: - Migrate from deprecated GtkObject symbols to GObject equivalents. - -2008-04-25 Danny Baumann <dannybaumann@web.de> - - ** Fix for bug #529893 - - * text/e-text.c: (_do_tooltip): - Properly set type hint on tooltip window. - -2008-04-22 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #529641 - - * e-timezone-dialog/e-timezone-dialog.glade: - Prefer the term "drop-down combination box" to "combo box" per the - GNOME Documentation Style Guide. - -2008-02-23 Andre Klapper <a9016009@gmx.de> - - * e-timezone-dialog/e-timezone-dialog.glade: - Fix the string freeze break of the former commit. - -2008-02-23 Suman Manjunath <msuman@novell.com> - - ** Fix for bug #471779 - - * e-timezone-dialog/e-timezone-dialog.c: - (e_timezone_dialog_add_timezones), (e_timezone_dialog_construct), - (on_map_leave), (on_map_button_pressed), - (e_timezone_dialog_set_timezone), (on_combo_changed), - (timezone_combo_get_active_text), (timezone_combo_set_active_text): - * e-timezone-dialog/e-timezone-dialog.glade: - Timezone entries in the combo-box are now sorted alphabetically. - Migrated deprecated widget to GtkComboBox. - -2008-02-19 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #383438 - - * text/e-text.c: (e_text_point): - Report "mouse over" even with no text entered. - -2008-02-03 Matthew Barnes <mbarnes@redhat.com> - - * text/e-text.c (update_im_cursor_position): - * text/e-text.c (e_text_get_cursor_locations): - Remove these unused functions to silence compiler warnings. - -2008-01-29 Matthew Barnes <mbarnes@redhat.com> - - * menus/gal-view-collection.c: - * menus/gal-view-menus.c: - * menus/gal-view-instance.c: - Replace G_GNUC_FUNCTION (deprecated) with G_STRFUNC. - -2008-01-14 Mayank Jain <mayank.gnu@gmail.com> - - ** Fix for bug #348638 - - * text/e-text.c: (insert_preedit_text), (reset_layout_attrs), - (e_text_draw): Cleanly remove pre-edit buffer on pressing backspace in - day-view, for non-ascii characters as well. - -2007-11-26 Gilles Dartiguelongue <gdartigu@svn.gnome.org> - - ** Fixes bug #495951 - - * menus/gal-view-instance-save-as-dialog.c: - (gal_view_instance_save_as_dialog_set_instance), - (gvisad_setup_validate_button), (gvisad_setup_radio_buttons), - (gvisad_entry_changed), - (gal_view_instance_save_as_dialog_set_property), - (gal_view_instance_save_as_dialog_dispose), - (gal_view_instance_save_as_dialog_init), - (gal_view_instance_save_as_dialog_new), - (gal_view_instance_save_as_dialog_save): - * menus/gal-view-instance-save-as-dialog.glade: - * menus/gal-view-instance-save-as-dialog.h: - Use GtkTreeView in place of ETable - -2007-11-05 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #341085 - - * text/e-text.c: (get_bounds), (e_text_draw): Use 'x_offset' and - 'y_offset' only for text drawing, not for changing bounds of EText. - -2007-10-26 Kjartan Maraas <kmaraas@gnome.org> - - * e-timezone-dialog/e-timezone-dialog.c: (get_local_offset), - (get_local_timezone), (on_map_visibility_changed), - (on_map_button_pressed), (get_zone_from_point), - (e_timezone_dialog_set_timezone), (on_combo_changed): - * menus/gal-view-factory.c: (gal_view_factory_get_title): - * text/Makefile.am: - * text/e-text.c: (e_text_event), (popup_targets_received), - (next_word), (find_offset_into_line), (_get_position), - (e_text_class_init): - * text/e.entry.[ch] - * text/e-completion.[ch] - * text/e-text-model-uri.[ch] - * text/e-completion-view.[ch] - * text/e-completion-callbacks.[ch] - * text/e-completion-match.[ch] - * text/e-table-text-model.[ch]: Remove all of these. They - are now unused. - - Warning fixes: - - NULL vs 0 vs FALSE - - ANSIfication of function declarations - -2007-10-09 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #437579 - - * text/e-text.c: - Fix various compiler warnings. Patch from Milan Crha. - -2007-09-27 Hiroyuki Ikezoe <poincare@ikezoe.net> - - ** Fix for bug #461195 - - * text/e-completion-view.c: - * text/e-text-model.c: - * text/e-text.c: - * text/e-entry.c: - * text/e-completion.c: - * misc/e-dateedit.c: - * misc/e-reflow-model.c: - * misc/e-reflow.c: - * misc/e-canvas.c: - * misc/e-image-chooser.c: - * misc/e-selection-model.c: - * misc/e-printable.c: - * misc/e-canvas-background.c: - * misc/e-search-bar.c: Use GObject's marshalers. - -2007-08-31 Srinivasa Ragavan <sragavan@novell.com> - - ** Move away from g_assert to g_return* critical warnings to debug - them better. - - * e-timezone-dialog/e-timezone-dialog.c: (get_zone_from_point): - * text/e-completion-view.c: (e_completion_view_set_cursor_row): - * text/e-table-text-model.c: (e_table_text_model_dispose): - * text/e-text-model-uri.c: (objectify_idle_cb): - -2007-08-24 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #411619 - - * Makefile.am: Fix subdirectory order. - - * e-timezone-dialog/Makefile.am: Remove WIN32_BOOTSTRAP_LIBS. - -2007-08-23 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes bug #309166 - - * text/e-text.c (_get_updated_position): Modified the way movement - of cursor is handled across grapheme clusters. - * text/e-text.c (_get_position): Uses the new function for forward - and backward movement of characters (simple or grapheme clusters). - Patch by Mayank Jain. - -2007-08-23 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes bug #303878 - - * text/e-text.h: preedit_pos: new value. - * text/e-text.c: (e_text_get_cursor_locations): - New function. Get the cursor locations. - (update_im_cursor_position): New function. - Set the cursor location to IMContext. - (insert_preedit_text): Call update_im_cursor_position when draw - preedit text. - (e_text_preedit_changed_cb): Set the preedit cursor position to - preedit_pos. - Patch by Hiroyuki Ikezoe and Mayank Jain. - -2007-07-27 Hiroyuki Ikezoe <poincare@ikezoe.net> - - * text/e-text-model-uri.c: - * text/e-completion-view.c: - * text/e-text-model.c: - * text/e-text.c: - * text/e-completion-callbacks.c: - * text/e-entry.c: - * text/e-table-text-model.c: - * text/e-completion.c: - * menus/gal-view-new-dialog.c: - * menus/gal-view-collection.c: - * menus/gal-view-etable.c: - * menus/gal-view-instance-save-as-dialog.c: - * menus/gal-view-factory-etable.c: - * menus/gal-view.c: - * menus/gal-view-instance.c: - * menus/gal-view-factory.c: - * menus/gal-define-views-dialog.c: - * menus/gal-define-views-model.c: - * misc/e-canvas-vbox.c: - * misc/e-reflow-model.c: - * misc/e-selection-model-array.c: - * misc/e-reflow.c: - * misc/e-canvas.c: - * misc/e-selection-model.c: - * misc/e-printable.c: - * misc/e-canvas-background.c: - * misc/e-selection-model-simple.c: Use G_DEFINE_TYPE instead of - E_MAKE_TYPE. - -2007-07-27 Matthew Barnes <mbarnes@redhat.com> - - * text/Makefile.am: - Rename EXTRA_GNOME_CFLAGS to GNOME_PLATFORM_CFLAGS. - Similarly for EXTRA_GNOME_LIBS. - -2007-07-26 Hiroyuki Ikezoe <poincare@ikezoe.net> - - * text/e-text.c: (e_text_dispose): Plugged memory leak. - -2007-07-19 Hiroyuki Ikezoe <poincare@ikezoe.net> - - * text/e-text.c: (e_text_copy_clipboard): Remove needless g_strndup(). - -2007-07-15 Hiroyuki Ikezoe <poincare@ikezoe.net> - - * text/e-text.c: (primary_get_cb): Remove needless g_strndup(). - -2007-07-09 Matthew Barnes <mbarnes@redhat.com> - - * table/e-table-specification.c: (e_table_specification_duplicate) - Return NULL if ETable specification string fails to load. - - * table/e-tree.c: - * table/e-tree-scrolled.c: - Improve error handling in the constructors. - -2007-06-18 Srinivasa Ragavan <sragavan@novell.com> - - * menus/gal-define-views-dialog.c - (gdvd_button_new_dialog_callback): Remove a warning - -2007-06-18 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #446015 from Gilles Dartiguelongue - - * menus/gal-define-views-dialog.c: - (gdvd_button_new_dialog_callback), (gdvd_button_new_callback), - (gdvd_button_modify_callback), (gdvd_button_delete_callback), - (gdvd_cursor_changed_callback), (gdvd_connect_signal), - (gal_define_views_dialog_init), - (gal_define_views_dialog_set_collection), - (gal_define_views_dialog_new): - * menus/gal-define-views-dialog.h: - * menus/gal-define-views.glade: - -2007-06-11 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #325882 - - * menus/gal-define-views.glade: - * table/e-table-field-chooser.glade: - * misc/e-attachment.glade: - Changed GTK_WIN_POS_NONE to GTK_WIN_POS_CENTER_ON_PARENT. - -2007-06-02 Gilles Dartiguelongue <dartigug@esiee.fr> - - ** Fixes part of bug #441014 - - * e-timezone-dialog/e-timezone-dialog.c: - (e_timezone_dialog_set_timezone): - * menus/gal-view-collection.c: (load_single_file), - (load_single_dir), (gal_view_collection_save): - * menus/gal-view-instance.c: (save_current_view), - (load_current_view): various compilation warning cleanups - -2007-05-24 Matthew Barnes <mbarnes@redhat.com> - - * text/e-text.c (e_text_copy_clipboard), - (e_text_update_primary_selection), (e_text_paste), (e_text_do_popup): - Remove check for obsolete GTK+ version (#424562). - -2007-05-11 Srinivasa Ragavan <sragavan@novell.com> - - * menus/gal-view-menus.c: (build_menus): Add tooltips for user defined - views. - -2007-04-19 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #429422 - - * text/e-text-model-uri.c (e_text_model_uri_dispose), - (objectify_idle_flush): - Use g_source_remove() instead of gtk_idle_remove(). - - * text/e-text-model-uri.c (e_text_model_uri_objectify): - Use g_idle_add() instead of gtk_idle_add(). - - * text/e-text.c (e_text_dispose), (e_text_event): - * text/e-entry.c (e_entry_text_keypress), (proxy_changed), - (e_entry_cancel_delayed_completion), (e_entry_dispose): - Use g_source_remove() instead of gtk_timeout_remove(). - - * text/e-text.c (e_text_event): - * text/e-entry.c (proxy_changed), (e_entry_start_delayed_completion): - * e-timezone-dialog/e-timezone-dialog.c (on_map_visibility_changed): - Use g_timeout_add() instead of gtk_timeout_add(). - - * text/e-completion-view.c (e_completion_view_set_width): - * text/e-text.c (_do_tooltip): - Use gtk_widget_set_size_request() instead of gtk_widget_set_usize(). - - * text/e-completion-callbacks.c (e_completion_callbacks_new): - Use g_object_new() instead of gtk_type_new(). - - * text/e-entry.c (e_entry_enable_completion_full): - Use g_object_ref_sink() instead of gtk_object_sink(). - - * text/e-entry.c (e_entry_class_init): - Use g_cclosure_marshal_VOID__INT instead of gtk_marshal_NONE__INT. - - * menus/gal-view-new-dialog.c (gal_view_new_dialog_init): - * menus/gal-view-instance-save-as-dialog.c - (gal_view_instance_save_as_dialog_init): - * menus/gal-define-views-dialog.c (gal_define_views_dialog_init): - Use g_object_ref() instead of gtk_widget_ref(). - Use g_object_unref() instead of gtk_widget_unref(). - - * menus/gal-view-collection.c (gal_view_collection_dispose): - e_free_object_list() is dead; just do it manually. - - * menus/gal-view-collection.c (load_single_file), (load_single_dir), - (gal_view_collection_save): - * menus/gal-view-instance.c (gal_view_instance_construct): - Use g_build_filename() instead of g_concat_dir_and_file(). - - * menus/gal-view-collection.c (gal_view_collection_load): - Use g_mkdir_with_parents() instead of e_create_directory(). - - * e-timezone-dialog/e-timezone-dialog.c (e_timezone_dialog_construct): - Use gtk_editable_set_editable() instead of gtk_entry_set_editable(). - -2007-03-20 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #419524 - - * Include <glib/gi18n.h> instead of <libgnome/gnome-i18n.h>. - -2007-02-08 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes bug #357216 - - * text/e-entry.c: Remove "font", "fontset", and "gdk_font" - properties, since they forward gets and sets to non-existant - properties in entry->item. - -2006-09-27 Matthew Barnes <mbarnes@redhat.com> - - Fixes bug #357970 - - * text/e-text.c (e_text_unrealize): Don't call deprecated GLib / GDK - functions. - -2006-09-18 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes bug #351332 - - * misc/e-attachment-bar.h: Fix implicit function declarations. - -2006-08-23 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes bug #352450 - - * misc/e-canvas-background.c: - * misc/e-cursors.c: - * misc/e-map.c: - * misc/e-reflow.c: - * misc/e-task-widget.c: - * misc/gal-combo-box.c: - * table/e-cell-text.c: - * table/e-cell-toggle.c: - * table/e-table-field-chooser-item.c: - * table/e-table-field-chooser.c: - * table/e-table-header-item.c: - * table/e-table-header-utils.c: - * table/e-table-item.c: - * table/e-table.c: - * table/e-tree-memory.c: - * table/e-tree-sorted.c: - * table/e-tree.c: - * table/e-text.c: - Replace deprecated GLib and GDK function calls. - -2006-08-20 Jeff Cai <jeff.cai@sun.com> - - * e-timezone-dialog/e-timezone-dialog.c: - (e_timezone_dialog_construct), (e_timezone_dialog_reparent), - (map_destroy_cb): - Fixes 350559. Disable timeout function when the map is destroyed. - -2006-07-21 Hiroyuki Ikezoe <poincare@ikezoe.net> - - ** Fixes 342313. - * text/e-text.c: Use GTK_CHECK_VERSION instead of GTK_2_2. - -2006-07-05 Rajeev ramanathan <rajeevramanathan_2004@yaoo.co.in> - - * text/e-text.[ch]: Added code to render EText text - items with antialiasing, hinting and sub-pixel ordering with cairo. - -2006-07-18 Andre Klapper <a9016009@gmx.de> - - * e-timezone-dialog/e-timezone-dialog.glade: - * menus/gal-view-instance-save-as-dialog.glade: - * menus/gal-view-new-dialog.glade: - remove "*" from translation. Fixes bug #331147. - -2006-07-13 Andre Klapper <a9016009@gmx.de> - - * menus/gal-view-instance-save-as-dialog.glade: - remove empty strings from translation - -2006-07-12 Hiroyuki Ikezoe <poincare@ikezoe.net> - - ** Fixes bug #347182. - * misc/e-combo-button.c: (e_combo_button_set_label): - Removed needless g_return_if_fail(). - -2006-07-10 Harish Krishnaswamy <kharish@novell.com> - - * table/e-cell-text.c: (ect_unrealize), (build_layout): - * text/e-text.c: (reset_layout): Revert the previous - patch. Requires rework. - -2006-07-05 Rajeev ramanathan <rajeevramanathan_2004@yahoo.co.in> - * text/e-text.c, table/e-cell-text.c: - Added code to render ECell and EText text items with - antialiasing, hinting and sub-pixel ordering with cairo. - -2006-07-06 Hiroyuki Ikezoe <poincare@ikezoe.net> - - ** Fixes bug #341354. - * text/e-text.c: (e_text_preedit_changed_cb): - Plugged memory leak. - -2006-06-30 Johnny Jacob <jjohnny@novell.com> - * misc/Makefile.am: Added e-icon-entry.c, e-icon-entry.h - * misc/e-filter-bar.c: (rule_advanced_response), - (save_search_dialog), (menubar_activated), (option_changed), - (dup_item_no_subitems), (build_items), (free_built_items), - (free_items), (set_menu), (get_property), (e_filter_bar_new): - * misc/e-filter-bar.h: - * misc/e-search-bar.c: (set_find_now_sensitive), - (clear_search), (emit_search_activated), (search_now_verb_cb), - (clear_verb_cb), (setup_standard_verbs), (search_verb_cb), - (get_selected_item_label), (entry_focus_in_cb), - (entry_focus_out_cb), (entry_activated_cb), (entry_changed_cb), - (viewitem_activated_cb), (scopeitem_activated_cb), - (option_activated_cb), (option_button_clicked_cb), - (clear_button_clicked_cb), (scopeoption_changed_cb), (set_menu), - (set_option), (impl_get_property), (impl_set_property), - (impl_dispose), (class_init), (init), (e_search_bar_construct), - (e_search_bar_set_viewoption_menufunc), - (e_search_bar_set_viewoption_menu), - (e_search_bar_get_selected_viewitem), - (e_search_bar_set_viewoption), (e_search_bar_set_scopeoption), - (e_search_bar_set_scopeoption_menu), - (e_search_bar_set_viewitem_id), (e_search_bar_set_item_id), - (e_search_bar_set_search_scope), (e_search_bar_get_item_id), - (e_search_bar_get_search_scope), (e_search_bar_get_viewitem_id), - (e_search_bar_set_ids), (e_search_bar_set_text), - (e_search_bar_get_text): - * misc/e-search-bar.h: - * table/e-tree-table-adapter.c: - (e_tree_table_adapter_save_expanded_state): Added code for search - ui. - * misc/e-icon-entry.c : Added. - * misc/e-icon-entry.h : Added. - -2006-06-20 Harish Krishnaswamy <kharish@novell.com> - - * e-timezone-dialog/e-timezone-dialog.c - (zone_display_name_with_offset): Fix compiler warning. - -2006-06-19 Tor Lillqvist <tml@novell.com> - - * e-timezone-dialog/e-timezone-dialog.c: Define gmtime_r() and - localtime_r() macros for Win32. Should not declare tzname, - timezone and daylight on Win32, they are declared properly in - <time.h> already. - -2006-06-14 Srinivasa Ragavan <sragavan@novell.com> - - ** Fixes bug #204798 , #235691 , #229132 - * e-timezone-dialog/e-timezone-dialog.c: - (e_timezone_dialog_add_timezones), (get_local_offset), - (get_local_timezone), (format_utc_offset), - (zone_display_name_with_offset), (zone_display_name), - (on_map_motion), (e_timezone_dialog_set_timezone): Added code to set - the timezone as default to local timezone and show the time offset in - the map motion. - -2006-06-02 Srinivasa Ragavan <sragavan@novell.com> - - ** Added a new hbox cell renderer and a new Sort By menu to e-table to - sort by columns not shown in the table. - - * table/Makefile.am: - * table/e-cell-text.c: (build_layout): Added support for font - rendering in cell - * table/e-cell-tree.c: (ect_event): Fixed a bug where the expander - animates in arbitary position. - * table/e-table-header-item.c: (ethi_popup_customize_view), - (sort_by_id), (popup_custom), (ethi_header_context_menu), - (ethi_event): Added a new Sort by menu, to the e-table headers, which - helps to easily sort by columns without adding that column. - * table/e-cell-hbox.[ch]: Added a new hbox renderer. - -2006-01-30 Kjartan Maraas <kmaraas@gnome.org> - - * e-timezone-dialog/e-timezone-dialog.c: (get_zone_from_point): - * menus/gal-view-menus.c: - * misc/e-attachment-bar.c: (calculate_height_width), - (update_remote_file), (e_attachment_bar_get_attachment), - (class_init): - * misc/e-attachment.c: (async_progress_update_cb), - (download_to_local_path): - * misc/e-calendar-item.c: (e_calendar_item_get_arg), - (e_calendar_item_realize), (e_calendar_item_ensure_days_visible): - * misc/e-calendar.c: (e_calendar_drag_motion), - (e_calendar_drag_leave), (e_calendar_focus): - * misc/e-canvas-background.c: (ecb_get_property): - * misc/e-canvas.c: (e_canvas_class_init), (pick_current_item): - * misc/e-cell-date-edit.c: (e_cell_date_edit_do_popup), - (e_cell_date_edit_show_popup): - * misc/e-cell-percent.c: - * misc/e-charset-picker.c: (e_charset_picker_bonobo_ui_populate): - * misc/e-config-page.c: (e_config_page_class_init): - * misc/e-dateedit.c: (e_date_edit_set_date), - (e_date_edit_set_date_and_time_of_day), - (on_date_popup_date_selected): - * misc/e-dropdown-button.c: (e_dropdown_button_class_init): - * misc/e-expander.c: (get_expander_bounds), (e_expander_expose), - (is_in_expander_panel): - * misc/e-filter-bar.c: (option_changed), (build_items): - * misc/e-image-chooser.c: (e_image_chooser_init), - (image_drag_data_received_cb): - * misc/e-map.c: (e_map_size_allocate), (e_map_button_press), - (e_map_button_release), (e_map_motion), (e_map_zoom_to_location), - (e_map_zoom_out), (update_render_point), (repaint_point), - (zoom_in_smooth): - * misc/e-multi-config-dialog.c: (impl_response): - * misc/e-reflow.c: (e_reflow_realize), (e_reflow_event): - * misc/e-search-bar.c: (clear_search), (search_now_verb_cb), - (entry_activated_cb), (activate_button_clicked_cb), - (clear_button_clicked_cb): - * misc/e-selection-model.c: (e_selection_model_key_press): - * misc/e-send-options.c: (delay_until_date_changed_cb), - (e_sendoptions_get_need_general_options): - * misc/e-unicode.c: (e_stripped_char): - * table/e-cell-progress.c: (eprog_draw_border), (eprog_draw), - (eprog_event): - * table/e-cell-spin-button.c: (ecsb_event), (ecsb_focus), - (ecsb_unfocus), (ecsb_dispose): - * table/e-cell-text.c: (ect_draw), (ect_show_tooltip): - * table/e-cell-toggle.c: (etog_draw), (etog_event): - * table/e-cell-tree.c: (ect_max_width): - * table/e-cell-vbox.c: - * table/e-table-click-to-add.c: (etcta_event): - * table/e-table-config.c: (create_global_store): - * table/e-table-field-chooser-dialog.c: - * table/e-table-field-chooser-item.c: (etfci_find_button), - (etfci_reflow), (etfci_get_property), (etfci_realize): - * table/e-table-field-chooser.c: - (e_table_field_chooser_class_init): - * table/e-table-group-container.c: (etgc_unrealize): - * table/e-table-group.c: (e_table_group_new): - * table/e-table-header-item.c: (e_table_header_item_get_height), - (ethi_realize), (ethi_event): - * table/e-table-header-utils.c: (e_table_draw_elided_string), - (e_table_header_draw_button): - * table/e-table-item.c: (eti_set_property), (eti_get_property), - (eti_draw), (eti_event), (eti_cursor_change): - * table/e-table-scrolled.c: (e_table_scrolled_class_init): - * table/e-table-search.c: - * table/e-table-sort-info.c: (e_table_sort_info_save_to_node): - * table/e-table.c: (table_canvas_reflow_idle), - (table_canvas_size_allocate), (canvas_vbox_event), - (click_to_add_event), (do_drag_motion), (e_table_class_init): - * table/e-tree-scrolled.c: (e_tree_scrolled_class_init): - * table/e-tree.c: (tree_canvas_reflow_idle), - (tree_canvas_size_allocate), (e_tree_drag_get_data), - (do_drag_motion), (e_tree_class_init): - * text/e-text.c: (e_text_set_property), (e_text_draw), - (_do_tooltip), (primary_clear_cb), (_get_position), - (e_text_command): Tons of cleanups of the following sort: - - remove unused vars - - remove extraneous semi-colons - - add some comments where assignments were done without using - the results later - - remove break; statements after return foo; - - add casts in some places to be more type correct - - rename variables with name clashes - - s/if/ifdef in some cases - - mark some code static - - remove some unused functions - - use guint for 1-bit bitfields - -2006-01-30 Chenthill Palanisamy <pchenthill@novell.com> - - Reviewed by Harish Krishnaswamy <kharish@novell.com> - - Fixes #250754 - * misc/e-dateedit.c: Used %x for strftime so that the date is represented - according to the locale used. - -2006-01-16 Srinivasa Ragavan <sragavan@novell.com> - - * table/e-tree-table-adapter.c (set_expanded_state_func), - (set_collapsed_state_func): - (e_tree_table_adapter_load_all_expanded_state): - * table/e-tree.c: (e_tree_load_all_expanded_state): - Added functions to collapse/Expand all - -2006-01-15 Srinivasa Ragavan <sragavan@novell.com> - - ** Fixes bug #220286 - - * text/e-text.c: (tooltip_ungrab), (_do_tooltip), (e_text_event): - Added a ungrab for keyboard, so that it hides the tooltip. - -2006-01-13 Srinivasa Ragavan <sragavan@novell.com> - - ** Fixes bug #326264 - - * menus/gal-view-menus.c: (build_menus): Changes mnemonics of Current - View menu item, since it collides with Caret Mode. - -2006-01-11 Johnny Jacob <johnnyjacob#gmail.com> - - * text/e-text.c (e_text_set_property): Add the width to - the pango layout. - -2006-01-10 Simon Zheng <simon.zheng@sun.com> - - * menus/gal-view-instance.c: - * misc/e-attachment-bar.c: - * misc/e-calendar-item.c: - * misc/e-dateedit.c: - Use e_util_mkdir_hier() instead of e_mkdir_hier(). - - Use e_util_strstrcase() instead of e_strstrcasea(). - - use e_strfime() in evolution-data-server/ - libedataserver/e-data-server-util.c instead of the copy in - evolution/e-util/e-util.c. - - use e_filename_make_safe() in evolution-data-server/ - libedataserver/e-data-server-util.c instead of the copy in - evolution/e-util/e-util.c. - - use e_utf8_strftime() in evolution-data-server/ - libedataserver/e-data-server-util.c instead of the copy in - evolution/e-util/e-util.c. - -2005-12-30 Andre Klapper <a9016009@gmx.de> - - * evolution/widgets/misc/e-url-entry.c: - harmonized "URL", "Url" and "url". Fixes bug 325125. - -2005-12-23 Andre Klapper <a9016009@gmx.de> - - * e-table.c: fixed one typo. - Fixes bug 306118 partially. - -2005-12-20 Srinivasa Ragavan <sragavan@novell.com> - - ** Fixes bug #240762 - - * menus/gal-define-views-dialog.c: - (etable_selection_change_forall_cb): Made only the user created - views to be editable. - -2005-12-18 Tor Lillqvist <tml@novell.com> - - * e-timezone-dialog/Makefile.am: Link with libeutil. - - * e-timezone-dialog/e-timezone-dialog.c - (e_timezone_dialog_construct): Construct glade file pathname at - run-time. - - * menus/gal-view-collection.c - * menus/gal-view-instance.c: Include libedataserver/e-xml-utils.h - for e_xml_save_file() prototype. - -2005-12-12 Irene Huang <Irene.Huang@sun.com> - - reviewed by: Veerapuram Varadhan <vvaradhan@novell.com> - - * menus/gal-view-menus.c: Change #include <e-util/e-list.h> to - #include <libedataserver/e-list.h>. - * misc/e-unicode.c: Change #include <e-util/e-iconv.h> to - #include <libedataserver/e-iconv.h>. - -2005-12-06 Veerapuram Varadhan <vvaradhan@novell.com> - - * menus/gal-view-new-dialog.c (gal_view_new_dialog_set_property): - Load the widget pointer before using it. Fixes a compiler warning - as well as #313219 - -2005-11-29 Simon Zheng <simon.zheng@sun.coma - - * menus/gal-view-collection.c: (gal_view_generate_string): - Fix #322311. Using g_utf8_next_char() to traverses UTF-8 - string and replace characters that are neither a alpha nor - a numeral. - -2005-09-29 Tor Lillqvist <tml@novell.com> - - * menus/gal-view-collection.c (load_single_dir) - * menus/gal-view-instance.c (load_current_view): Use - g_win32_locale_filename_from_utf8() from GLib 2.8 instead of - gnome_win32_locale_filename_from_utf8() which was temporarily in - libgnome. - -2005-09-29 Li Yuan <li.yuan@sun.com> - - * menus/gal-define-views-dialog.c: - (etable_selection_change_forall_cb): - Fix #240762. If the galview implement the edit function, - enable the edit button. If not, disable it. - -2005-09-28 Tor Lillqvist <tml@novell.com> - - * e-timezone-dialog/Makefile.am - * menus/Makefile.am - * text/Makefile.am: Install in privsolib instead of privlib (no - difference on Unix). Use NO_UNDEFINED. Link with all needed - libraries to satisfy the -no-undefined used on Windows. - - * e-timezone-dialog/Makefile.am - * text/Makefile.am: On Win32, use bootstrap import library for - libemiscwidgets, which hasn't been built yet when we come - here. - - * menus/Makefile.am: Drop several overlapping CFLAGS, use - E_UTIL_CFLAGS instead. - - * text/Makefile.am: Drop several overlapping - CFLAGS. EXTRA_GNOME_CFLAGS should be enough. - -2005-08-03 Li Yuan <li.yuan@sun.com> - - * menus/gal-view-new-dialog.glade: - Add a11y name to the left table of config dialog. - * misc/e-multi-config-dialog.c: - Add name to the left table of preference dialog. - * table/e-table-config.c: (e_table_proxy_etable_shown_new), - (e_table_proxy_etable_available_new): - Add a11y name to "Show Fields" table and "Available Fields" table. - -2005-07-28 Mengjie Yu <meng-jie.yu@sun.com> - - * misc/e-attachment-bar.c: (update_remote_file): - Void function should not return value. - - Fixes #311837 - -2005-07-21 Srinivasa Ragavan <sragavan@novell.com> - - * menus/gal-define-views-dialog.c: (etable_selection_change_forall_cb) - Fixes a bug where it allows just builtin views to be edited and not user - added one. It should have been the other way around. - -2005-06-23 Kaushal Kumar <kakumar@novell.com> - - * text/Makefile.am: Set libetextincludedir to text to match - source directory name. - -2005-06-21 Kaushal Kumar <kakumar@novell.com> - - * table/ChangeLog: Added from gal/gal/e-table as Gal is - retired from Head and e-table files are moved here. - -2005-05-12 Srinivasa Ragavan <sragavan@novell.com> - * misc/e-dateedit.c: (on_time_entry_key_release), - (create_children): Fix the bug 303856. Enables OK button - when arrow key used to change the time in a appointment. - -2005-05-06 Sarfraaz Ahmed <asarfraaz@novell.com> - - * misc/e-search-bar.c: (set_menu) Solaris gettext crashes on NULL - input string. Fixes #260312. Patch submitted by - Suresh Chandrasekharan <suresh.chandrasekharan@sun.com> - -2005-04-28 Li Yuan <li.yuan@sun.com> - - * misc/e-calendar-item.c: (e_calendar_item_realize), - (e_calendar_item_set_selection_if_emission), - (e_calendar_item_style_set): - use widget->style instead of hard code colors. - * misc/e-calendar-item.h: - * misc/e-calendar.c: (e_calendar_style_set): - call e_calendar_item_style_set when style changes. - - Fixes #6767. - -2005-03-14 Not Zed <NotZed@Ximian.com> - - * menus/gal-view-menus.c (build_menus): don't - bonobo_ui_free_string from bonobo_ui_node_to_string - it should be - g_free'd now (api chagne in bonobo). - -2005-03-11 Sushma Rai <rsushma@novell.com> - - * misc/e-send-options.c (setup_widgets): Not showing the send options - notebook tabs, in case general options page is disabled. Fixes #73501 - -2005-02-09 Hans Petter Jansson <hpj@novell.com> - - * e-timezone-dialog/Makefile.am: - * menus/Makefile.am: - * misc/Makefile.am: Install shared libraries to privlibdir. - -2005-01-18 Hao Sheng <hao.sheng@sun.com> - - * misc/e-dateedit.[ch]: - (e_date_edit_get_entry): return the entry of the date edit. - -2004-11-12 JP Rosevear <jpr@novell.com> - - * menus/gal-view-menus.c: Convert to G_DEFINE_TYPE - -2004-11-12 JP Rosevear <jpr@novell.com> - - * e-timezone-dialog/e-timezone-dialog.c: convert to G_DEFINE_TYPE - -2004-10-28 Li Yuan <li.yuan@sun.com> - - * e-timezone-dialog/e-timezone-dialog.glade: Add a name for - timezone combox. - -2004-09-13 Rodney Dawes <dobey@novell.com> - - * e-timezone-dialog/e-timezone-dialog.c (get_widgets): - (on_map_motion, on_map_leave, e_timezone_dialog_set_timezone): - * e-timezone-dialog/e-timezone-dialog.glade: - Add the label back for previewing the timezone name, and set the - label appropriately - - Fixes #64800 - -2004-08-17 Rodney Dawes <dobey@novell.com> - - * e-timezone-dialog/e-timezone-dialog.c (e_timezone_dialog_construct): - Connect to the "changed" signal instead of "activate" - - Fixes #62970 - -2004-05-20 Rodney Dawes <dobey@ximian.com> - - * e-timezone-dialog/e-timezone-dialog.c (e_timezone_dialog_construct): - Use the activate signal, instead of changed, for the combo box - (on_map_motion): Set the text in the combo's entry when we mouse over - one of the points on the map, as a preview for the timezone - (on_map_leave): Reset the combo's entry to the timezone we started with - when we leave the map - - Fixes #57122 - -2004-04-09 Rodney Dawes <dobey@ximian.com> - - * e-timezone-dialog/e-timezone-dialog.c - (e_timezone_dialog_construct): Set the border widths on the dialog's - vbox and action area to be HIG-complaint - Get rid of the timezone preview widget in here - Point the internal 'table' to the right widget - (on_map_motion): Get rid of the extra-hacky code to set the preview - widget's label to the timezone, now that that widget is gone - (on_map_leave): Update the comment to not reference the preview - widget that is now gone - Get rid of the code to set the preview widget's label to empty string - * e-timezone-dialog/e-timezone-dialog.glade: Update for HIG-compliance - -2004-02-26 JP Rosevear <jpr@ximian.com> - - * e-timezone-dialog/e-timezone-dialog.c - (e_timezone_dialog_dispose): don't reference uninitialized memory - -2003-12-10 Not Zed <NotZed@Ximian.com> - - * menus/gal-view-menus.c (remove_instance): NULL out - priv->instance when we unref it. Bug #51713. - -2003-12-06 JP Rosevear <jpr@ximian.com> - - * */Makefile.am: Remove hard coded disable deprecated flags - -2003-11-07 JP Rosevear <jpr@ximian.com> - - * e-timezone-dialog/Makefile.am: don't include toplevel libical - -2003-11-07 JP Rosevear <jpr@ximian.com> - - * e-timezone-dialog/Makefile.am: use TZDIALOG_FLAGS - -2003-10-09 Jeffrey Stedfast <fejj@ximian.com> - - * e-timezone-dialog/Makefile.am: INCLUDE path fixes for changes - made to libical build. - - * e-timezone-dialog.h: #include <libical/ical.h> diff --git a/widgets/ChangeLog.pre-1-4 b/widgets/ChangeLog.pre-1-4 deleted file mode 100644 index 42bb1157ac..0000000000 --- a/widgets/ChangeLog.pre-1-4 +++ /dev/null @@ -1,506 +0,0 @@ -2003-05-19 Anna Marie Dirks <anna@ximian.com> - - * e-timezone-dialog/e-timezone-dialog.glade: HIG-ified the - spacing, padding, alignment of this dialog. Fixes bug #41148 - -2003-05-16 Anna Marie Dirks <anna@ximian.com> - - * e-timezone-dialog/e-timezone-dialog.glade: HIG-ified the - spacing, padding, alignment of this dialog. Fixes bug #41148 - -2003-05-14 JP Rosevear <jpr@ximian.com> - - * menus/gal-view-menus.c (gvm_finalize): unref the component - -2003-05-13 Ettore Perazzoli <ettore@ximian.com> - - * menus/gal-view-menus.c (gal_view_menus_unmerge): Guard against - the BonoboUIComponent not having a container to prevent a warning. - -2003-04-23 Jeffrey Stedfast <fejj@ximian.com> - - * menus/gal-view-menus.c (build_menus): Don't convert the label - charset from UTF-8 into the locale charset. - -2003-04-22 Anna Dirks <anna@ximian.com> - - * misc/e-multi-config-dialog.c : add appropriate padding and - spacing to the settings dialog. Fixes #41392. - -2003-04-10 Mike Kestner <mkestner@ximian.com> - - * menus/gal-view-menus.c (build menus): add ... to "Define Views" - and "Save Custom View" menuitem labels. - -2003-03-27 Ettore Perazzoli <ettore@ximian.com> - - * menus/gal-view-menus.c (set_state): Removed debugging message. - -2003-03-18 Ettore Perazzoli <ettore@ximian.com> - - * e-timezone-dialog/e-timezone-dialog.glade: Swap OK/Cancel - buttons to comply with the HIG. - -2003-03-17 Dan Winship <danw@ximian.com> - - * e-timezone-dialog/e-timezone-dialog.c (on_map_motion): Don't - crash if there's no timezone set initially. #39783 - -2003-03-11 Dan Winship <danw@ximian.com> - - * e-timezone-dialog/e-timezone-dialog.c: Various cleanups. - (e_timezone_dialog_get_timezone): Return an icaltimezone. - (e_timezone_dialog_set_timezone): Take an icaltimezone - (e_timezone_dialog_construct): Set a minimum size on the scrolled - window - -2003-03-06 Ettore Perazzoli <ettore@ximian.com> - - * menus/gal-view-menus.c (gal_view_menus_unmerge): Use - G_GNUC_FUNCTION instead of __FUNCTION__. - -2003-02-20 Dan Winship <danw@ximian.com> - - * e-timezone-dialog/Makefile.am: Make this a dynamic lib rather - than static so it can be portably linked into the shlib - components. - -2003-02-06 Dan Winship <danw@ximian.com> - - * e-timezone-dialog/e-timezone-dialog.glade: Set response_ids on - the OK/Cancel buttons - -2003-02-05 Dan Winship <danw@ximian.com> - - * e-timezone-dialog/Makefile.am (INCLUDES): Remove unneeded - MAP_DIR define. - (gladedir): Remove. Defined in configure.in now. - - * menus/gal-view-menus.c: #include <string.h> - -2003-01-22 Ettore Perazzoli <ettore@ximian.com> - - * e-timezone-dialog/Makefile.am (gladedir): Version using - $(BASE_VERSION). - (INCLUDES): Update the MAP_DIR define with versioning. - -2003-01-08 Ettore Perazzoli <ettore@ximian.com> - - * e-timezone-dialog/Makefile.am: Images are now in - $(datadir)/evolution/images instead of - $(datadir)/images/evolution. - -2002-11-14 Chris Toshok <toshok@ximian.com> - - * menus/gal-view-menus.c (define_views): use GtkDialog's - ::response instead of GnomeDialog's ::clicked. - (dialog_response): use response id's. - (gvm_finalize): fix warning. - -2002-11-13 Ettore Perazzoli <ettore@ximian.com> - - * menus/gal-view-menus.h - * menus/gal-view-menus.c: GObjectified. - - * e-timezone-dialog/e-timezone-dialog.h - * e-timezone-dialog/e-timezone-dialog.c: GObjectified. - -2002-11-13 Ettore Perazzoli <ettore@ximian.com> - - * e-timezone-dialog/e-timezone-dialog.c - (e_timezone_dialog_destroy): g_object_unref() instead of - gtk_object_unref() on the GladeXML object. - (e_timezone_dialog_construct): Likewise on the ETimezoneDialog - object. - -2002-11-13 Ettore Perazzoli <ettore@ximian.com> - - * e-timezone-dialog/e-timezone-dialog.glade: Converted to Glade 2. - -2002-11-13 Not Zed <NotZed@Ximian.com> - - * menus/gal-view-menus.c: gnome-xml->libxml - - * menus/gal-view-menus.h: gnome-xml->libxml - -2002-11-03 Ettore Perazzoli <ettore@ximian.com> - - * e-timezone-dialog/e-timezone-dialog.c - (e_timezone_dialog_get_builtin_timezone): Constify arg - display_name. - -2002-11-01 Ettore Perazzoli <ettore@ximian.com> - - * menus/gal-view-menus.c (build_stuff): Add some casts. - -2002-10-30 Ettore Perazzoli <ettore@ximian.com> - - * e-timezone-dialog/e-timezone-dialog.c - (e_timezone_dialog_construct): Pass NULL as the domain arg to - glade_xml_new(). - (e_timezone_dialog_get_timezone): Make arg display_name const. - (find_selected_point): Constify local variable timezone. - - * e-timezone-dialog/e-timezone-dialog.h: Do not #include - <libgnome/gnome-defs.h>. - -2002-08-15 Mike Kestner <mkestner@ximian.com> - - * menus/gal-view-menus.c (build_stuff): ref/unref the gvm - -2002-07-09 Peter Williams <peterw@ximian.com> - - * e-timezone-dialog/Makefile.am: Add -I$(top_builddir)/libical/src/libical; - some headers that we rely on get installed, so they point to the ical.h that - gets generated and installed; consequently we need to be able to find the - generated ical.h - - * misc/Makefile.am: Install libemiscwidgets.a and its headers. However, - break EFilterBar into a separate libefilterbar.a because we don't want - the installed library to depend on libfilter. - -2002-07-05 Ettore Perazzoli <ettore@ximian.com> - - * e-timezone-dialog/e-timezone-dialog.c (e_timezone_dialog_init): - Make not floating. - -2002-06-04 Christopher James Lahey <clahey@ximian.com> - - * menus/gal-view-menus.c, menus/gal-view-menus.h - (gal_view_menus_set_show_define_views): Added this function to let - you disable the define views dialog. - -2002-06-04 Christopher James Lahey <clahey@ximian.com> - - * menus/gal-view-menus.c (define_views): Don't show this dialog - more than once per collection. - -2002-05-14 Christopher James Lahey <clahey@ximian.com> - - * menus/gal-view-menus.c (build_menus): Made it so that if the - current_id doesn't match any of the given ids, it treats it the - same as a NULL id. - (gal_view_menus_apply): Added a check for gvm->priv == NULL here. - (gal_view_menus_apply, collection_changed, instance_changed): - Removed calls to set_radio after build_stuff, since the last thing - build_stuff does is calls set_radio. - -2002-02-27 Larry Ewing <lewing@ximian.com> - - * misc/e-combo-button.c (impl_button_press_event): make a right - click bring up the popup menu. - -2002-02-07 Christopher James Lahey <clahey@ximian.com> - - * menus/gal-view-menus.c, menus/gal-view-menus.h - (gal_view_menus_unmerge): New function to handle unmerging menus - at control deactivation time. - (d): Turned off debugging output here. - (build_menus): Gave the separators names and marked them with f="" - to make them work better with bonobo 1. - -2002-02-07 Christopher James Lahey <clahey@ximian.com> - - * menus/gal-view-menus.c, menus/gal-view-menus.h - (gal_view_menus_new): Made this take a GalViewInstance instead of - a GalViewCollection. Reworked most of this to utilize the - interfaces provided by GalViewInstance. - -2002-01-27 Ettore Perazzoli <ettore@ximian.com> - - * menus/Makefile.am: Use `GNOME_FULL_CFLAGS'. - -2002-01-11 Damon Chaplin <damon@ximian.com> - - * e-timezone-dialog/e-timezone-dialog.[hc]: translate timezone names, - and provide a function to get back to the English version. - -2001-10-24 Jon Trowbridge <trow@ximian.com> - - * menus/gal-view-menus.c (gal_view_menus_apply): Ref the - BonoboUIComponent that we are holding. - (gvm_destroy): Unref our BonoboUIComponent. - -2001-10-21 Christopher James Lahey <clahey@ximian.com> - - * menus/gal-view-menus.c: Make this not be a radio button, but - instead just a normal menu. - -2001-10-18 Jeffrey Stedfast <fejj@ximian.com> - - * menus/gal-view-menus.c: #include bonobo-ui-util.h - -2001-10-04 Rodrigo Moya <rodrigo@ximian.com> - - * misc/Makefile.am: - * menus/Makefile.am: added BONOBO_GNOME_CFLAGS to make it compile - with latest Bonobo - -2001-09-19 JP Rosevear <jpr@ximian.com> - - * Makefile.am: the meeting-time-sel dir is dead, relevant pieces - moved to calendar/gui - -2001-08-26 Zbigniew Chyla <cyba@gnome.pl> - - Fixes #2465 - - * menus/gal-view-menus.c (build_menus): - Encode the label using bonobo_ui_util_encode_str and set "label" - attribute, not "_label". - I have no idea what the previous code was trying to do but it was - definitely wrong. - -2001-08-27 Ettore Perazzoli <ettore@ximian.com> - - * e-timezone-dialog/e-timezone-dialog.h - (e_timezone_dialog_reparent): New prototype here. - -2001-08-27 Iain Holmes <iain@ximian.com> - - * e-timezone-dialog/e-timezone.h: Add a prototype for - e_timezone_dialog_reparent - -2001-08-18 Iain Holmes <iain@ximian.com> - - * Makefile.am: Add the e-timezone-dialog dir. - - * e-timezone-dialog/*: Add new files. - -2001-08-10 Christopher James Lahey <clahey@ximian.com> - - * menus/gal-view-menus.c (build_menus): Don't display the Define - Views dialog. - -2001-07-02 Anna Marie Dirks <anna@ximian.com> - - * misc/e-filter-bar.c (option_changed): Specified a default size - for the Advanced Search dialog such that when it first appear, it - is large enough to view all parts of a search clause without the - user needing to resize it. - -2001-05-31 Federico Mena Quintero <federico@ximian.com> - - * menus/gal-view-menus.c (gal_view_menus_construct): Store the - connection ID of the "changed" signal in the collection. - (gal_view_menus_new): Added preconditions. - (gal_view_menus_construct): Added preconditions. - -2001-05-21 Chris Toshok <toshok@ximian.com> - - * menus/gal-view-menus.c (build_menus): make the view menuitems - radio items of the same group, and allocate the closure here. - (free_verbs): only need to free the one DefineViews verb here. - (closure_free): new function - EListFreeFunc for our - listenerClosure list. - (remove_listeners): new function, free our listener list. - (gvm_destroy): call remove_listeners. - (gvm_init): init listenerClosures list. - (toggled_cb): callback for radio items. - (build_verbs): strip out almost all the code since there's only 1 - verb now. - (build_stuff): call remove_listeners. - -2001-05-08 Gediminas Paulauskas <menesis@delfi.lt> - - * misc/e-search-bar.c (add_dropdown), (set_option): first try to - translate, then if not suceeded -- convert from utf8. This handles - cases when menuitem needs to be translated (it is passed as N_()), or is - utf8 search title. However you cannot have a search like "Folders" -- it - is translated. Part of fix for #2253. - - * misc/e-filter-bar.c: d() debugging strings. Use E_FILTERBAR_ADVANCED - macro instead of own "Advanced ..." for consistency. - -2001-05-07 Gediminas Paulauskas <menesis@delfi.lt> - - * menus/gal-view-menus.c (build_menus): convert label to locale - encoding. Still displays truncated strings. - - * menus/Makefile.am: removed -DEVOLUTION_VERSION. - -2001-04-21 Gediminas Paulauskas <menesis@delfi.lt> - - * menus/gal-view-menus.c: bonobo_ui_node_set_attr expects unstranslated - strings, so change _() to N_(). - -2001-04-12 Dan Winship <danw@ximian.com> - - * menus/gal-view-menus.c (build_menus): Fix a memory leak. - (Doesn't anyone ever change any other file in this directory? :) - -2001-04-10 Gediminas Paulauskas <menesis@delfi.lt> - - * menus/gal-view-menus.c: convert label to utf8. - -2001-04-04 Kjartan Maraas <kmaraas@gnome.org> - - * menus/gal-view-menus.c: Fix headers. - -2001-03-28 Christopher James Lahey <clahey@ximian.com> - - * menus/gal-view-menus.c (build_menus): Don't print the xml tree - here. - -2001-03-16 Miguel de Icaza <miguel@ximian.com> - - * menus/gal-view-menus.c (build_menus): Hook this up under the - "ViewBegin" node. - -2001-02-28 Miguel de Icaza <miguel@ximian.com> - - * menus/gal-view-menus.c (build_menus): Add translation string - here. - -2001-03-05 Christopher James Lahey <clahey@ximian.com> - - * menus/gal-view-menus.c (collection_changed): Rebuild when the - collection changes. - -2001-01-27 Jason Leach <jasonleach@usa.net> - - * cvs remove all files in shortcut-bar/, this widget is now in - gal, will be maintained there. - - * Makefile.am (SUBDIRS): Remove shortcut-bar from here. - -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. - -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. - -2000-12-06 Christopher James Lahey <clahey@helixcode.com> - - * menus/gal-view-menus.c, menus/gal-view-menus.h: Added a - GalViewCollection argument to the new function here. - -2000-12-04 Dan Winship <danw@helixcode.com> - - * menus/gal-view-menus.c: NULL-terminate gal_view_menus_apply's - BonoboUIVerb array to prevent a crash. (Why are there gal* things - in the evolution sources?) - -2000-11-05 Christopher James Lahey <clahey@helixcode.com> - - * e-paned/.cvsignore, e-table/.cvsignore, e-text/.cvsignore: - Removed unnecessary .cvsignore files. - -2000-09-18 Christopher James Lahey <clahey@helixcode.com> - - * Makefile.am: Removed directories that have been moved to gal. - - * e-paned/.cvsignore, e-paned/Makefile.am, e-paned/e-hpaned.c, - e-paned/e-hpaned.h, e-paned/e-paned.c, e-paned/e-paned.h, - e-paned/e-vpaned.c, e-paned/e-vpaned.h: Moved to gal. - - * e-reflow/.cvsignore, e-reflow/Makefile.am, - e-reflow/e-reflow-sorted.c, e-reflow/e-reflow-sorted.h, - e-reflow/e-reflow.c, e-reflow/e-reflow.h: Moved to gal. - - * e-table/.cvsignore, e-table/ChangeLog, e-table/LICENSE, - e-table/Makefile.am, e-table/ROADMAP.e-table, e-table/TODO, - e-table/add-col.xpm, e-table/arrow-down.xpm, e-table/arrow-up.xpm, - e-table/check-empty.xpm, e-table/check-filled.xpm, - e-table/clip.png, e-table/e-cell-checkbox.c, - e-table/e-cell-checkbox.h, e-table/e-cell-string.c, - e-table/e-cell-text.c, e-table/e-cell-text.h, - e-table/e-cell-toggle.c, e-table/e-cell-toggle.h, - e-table/e-cell-tree.c, e-table/e-cell-tree.h, e-table/e-cell.c, - e-table/e-cell.h, e-table/e-table-click-to-add.c, - e-table/e-table-click-to-add.h, e-table/e-table-col-dnd.h, - e-table/e-table-col.c, e-table/e-table-col.h, - e-table/e-table-column-model.h, e-table/e-table-column.c, - e-table/e-table-config.c, e-table/e-table-config.glade, - e-table/e-table-config.glade.h, e-table/e-table-config.h, - e-table/e-table-defines.h, e-table/e-table-example-1.c, - e-table/e-table-example-2.c, - e-table/e-table-field-chooser-dialog.c, - e-table/e-table-field-chooser-dialog.h, - e-table/e-table-field-chooser-item.c, - e-table/e-table-field-chooser-item.h, - e-table/e-table-field-chooser.c, - e-table/e-table-field-chooser.glade, - e-table/e-table-field-chooser.glade.h, - e-table/e-table-field-chooser.h, - e-table/e-table-group-container.c, - e-table/e-table-group-container.h, e-table/e-table-group-leaf.c, - e-table/e-table-group-leaf.h, e-table/e-table-group.c, - e-table/e-table-group.glade, e-table/e-table-group.glade.h, - e-table/e-table-group.h, e-table/e-table-header-item.c, - e-table/e-table-header-item.h, e-table/e-table-header.c, - e-table/e-table-header.h, e-table/e-table-item.c, - e-table/e-table-item.h, e-table/e-table-model.c, - e-table/e-table-model.h, e-table/e-table-one.c, - e-table/e-table-one.h, e-table/e-table-scrolled.c, - e-table/e-table-scrolled.h, e-table/e-table-selection-model.c, - e-table/e-table-selection-model.h, e-table/e-table-simple.c, - e-table/e-table-simple.h, e-table/e-table-size-test.c, - e-table/e-table-sort-info.c, e-table/e-table-sort-info.h, - e-table/e-table-sorted-variable.c, - e-table/e-table-sorted-variable.h, e-table/e-table-sorted.c, - e-table/e-table-sorted.h, e-table/e-table-sorter.c, - e-table/e-table-sorter.h, e-table/e-table-subset-variable.c, - e-table/e-table-subset-variable.h, e-table/e-table-subset.c, - e-table/e-table-subset.h, e-table/e-table-text-model.c, - e-table/e-table-text-model.h, e-table/e-table-tooltip.h, - e-table/e-table-tree.h, e-table/e-table.c, e-table/e-table.h, - e-table/e-tree-example-1.c, e-table/e-tree-example-2.c, - e-table/e-tree-model.c, e-table/e-tree-model.h, - e-table/e-tree-simple.c, e-table/e-tree-simple.h, - e-table/image1.png, e-table/image2.png, e-table/image3.png, - e-table/remove-col.xpm, e-table/sample.table, - e-table/table-test.c, e-table/table-test.h, e-table/test-check.c, - e-table/test-cols.c, e-table/test-table.c: Moved to gal. - - * e-text/.cvsignore, e-text/Makefile.am, e-text/e-entry-test.c, - e-text/e-entry.c, e-text/e-entry.h, - e-text/e-text-event-processor-emacs-like.c, - e-text/e-text-event-processor-emacs-like.h, - e-text/e-text-event-processor-types.h, - e-text/e-text-event-processor.c, e-text/e-text-event-processor.h, - e-text/e-text-model.c, e-text/e-text-model.h, - e-text/e-text-test.c, e-text/e-text.c, e-text/e-text.h: Moved to - gal. - -2000-09-14 Michael Meeks <michael@helixcode.com> - - * e-reflow/e-reflow-sorted.h: fix include. - -2000-09-13 Christopher James Lahey <clahey@helixcode.com> - - * Makefile.am (SUBDIRS): Added e-reflow. - - * e-reflow/e-reflow.c, e-reflow/e-reflow.h: Moved from - addressbook/gui/minicard/. - - * e-reflow/Makefile.am, e-reflow/.cvsignore: New files for a new - directory. - -2000-09-08 Lauris Kaplinski <lauris@helixcode.com> - - * e-text/e-text.c (calc_line_widths): Fix byte/char confusion - -2000-08-30 Federico Mena Quintero <federico@helixcode.com> - - * e-paned/e-hpaned.c (e_hpaned_motion): Do not flicker while - trying to resize a quantized pane. - - * e-paned/e-vpaned.c (e_vpaned_motion): Likewise. - -2000-08-30 Federico Mena Quintero <federico@helixcode.com> - - * widgets/e-paned/e-vpaned.c (e_vpaned_size_allocate): Ensure that - the child's allocation height is >= 1. - - * widgets/e-paned/e-hpaned.c (e_hpaned_size_allocate): Ensure that - the child's allocation width is >= 1. - -2000-08-30 Federico Mena Quintero <federico@helixcode.com> - - * ChangeLog: Started a ChangeLog here. diff --git a/widgets/Makefile.am b/widgets/Makefile.am index 99305b844e..137446c00e 100644 --- a/widgets/Makefile.am +++ b/widgets/Makefile.am @@ -6,7 +6,4 @@ SUBDIRS = \ table \ menus -EXTRA_DIST = \ - ChangeLog.pre-1-4 - -include $(top_srcdir)/git.mk diff --git a/widgets/e-timezone-dialog/e-timezone-dialog.c b/widgets/e-timezone-dialog/e-timezone-dialog.c index 3dc5f35709..734301ebee 100644 --- a/widgets/e-timezone-dialog/e-timezone-dialog.c +++ b/widgets/e-timezone-dialog/e-timezone-dialog.c @@ -37,11 +37,12 @@ #include "e-timezone-dialog.h" #ifdef G_OS_WIN32 -/* Undef the similar macros from pthread.h, they don't check if - * gmtime() and localtime() return NULL. - */ +#ifdef gmtime_r #undef gmtime_r +#endif +#ifdef localtime_r #undef localtime_r +#endif /* The gmtime() and localtime() in Microsoft's C library are MT-safe */ #define gmtime_r(tp,tmp) (gmtime(tp)?(*(tmp)=*gmtime(tp),(tmp)):0) @@ -261,6 +262,7 @@ ETimezoneDialog * e_timezone_dialog_construct (ETimezoneDialog *etd) { ETimezoneDialogPrivate *priv; + GtkWidget *widget; GtkWidget *map; g_return_val_if_fail (etd != NULL, NULL); @@ -280,10 +282,11 @@ e_timezone_dialog_construct (ETimezoneDialog *etd) goto error; } - gtk_container_set_border_width ( - GTK_CONTAINER (GTK_DIALOG (priv->app)->vbox), 0); - gtk_container_set_border_width ( - GTK_CONTAINER (GTK_DIALOG (priv->app)->action_area), 12); + widget = gtk_dialog_get_content_area (GTK_DIALOG (priv->app)); + gtk_container_set_border_width (GTK_CONTAINER (widget), 0); + + widget = gtk_dialog_get_action_area (GTK_DIALOG (priv->app)); + gtk_container_set_border_width (GTK_CONTAINER (widget), 12); priv->map = e_map_new (); map = GTK_WIDGET (priv->map); diff --git a/widgets/menus/gal-define-views-dialog.c b/widgets/menus/gal-define-views-dialog.c index 3a32dc64f6..ed0902c9b4 100644 --- a/widgets/menus/gal-define-views-dialog.c +++ b/widgets/menus/gal-define-views-dialog.c @@ -71,8 +71,8 @@ gal_define_views_dialog_class_init (GalDefineViewsDialogClass *klass) g_object_class_install_property (object_class, PROP_COLLECTION, g_param_spec_object ("collection", - _("Collection"), - /*_( */"XXX blurb" /*)*/, + "Collection", + NULL, GAL_VIEW_COLLECTION_TYPE, G_PARAM_READWRITE)); } @@ -108,7 +108,9 @@ gdvd_button_new_dialog_callback (GtkWidget *widget, gint id, GalDefineViewsDialo COL_GALVIEW_DATA, item, -1); - gal_view_edit (view, GTK_WINDOW (dialog)); + + if (view && GAL_VIEW_GET_CLASS (view)->edit) + gal_view_edit (view, GTK_WINDOW (dialog)); g_object_unref (view); } } @@ -139,6 +141,9 @@ gdvd_button_modify_callback(GtkWidget *widget, GalDefineViewsDialog *dialog) &dialog->model, &iter)) { gtk_tree_model_get (dialog->model, &iter, COL_GALVIEW_DATA, &item, -1); + + g_return_if_fail (item && !item->built_in); + gal_view_edit (item->view, GTK_WINDOW (dialog)); } } @@ -159,6 +164,8 @@ gdvd_button_delete_callback(GtkWidget *widget, GalDefineViewsDialog *dialog) &iter)) { gtk_tree_model_get (dialog->model, &iter, COL_GALVIEW_DATA, &item, -1); + g_return_if_fail (item && !item->built_in); + for (row=0; row<dialog->collection->view_count; row++) { if (item == dialog->collection->view_data[row]) { gal_view_collection_delete_view (dialog->collection, row); @@ -179,28 +186,25 @@ gdvd_button_delete_callback(GtkWidget *widget, GalDefineViewsDialog *dialog) } static void -gdvd_cursor_changed_callback (GtkWidget *widget, GalDefineViewsDialog *dialog) +gdvd_selection_changed_callback (GtkTreeSelection *selection, GalDefineViewsDialog *dialog) { GtkWidget *button; GtkTreeIter iter; - GalViewCollectionItem *item; - - if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (dialog->treeview), - &dialog->model, - &iter)) { - GalViewClass *gvclass = NULL; + GalViewCollectionItem *item = NULL; + GalViewClass *gvclass = NULL; + if (gtk_tree_selection_get_selected (selection, &dialog->model, &iter)) { gtk_tree_model_get (dialog->model, &iter, COL_GALVIEW_DATA, &item, -1); - button = e_builder_get_widget (dialog->builder, "button-delete"); - gtk_widget_set_sensitive (GTK_WIDGET (button), !item->built_in); - - if (item->view) + if (item && item->view) gvclass = GAL_VIEW_GET_CLASS (item->view); - - button = e_builder_get_widget (dialog->builder, "button-modify"); - gtk_widget_set_sensitive (GTK_WIDGET (button), !item->built_in && gvclass && gvclass->edit != NULL); } + + button = e_builder_get_widget (dialog->builder, "button-delete"); + gtk_widget_set_sensitive (GTK_WIDGET (button), item && !item->built_in); + + button = e_builder_get_widget (dialog->builder, "button-modify"); + gtk_widget_set_sensitive (GTK_WIDGET (button), item && !item->built_in && gvclass && gvclass->edit != NULL); } static void @@ -223,7 +227,10 @@ dialog_response (GalDefineViewsDialog *dialog, gint response_id, gpointer data) static void gal_define_views_dialog_init (GalDefineViewsDialog *dialog) { + GtkWidget *content_area; + GtkWidget *parent; GtkWidget *widget; + GtkTreeSelection *selection; dialog->collection = NULL; @@ -236,11 +243,16 @@ gal_define_views_dialog_init (GalDefineViewsDialog *dialog) } g_object_ref (widget); - gtk_container_remove (GTK_CONTAINER (widget->parent), widget); + + parent = gtk_widget_get_parent (widget); + gtk_container_remove (GTK_CONTAINER (parent), widget); gtk_window_set_default_size (GTK_WINDOW (dialog), 360, 270); gtk_container_set_border_width (GTK_CONTAINER (dialog), 6); gtk_container_set_border_width (GTK_CONTAINER (widget), 6); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), widget, TRUE, TRUE, 0); + + content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); + gtk_box_pack_start (GTK_BOX (content_area), widget, TRUE, TRUE, 0); + g_object_unref (widget); gtk_dialog_add_buttons (GTK_DIALOG (dialog), @@ -256,9 +268,12 @@ gal_define_views_dialog_init (GalDefineViewsDialog *dialog) gdvd_connect_signal (dialog, "button-new", "clicked", G_CALLBACK (gdvd_button_new_callback)); gdvd_connect_signal (dialog, "button-modify", "clicked", G_CALLBACK (gdvd_button_modify_callback)); gdvd_connect_signal (dialog, "button-delete", "clicked", G_CALLBACK (gdvd_button_delete_callback)); - gdvd_connect_signal (dialog, "treeview1", "cursor-changed", G_CALLBACK (gdvd_cursor_changed_callback)); g_signal_connect (dialog, "response", G_CALLBACK (dialog_response), NULL); + selection = gtk_tree_view_get_selection (dialog->treeview); + g_signal_connect (selection, "changed", G_CALLBACK (gdvd_selection_changed_callback), dialog); + gdvd_selection_changed_callback (selection, dialog); + gtk_widget_show (GTK_WIDGET (dialog)); } diff --git a/widgets/menus/gal-define-views-model.c b/widgets/menus/gal-define-views-model.c index e5425f7552..35a18a2484 100644 --- a/widgets/menus/gal-define-views-model.c +++ b/widgets/menus/gal-define-views-model.c @@ -175,15 +175,15 @@ gal_define_views_model_class_init (GalDefineViewsModelClass *klass) g_object_class_install_property (object_class, PROP_EDITABLE, g_param_spec_boolean ("editable", - _("Editable"), - /*_( */"XXX blurb" /*)*/, + "Editable", + NULL, FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_COLLECTION, g_param_spec_object ("collection", - _("Collection"), - /*_( */"XXX blurb" /*)*/, + "Collection", + NULL, GAL_VIEW_COLLECTION_TYPE, G_PARAM_READWRITE)); diff --git a/widgets/menus/gal-view-instance-save-as-dialog.c b/widgets/menus/gal-view-instance-save-as-dialog.c index 56b6dc176b..b713f68000 100644 --- a/widgets/menus/gal-view-instance-save-as-dialog.c +++ b/widgets/menus/gal-view-instance-save-as-dialog.c @@ -220,8 +220,8 @@ gal_view_instance_save_as_dialog_class_init (GalViewInstanceSaveAsDialogClass *k g_object_class_install_property (object_class, PROP_INSTANCE, g_param_spec_object ("instance", - _("Instance"), - /*_( */"XXX blurb" /*)*/, + "Instance", + NULL, GAL_VIEW_INSTANCE_TYPE, G_PARAM_READWRITE)); } @@ -229,6 +229,8 @@ gal_view_instance_save_as_dialog_class_init (GalViewInstanceSaveAsDialogClass *k static void gal_view_instance_save_as_dialog_init (GalViewInstanceSaveAsDialog *dialog) { + GtkWidget *content_area; + GtkWidget *parent; GtkWidget *widget; dialog->instance = NULL; @@ -245,11 +247,16 @@ gal_view_instance_save_as_dialog_init (GalViewInstanceSaveAsDialog *dialog) } g_object_ref (widget); - gtk_container_remove (GTK_CONTAINER (widget->parent), widget); + + parent = gtk_widget_get_parent (widget); + gtk_container_remove (GTK_CONTAINER (parent), widget); /* TODO: add position/size saving/restoring */ gtk_window_set_default_size (GTK_WINDOW (dialog), 300, 360); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), widget, TRUE, TRUE, 0); + + content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); + gtk_box_pack_start (GTK_BOX (content_area), widget, TRUE, TRUE, 0); + g_object_unref (widget); gtk_dialog_add_buttons (GTK_DIALOG (dialog), diff --git a/widgets/menus/gal-view-new-dialog.c b/widgets/menus/gal-view-new-dialog.c index ed5a539616..f364bf0779 100644 --- a/widgets/menus/gal-view-new-dialog.c +++ b/widgets/menus/gal-view-new-dialog.c @@ -57,15 +57,15 @@ gal_view_new_dialog_class_init (GalViewNewDialogClass *klass) g_object_class_install_property (object_class, PROP_NAME, g_param_spec_string ("name", - _("Name"), - /*_( */"XXX blurb" /*)*/, + "Name", + NULL, NULL, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_FACTORY, g_param_spec_object ("factory", - _("Factory"), - /*_( */"XXX blurb" /*)*/, + "Factory", + NULL, GAL_TYPE_VIEW_FACTORY, G_PARAM_READWRITE)); } @@ -73,6 +73,8 @@ gal_view_new_dialog_class_init (GalViewNewDialogClass *klass) static void gal_view_new_dialog_init (GalViewNewDialog *dialog) { + GtkWidget *content_area; + GtkWidget *parent; GtkWidget *widget; dialog->builder = gtk_builder_new (); @@ -83,15 +85,21 @@ gal_view_new_dialog_init (GalViewNewDialog *dialog) if (!widget) { return; } + g_object_ref (widget); - gtk_container_remove (GTK_CONTAINER (widget->parent), widget); - gtk_box_pack_start (GTK_BOX(GTK_DIALOG(dialog)->vbox), widget, TRUE, TRUE, 0); + + parent = gtk_widget_get_parent (widget); + gtk_container_remove (GTK_CONTAINER (parent), widget); + + content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); + gtk_box_pack_start (GTK_BOX (content_area), widget, TRUE, TRUE, 0); + g_object_unref (widget); - gtk_dialog_add_buttons (GTK_DIALOG (dialog), - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_OK, GTK_RESPONSE_OK, - NULL); + gtk_dialog_add_buttons ( + GTK_DIALOG (dialog), + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); gtk_window_set_resizable (GTK_WINDOW(dialog), TRUE); gtk_window_set_modal (GTK_WINDOW(dialog), TRUE); diff --git a/widgets/misc/ChangeLog b/widgets/misc/ChangeLog deleted file mode 100644 index 276f80062a..0000000000 --- a/widgets/misc/ChangeLog +++ /dev/null @@ -1,3010 +0,0 @@ -2009-04-24 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #572348 - - * e-dateedit.c: - * e-combo-button.c: - * e-dropdown-button.c: - * e-canvas.c: - * e-cell-date-edit.h: - * e-cell-date-edit.c: - Remove deprecated Gtk+ symbols. - -2009-04-13 Johnny Jacob <jjohnny@novell.com> - - ** Fixes #578685 – evolution crashed with SIGSEGV. - - ** Patch by Takao Fujiwara <Takao.Fujiwara@Sun.COM> - - * e-attachment-bar.c (update): Copy string. Avoids SIGSEGV. - -2009-03-09 Chenthill Palanisamy <pchenthill@novell.com> - - * widgets/misc/e-calendar-item.c: Removed the string - marked for translation as it not required and also breaks - the string freeze. - -2009-03-08 Chenthill Palanisamy <pchenthill@novell.com> - - Fixes #342446 - * widgets/misc/e-calendar-item.c: Check whether its - appropriate to use %Id format for digits. Incorporated - the fix from Wang Xin <jedy.wang@sun.com> to build in - solaris. - -2009-02-25 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #559027 - - * e-dateedit.c: (on_date_entry_focus_out): - Do not set date for 'None' value. - -2009-02-12 Milan Crha <mcrha@redhat.com> - - ** Part of fix for bug #404232 - - * e-filter-bar.c: (rule_advanced_response): Emit signal after - search bar text is set, thus the text will not be empty, which - is considered as "no search" these days. - -2009-01-30 Suman Manjunath <msuman@novell.com> - - ** Fix for bug #342446 - - ** Committing on behalf of Behnam Esfahbod - - * e-calendar-item.c (e_calendar_item_draw_day_numbers), - (e_calendar_item_recalc_sizes), (e_calendar_item_position_menu): - Use localized digits in the calendar widget. - -2009-01-11 Matthew Barnes <mbarnes@redhat.com> - - * e-attachment-bar.c (eab_icon_clicked_cb): - * e-url-entry.c (button_clicked_cb): - Call e_show_uri() instead of gnome_url_show(). - -2009-01-10 Matthew Barnes <mbarnes@redhat.com> - - * test-dropdown-button.c: - Remove unneeded #include <libgnomeui/gnome-stock-icons.h>. - -2009-01-10 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #567281 - - * e-cell-date-edit.c: - * e-cell-percent.c: - Remove unneeded #include <libgnomeui/gnome-messagebox.h>. - -2009-01-10 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #567276 - - * test-color.c: - We don't ship this. Remove it. - -2009-01-10 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #567285 - - * e-activity-handler.c: - * e-dropdown-button.c: - Remove unneeded #include <libgnomeui/gnome-popup-menu.h>. - -2008-12-10 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #556303 - - * e-attachment-bar.c: (eab_icon_clicked_cb): - Check whether attachment has a body already before accessing it. - -2008-12-09 Milan Crha <mcrha@redhat.com> - - ** Part of fix for bug #563669 - - * e-send-options.glade: - Use zero GtkSpinButton's PageSize, as Gtk+ requires. - -2008-10-29 Sankar P <psankar@novell.com> - -License Changes - - * e-url-entry.c: - * e-url-entry.h: - -2008-10-21 Sankar P <psankar@novell.com> - - * e-spinner.c (e_spinner_stop), - (e_spinner_new_spinning_small_shown): - * e-spinner.h: - * e-task-widget.c (e_task_widget_construct): - Re-factor spinner usage. - -2008-10-17 Sankar P <psankar@novell.com> - -License Changes - - * e-dateedit.c: - * e-dateedit.h: - -2008-10-10 Sankar P <psankar@novell.com> - -License Changes + code cleanup - - * e-reflow.c (e_reflow_event), (e_reflow_init): - -2008-10-01 Milan Crha <mcrha@redhat.com> - - ** Part of fix for bug #554418 - - * e-attachment.c: (attachment_guess_mime_type): - Allow guessing mime_type based on the file content. - -2008-10-01 Sankar P <psankar@novell.com> - -License Changes - - * e-canvas-background.c: - * e-dateedit.c: - -2008-09-30 Sankar P <psankar@novell.com> - -License Changes - - * e-expander.c: - -2008-09-29 Milan Crha <mcrha@redhat.com> - - ** Part of fix for bug #530716 - - * e-activity-handler.c: (error_cleanup): GtkDialog errors close - by the response message, not as other widgets, because creator - of the dialog waits for that signal and takes care of the widget. - -2008-09-29 Sankar P <psankar@novell.com> - -License Changes - - * e-colors.c: - -2008-09-24 Sankar P <psankar@novell.com> - -License Changes - - * e-canvas.c: - * e-combo-button.c: - -2008-09-19 Sankar P <psankar@novell.com> - -License Changes - - * e-attachment-bar.c: - * e-search-bar.c: - * e-search-bar.h: - * e-task-widget.c: - -2008-09-16 Sankar P <psankar@novell.com> - -License Changes - - * e-calendar.c: - * e-cell-percent.c: - * e-unicode.h: - -2008-09-12 Sankar P <psankar@novell.com> - -License Changes - - * e-online-button.c: - * e-online-button.h: - -2008-09-06 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #549968 - - * e-attachment-bar.c (e_attachment_bar_bonobo_ui_populate_with): - Use the same mnemonic for "Recent Documents" as composer. - -2008-09-06 Michael Meeks <michael.meeks@novell.com> - - * e-spinner.c: correct licensing cockup; apologies. - * e-icon-entry.h: ditto. - -2008-09-04 Sankar P <psankar@novell.com> - -License Changes - - * e-calendar-item.c: - * e-charset-picker.c: - * e-config-page.c: - * e-dropdown-button.c: - * e-multi-config-dialog.c: - * e-multi-config-dialog.h: - * test-multi-config-dialog.c: - -2008-09-02 Sankar P <psankar@novell.com> - -License Changes - - * e-activity-handler.c: - * e-activity-handler.h: - * e-attachment-bar.h: - * e-attachment.h: - * e-calendar.h: - * e-canvas-background.h: - * e-canvas-utils.h: - * e-canvas-vbox.c: - * e-canvas-vbox.h: - * e-canvas.h: - * e-cell-date-edit.c: - * e-cell-renderer-combo.c: - * e-colors.h: - * e-combo-button.h: - * e-combo-cell-editable.c: - * e-config-page.h: - * e-cursors.c: - * e-dropdown-button.h: - * e-expander.h: - * e-filter-bar.c: - * e-filter-bar.h: - * e-gui-utils.c: - * e-gui-utils.h: - * e-image-chooser.c: - * e-info-label.c: - * e-map.c: - * e-pilot-settings.c: - * e-popup-menu.c: - * e-popup-menu.h: - * e-printable.c: - * e-reflow.h: - * e-selection-model.c: - * e-send-options.c: - * e-task-bar.c: - * e-task-bar.h: - * e-task-widget.h: - * e-unicode.c: - * test-calendar.c: - * test-dateedit.c: - * test-dropdown-button.c: - -2008-09-01 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes bug #550334 - - * e-activity-handler.c: - Use standard icon names for warning and information. - -2008-08-30 Matthew Barnes <mbarnes@redhat.com> - - * e-info-label.c (e_info_label_set_info): - Fix vertical alignment of labels. - -2008-08-27 Sankar P <psankar@novell.com> - -License Changes - - * e-account-combo-box.c: - * e-account-combo-box.h: - * e-attachment.c: - * e-calendar-item.h: - * e-canvas-utils.c: - * e-cell-date-edit.h: - * e-cell-percent.h: - * e-cell-renderer-combo.h: - * e-charset-picker.h: - * e-combo-cell-editable.h: - * e-cursors.h: - * e-icon-entry.h: - * e-image-chooser.h: - * e-info-label.h: - * e-map.h: - * e-pilot-settings.h: - * e-printable.h: - * e-reflow-model.c: - * e-reflow-model.h: - * e-selection-model-array.c: - * e-selection-model-array.h: - * e-selection-model-simple.c: - * e-selection-model-simple.h: - * e-selection-model.h: - * e-send-options.h: - * e-signature-combo-box.c: - * e-signature-combo-box.h: - * e-spinner.c: - * e-spinner.h: - * test-charset-picker.c: - * test-color.c: - * test-error.c: - * test-info-label.c: - -2008-08-14 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #547411 - - * e-online-button.c (e_online_button_set_online): - The button icons are themed now but still oblong. - Load the icons by filename so GTK+ doesn't scale them. - -2008-08-14 Matthew Barnes <mbarnes@redhat.com> - - * e-multi-config-dialog.c: - * e-send-options.c: - Use e_display_help() for displaying help. - -2008-08-11 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #546892 - - * e-combo-button.c: - * e-info-label.c: - * e-url-entry.c: - * e-task-widget.c: - Prefer gtk_image_new_from_stock() over e_icon_factory_get_image(). - - * e-activity-handler.c: - * e-task-widget.c: - Purge the GdkPixbuf arguments from the API. We've been ignoring - them since the spinner icon was added. - -2008-07-23 Milan Crha <mcrha@redhat.com> - - ** Part of fix for bug #543943 - - * e-activity-handler.c: (e_activity_handler_operation_set_error): - * e-task-bar.c: (e_task_bar_class_init), (impl_finalize): - Leak fix. - -2008-07-20 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #542587 - - * e-online-button.c: - * e-online-button.h: - New widget implements the online/offline button used in the main - window. The button just maintains an "online" flag and displays - the appropriate button image for the flag. - -2008-17-14 Paolo Borelli <pborelli@katamail.com> - - ** Fix for bug #542889 - - * e-search-bar.h: - * widgets/misc/e-search-bar.c: - * widgets/misc/e-task-widget.c: - Port to the new gtk tooltip api. - -2008-07-12 Paolo Borelli <pborelli@katamail.com> - - ** Fix for bug #542631 - - * e-attachment-bar.c: use g_format_size_for_display instead of cut and - pasted code. - -2008-07-07 Suman Manjunath <msuman@novell.com> - - ** Fix for bug #370731 (bugzilla.novell.com) - - * e-calendar-item.c (e_calendar_item_update), - (e_calendar_item_draw_month), (e_calendar_item_draw_day_numbers), - (e_calendar_item_recalc_sizes): - * e-calendar-item.h: - Use MAX (<max width of day-names>, (2 * <max width of a digit>)) - to determine the minimal size for each cell. This prevents the numbers - and day-names from getting fuzzy when using large font-sizes. - -2008-06-30 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #519536 - - * e-activity-handler.c: (cancel_wrapper): Handle freeing of data - safely. - -2008-06-18 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #532597 - - * e-selection-model-array.c: (e_selection_model_array_delete_rows): - Do not leave selected more than one item if somebody else took care - or reposition of the cursor row before the delete. - -2008-06-10 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #340683 - - * e-attachment-bar.c: (get_system_thumbnail), (scale_pixbuf), - (e_attachment_bar_create_attachment_cache), (update): - Allow creating thumbnails of non-pictures with a gnome's thumbnailer. - -2008-06-03 Kjartan Maraas <kmaraas@gnome.org> - - * e-cell-date-edit.c: (e_cell_date_edit_init): - * e-dateedit.c: (create_children): - * e-multi-config-dialog.c: (e_multi_config_dialog_init): - * e-unicode.h: - * test-calendar.c: (main): - * test-dateedit.c: (main): - * test-info-label.c: (main): - Migrate from gtk_window_set_policy() to gtk_window_set_resizable() - and clean up a bunch of coding style issues along the way. - -2008-05-28 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #532597 - - * e-selection-model-array.h: (struct ESelectionModelArray): - * e-selection-model-array.c: (es_row_model_to_sorted), - (es_row_sorted_to_model), (e_selection_model_array_delete_rows), - (e_selection_model_array_insert_rows), (esma_invert_selection), - (e_selection_model_array_move_row), (esma_clear), (esma_select_all), - (esma_change_cursor), (esma_set_selection_end), - (e_selection_model_array_init): Work with sorted cursor row to keep - right position after insert/delete/move row(s). - -2008-05-22 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #534360 - - * e-activity-handler.h: - * e-attachment-bar.h: - * e-attachment.c: - * e-calendar-item.c: - * e-calendar-item.h: - * e-calendar.h: - * e-canvas-background.h: - * e-canvas-vbox.h: - * e-canvas.c: - * e-canvas.h: - * e-cell-date-edit.c: - * e-cell-date-edit.h: - * e-combo-button.c: - * e-combo-button.h: - * e-config-page.h: - * e-dateedit.c: - * e-dateedit.h: - * e-dropdown-button.c: - * e-dropdown-button.h: - * e-filter-bar.c: - * e-gui-utils.c: - * e-gui-utils.h: - * e-image-chooser.c: - * e-map.c: - * e-map.h: - * e-multi-config-dialog.h: - * e-popup-menu.h: - * e-printable.h: - * e-reflow.h: - * e-send-options.h: - * e-task-bar.h: - * e-task-widget.h: - * e-url-entry.c: - * e-url-entry.h: - Migrate from deprecated GtkObject symbols to GObject equivalents. - -2008-05-14 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes bug #311042, Patch by Milan Crha - - * e-info-label.c: (el_size_allocate), (el_class_init), - (e_info_label_set_info), (get_text_full_width): Allocate size for - location and info labels differently, than GtkHBox does, to be able - to minimize it as much as possible and do not waste empty space. - -2008-05-06 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #424744 - - * e-attachment-bar.c: - * e-unicode.c: - Use camel-iconv.c instead of e-iconv.h (now deprecated). - -2008-04-30 Milan Crha <mcrha@redhat.com> - - ** Part of fix for bug #528288 - - * e-filter-bar.c: (get_property): Do not return any query - with empty text from search bar. - -2008-04-25 Danny Baumann <dannybaumann@web.de> - - ** Fix for bug #529893 - - * e-dateedit.c (create_children): - * e-combo-cell-editable.c (build_popup): - * e-cell-date-edit.c (e_cell_date_edit_init): - Properly set type hint on popup windows. - -2008-04-22 Matthew Barnes <mbarnes@Redhat.com> - - ** Fixes part of bug #529641 - - * e-dateedit.c (create_children): - * e-map.c (e_map_new): - Prefer the term "drop-down combination box" to "combo box" per the - GNOME Documentation Style Guide. - -2008-04-20 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #334444 - - * e-attachment-bar.c: (e_attachment_bar_add_attachment_silent), - (e_attachment_bar_refresh): - * e-attachment-bar.h: - -2008-04-17 Milan Crha <mcrha@redhat.com> - - ** Part of fix for bug #526739 - - * e-attachment.h: (struct _EAttachment): - * e-attachment.c: (finalise), (init), (attachment_guess_mime_type), - (e_attachment_new), (struct DownloadInfo), (download_info_free), - (data_ready_cb), (download_to_local_path), - (e_attachment_new_remote_file): - Use gio instead of gnome-vfs to download remote files. - * e-image-chooser.c: (image_drag_data_received_cb): - Use new util function to read file. - * e-attachment-bar.c: (size_to_string): Stolen from gnome-vfs. - -2008-04-14 Matthew Barnes <mbarnes@redhat.com> - - * e-attachment-bar.c - (e_attachment_bar_bonobo_ui_populate_with_recent): - Fix a compiler warning. - -2008-04-11 Suman Manjunath <msuman@novell.com> - - ** Fix for bug #517134 - - * e-attachment-bar.c: (destroy), (init): Related changes. - (e_attachment_bar_bonobo_ui_populate_with_recent): New API to populate - a bonoboUI menu with "Recent Documents". - (action_recent_cb), (e_attachment_bar_recent_action_new): New API to - obtain a new, pre-configured GtkRecentAction (which can be used as a - "Recent Documents" menu) - * e-attachment-bar.h: APIs' signatures - -2008-04-02 Matthew Barnes <mbarnes@redhat.com> - - * Makefile.am: - Add EVOLUTION_MAIL_LIBS. - - * e-account-combo-box.c: - * e-account-combo-box.h: - New function e_account_combo_box_get_account_list(). - Emit a "refreshed" signal when the EAccountList changes. - Add an internal reverse-lookup index. - - * e-charset-picker.c (e_charser_add_radio_actions): - New function adds radio actions to an action group. - Will eventually replace e_charset_picker_bonobo_ui_populate(). - - * e-signature-combo-box.c: - * e-signature-combo-box.h: - New function e_signature_combo_box_get_signature_list(). - -2008-03-27 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #507526 - - * e-send-options.glade: Add translators' comment. - -2008-03-14 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #482148 - - * e-search-bar.c: (entry_activated_cb), (entry_changed_cb), - (search_now_verb_cb), (clear_verb_cb), (clear_button_clicked_cb): - Allow clear search when some search is active and text is empty. - -2008-03-13 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #460204 - - * e-attachment.c: (attachment_guess_mime_type): - Check whether found mime type is valid before returning it. - My thanks come to Effenberg whom helped me to debug it. - -2008-03-13 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #512543 - - * e-calendar-item.c: Get rid of ENABLE_CAIRO define. - -2008-02-18 Milan Crha <mcrha@redhat.com> - - ** Part of fix for bug #515744 - - * e-cursors.c: (e_cursors_init): - * e-calendar-item.c: (e_calendar_item_draw_month): - Memory leak fix. - -2008-02-18 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bnc #178778 - - * e-calendar-item.c: (e_calendar_item_destroy): - -2008-02-07 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #249501 - - * e-attachment.c: (attachment_guess_mime_type): - gnome_vfs_get_file_info expects URI, - thus if file_name contains '%' it failed. - -2007-01-25 Johnny Jacob <jjohnny@novell.com> - - * e-filter-bar.h : Added a cameloperation cancel field for vfolder - based search. - -2008-01-24 Tor Lillqvist <tml@novell.com> - - * Makefile.am (libemiscwidgets_la_LIBADD): Fix typo: - s/EVOLUTON_MAIL_LIBS/EVOLUTION_MAIL_LIBS/. No need to use - CAMEL_LIBS as EVOLUTION_MAIL_LIBS already covers that. - -2008-01-24 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #402487 - - * e-search-bar.c: (search_now_verb_cb), (scopeoption_changed_cb): - Memory leak fix. - -2008-01-24 Srinivasa Ragavan <sragavan@novell.com> - - * e-multi-config-dialog.c: (canvas_realize), - (e_multi_config_dialog_add_page): Enable for Cairofication of the - settings dialogs's etable. - -2008-01-11 Jeffrey Stedfast <fejj@novell.com> - - Patch by Jean-Christophe BEGUE to fix bug #329692. - - * e-attachment.c (e_attachment_new_from_mime_part): Get the - content size of the MIME part by calling the new - camel_mime_part_get_content_size() function. - -2008-01-11 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #488213 - - * e-spinner.c: (scale_to_size): - * e-image-chooser.c: (set_image_from_data): - * e-attachment-bar.c: (e_attachment_bar_create_attachment_cache), - (update): - Use global function e_icon_factory_pixbuf_scale for scaling pixbufs. - -2008-01-10 Srinivasa Ragavan <sragavan@novell.com> - - ** Add better support to show info/errors - - * e-activity-handler.c: (setup_task_bar), (cancel_wrapper), - (handle_error), (error_cleanup), (e_activity_handler_make_error), - (e_activity_handler_operation_set_error): - * e-activity-handler.h: - * e-task-widget.c: (e_task_widget_update_image): - -2008-01-07 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #339813 - - * e-dateedit.h: (e_date_edit_get_twodigit_year_can_future), - (e_date_edit_set_twodigit_year_can_future): - Added new option for component. - * e-dateedit.c: (e_date_edit_get_twodigit_year_can_future), - (e_date_edit_set_twodigit_year_can_future), - (struct _EDateEditPrivate::twodigit_year_can_future), - (e_date_edit_init), (e_date_edit_parse_date): - Implementing new option for component. - * e-dateedit.c: (on_date_entry_focus_out): - Always repaint value on focus out. - * e-dateedit.c: (e_date_edit_update_date_entry): - Forced to always show 4-digit year. - -2008-01-04 Milan Crha <mcrha@redhat.com> - - * Part of bug #504480 - * e-task-widget.c: (e_task_widget_construct): - Possible leak fix. - * e-task-widget.c: (e_task_widget_update_image): - Function prototype changed and using parameter stock now. - -2008-01-04 Matthew Barnes <mbarnes@redhat.com> - - ** Fix for bug #504480 - - * e-task-bar.c: (e_task_bar_init): Increases the height - of the ETaskBar to eliminate the constant resizing. - -2007-12-14 Milan Crha <mcrha@redhat.com> - - ** Part of fix for bug #211353 - - * e-search-bar.c: (e_search_bar_get_viewitem_id): - Return -1 if no viewmenu is setup yet. - -2007-12-17 Srinivasa Ragavan <sragavan@novell.com> - - ** Revamped Activity handler and task bar/widget for non-intrusive - error reporting - - * e-activity-handler.c: (activity_info_new), (activity_info_free), - (task_widget_new_from_activity_info), (setup_task_bar), - (e_activity_handler_init), - (e_activity_handler_set_error_flush_time), - (e_activity_handler_set_logger), (cancel_wrapper), - (e_activity_handler_cancelable_operation_started), - (e_activity_handler_operation_started), (handle_error), - (error_cleanup), (e_activity_handler_make_error), - (e_activity_handler_operation_set_error), - (e_activity_handler_operation_progressing), - (e_activity_handler_operation_finished): - * e-activity-handler.h: - * e-task-bar.c: (e_task_bar_prepend_task), - (e_task_bar_remove_task_from_id), (e_task_bar_remove_task), - (e_task_bar_get_task_widget_from_id): - * e-task-bar.h: - * e-task-widget.c: (e_task_widget_init), (button_press_event_cb), - (prepare_popup), (e_task_widget_construct), - (e_task_widget_new_with_cancel), (e_task_widget_new), - (e_task_widget_update_image): - * e-task-widget.h: - -2007-12-05 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #392747 (extra cleanup work) - - * e-calendar-item.c (e_calendar_item_show_popup_menu): - Call e_get_month_name() instead of e_utf8_strftime(). - -2007-12-03 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #392747 - - * e-calendar-item.h (struct _ECalendarItem): - * e-calendar-item.c (e_calendar_item_init), (e_calendar_item_draw): - Lose the local weekday name cache and just call e_get_weekday_name(). - -2007-12-01 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #495123 - - * Makefile.am: - Add e-signature-combo-box.[ch]. - - * e-account-combo-box.c (account_combo_box_refresh_cb): - Make sure the EAccount isn't lost while swapping models. - - * e-signature-combo-box.c: - * e-signature-combo-box.h: - New widget renders an ESignatureList as a combo box. Also listens - for changes to the ESignatureList and updates itself accordingly. - -2007-11-27 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #495123 - - * Makefile.am: - Add e-account-combo-box.[ch]. - - * e-account-combo-box.c: - * e-account-combo-box.h: - New widget renders an EAccountList as a combo box. Also listens - for changes to the EAccountList and updates itself accordingly. - -2007-11-05 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #231166 - - * e-dateedit.c: (create_children), (e_date_edit_check_time_changed), - (rebuild_time_popup), (on_date_edit_time_selected), - (on_time_entry_key_press), (e_date_edit_update_time_entry), - (e_date_edit_grab_focus), (e_date_edit_update_time_combo_state): - Migrate from gtk_combo to gtk_com_box_entry for time_combo. - -2007-11-05 Milan Crha <mcrha@redhat.com> - - ** Part of fix for bug #351932 - - * e-dateedit.h: (e_date_edit_have_time): - * e-dateedit.c: (e_date_edit_have_time): Extend API to be able - to check if time is set independently of date part. - -2007-10-29 Kjartan Maraas <kmaraas@gnome.org> - - * e-activity-handler.c: (e_activity_handler_new): - * e-canvas.c: (e_canvas_new), (emit_event), (pick_current_item), - (e_canvas_button): - * e-combo-button.c: (menu_detacher), (impl_destroy), - (impl_button_press_event): - * e-combo-cell-editable.c: (e_combo_cell_editable_new): - * e-expander.c: (e_expander_init), (e_expander_size_request), - (e_expander_size_allocate), (e_expander_button_press), - (e_expander_focus): - * e-gui-utils.c: (e_popup_menu), - (e_container_change_tab_order_callback): - * e-image-chooser.c: (image_drag_data_received_cb): - * e-info-label.c: (e_info_label_new): - * e-map.c: (e_map_key_press), (e_map_new), (update_render_pixbuf), - (blowup_window_area), (zoom_do), (set_scroll_area): - * e-pilot-settings.c: (e_pilot_settings_get_source): - * e-printable.c: (e_printable_will_fit): - * e-reflow.c: (items_inserted), (model_changed), (set_empty), - (e_reflow_event), (e_reflow_draw): - * e-search-bar.c: (set_option): - * e-search-bar.h: - * e-unicode.c: (e_xml_get_translated_utf8_string_prop_by_name): - - Warning fixes: - - NULL vs 0 vs FALSE - - ANSIfication of function declarations. - - Use non-deprecated GSignal functions - - Don't mix different enum types - -2007-10-31 Michael Monreal <mmonreal@svn.gnome.org> - - ** Fix for bug #483785 - - * e-url-entry.c: (init): - Use go-jump icon instead of stock_connect-to-url - to get rid of deprecated icons from gnome-icon-theme. - -2007-10-26 Tobias Mueller <tobiasmue@svn.gnome.org> - - ** Workaround for bug #395272 - - * e-search-bar.c: - Minor code cleanups and value checking - -2007-10-22 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #417999 - - * e-pilot-settings.c: - Use ESourceComboBox instead of ESourceOptionMenu (deprecated). - -2007-10-09 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #437579 - - * e-cursors.c: - * e-spinner.c: - * e-unicode.c: - Fix various compiler warnings. Patch from Milan Crha. - -2007-10-01 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #413420 - - * e-attachment.c: (file_ext_is): New helper function. - * e-attachment.c: (attachment_guess_mime_type): Change mimetype - if knows the extension and if the content of file is valid. - -2007-09-26 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #423401 - - * e-attachment.h: (e_attachment_new_remote_file): - * e-attachment.c: (struct DownloadInfo), (async_progress_update_cb), - (e_attachment_new_remote_file): - * e-attachment-bar.c: (e_attachment_bar_attach_remote_file): - Better error handling when attaching remote file. - -2007-09-26 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #351333 - - * e-search-bar.c: (paint_search_text), (option_activated_cb): - Added more descriptive hint over search bar's option button. - -2007-09-12 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #476040 - - * e-attachment-bar.c: - Use "mail-attachment" icon for unknown attachment types. - -2007-08-31 Srinivasa Ragavan <sragavan@novell.com> - - ** Move away from g_assert to g_return* critical warnings to debug - them better. - - * e-canvas.c: (e_canvas_button): - * e-cursors.c: (create_bitmap_and_mask_from_xpm), (e_cursors_init): - * e-expander.c: (e_expander_focus): - * e-search-bar.c: (clear_button_state_changed), (search_verb_cb): - * e-selection-model.c: (e_selection_model_do_something), - (e_selection_model_select_as_key_press): - * e-spinner.c: (e_spinner_images_load), (e_spinner_expose): - * e-task-bar.c: (reduce_displayed_activities_per_component): - -2007-08-16 Milan Crha <mcrha@redhat.com> - - ** Part of fix for bug #350539 - - * e-attachment.c: (e_attachment_edit): - * e-attachment-bar.c: (e_attachment_bar_create_attachment_cache), - (update), (attach_to_multipart): - Ensures non-NULL part. - -2007-08-06 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #429234 - - * e-attachment-bar.c: (destroy): Remove the weak ref while the purpose - is achieved. - -2007-08-03 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #335566 - - * e-attachment-bar.c: (e_attachment_bar_create_attachment_cache), - (update): When scaling image, ensures nonzero width or height. - -2007-08-03 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #451599 - - * e-attachment.c: (async_progress_update_cb): Timing of setting the - attachment is downloaded has to be after creating the attachment. - -2007-08-03 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #331729 - - * e-selection-model.c: (move_selection): Don't call - e_sorter_model_to_sorted when there is no selected row. - -2007-07-27 Matthew Barnes <mbarnes@redhat.com> - - * Makefile.am: - Rename EXTRA_GNOME_CFLAGS to GNOME_PLATFORM_CFLAGS. - Similarly for EXTRA_GNOME_LIBS. - -2007-07-09 Chenthill Palanisamy <pchenthill@novell.com> - - Fixes #387844 - * e-dateedit.c: Increase the buffer size. - - Committing on behalf of Makuchaku <mayank.gnu@gmail.com> - -2007-06-18 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #448223 from Gilles Dartiguelongue - - * e-search-bar.c: (set_option), (e_search_bar_set_viewoption), - (e_search_bar_set_scopeoption): - -2007-06-15 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #257118 - - * e-search-bar.c: (set_clear_menuitem_sensitive), - (clear_button_state_changed): Added two helper functions. - * e-search-bar.c: (setup_standard_verbs), (setup_bonobo_menus): - Using these helper functions, clear menu item is synchronized - by changed state of clear_button of search bar. - -2007-06-15 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #263207 - - * e-filter-bar.c: (dialog_rule_changed): New callback - for disabling OK button in dialog when rule isn't valid. - * e-filter-bar.c: (do_advanced), (save_search_dialog): - Connecting dialog_rule_changed on "changed" signal of - actual rule. - -2007-06-15 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #447727 - - * e-info-label.c: - * e-multi-config-dialog.c: - * e-task-bar.c: - Use ellipsized GtkLabels instead of EClippedLabels. - - * e-clipped-label.[ch]: - Remove these files. GTK+ provides this functionality now. - - * Makefile.am: - Remove e-clipped-label.[ch]. - -2007-06-04 Chenthill Palanisamy <pchenthill@novell.com> - - * e-filter-bar.[c]: (e_filter_bar_new), (e_filter_bar_new_construct): - Added a construct function. - - Committing on behalf of Keshav Upadhayaya <ukeshav@novell.com> - -2007-06-03 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #386503 from Matthew Barnes - - * e-multi-config-dialog.c: (impl_response): - * e-send-options.c: (e_send_options_cb): - -2007-06-03 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #416031 from Martin Jürgens - - * e-charset-picker.c: - -2007-06-02 Gilles Dartiguelongue <dartigug@esiee.fr> - - ** Fixes part of bug #441014 - - * e-dateedit.c: (rebuild_time_popup): - * e-filter-bar.c: (get_property), (xml_get_prop_int), - (set_property): - * e-image-chooser.c: (set_image_from_data), - (image_drag_data_received_cb): - * e-task-widget.c: (e_task_widget_construct): - * e-unicode.c: (e_utf8_strstrcasedecomp), (e_utf8_strstrcase), - (e_utf8_from_iconv_string_sized), (e_utf8_to_iconv_string_sized), - (e_utf8_xml1_decode), (e_utf8_xml1_encode), - (e_xml_get_translated_utf8_string_prop_by_name): various - compilation cleanups. - -+2007-05-25 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #441010 - - * gal-combo-box.c: - * gal-combo-box.h: - * gal-combo-text.c: - * gal-combo-text.h: - Bye bye old widgets, go back to Motif! - - * Makefile.am: - Remove the aforementioned files. - -2007-05-21 Wang Xin <jedy.wang@sun.com> - - * e-dateedit.c: Fixes #439049. - -2006-02-28 Andre Klapper <a9016009@gmx.de> - - * e-clipped-label.c: add translator comments for a string. - Fixes bug #325118. - -2007-05-03 Matthew Barnes <mbarnes@redhat.com> - - * e-attachment-bar.c (e_attachment_bar_remove_selected): - Emit "changed" signal. (#434981) - -2007-04-24 Matthew Barnes <mbarnes@redhat.com> - - * e-task-widget.c: #include "e-spinner.h" (#433005) - Patch from Daniel Gryniewicz. - -2007-04-20 Srinivasa Ragavan <sragavan@novell.com> - - * e-task-widget.c: (e_task_widget_construct): Show spinner instead of - the component icon. - -2007-04-19 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #429422 - - * e-combo-cell-editable.c (ecce_init): - * e-dateedit.c (e_date_edit_set_editable): - Use gtk_editable_set_editable() instead of gtk_entry_set_editable(). - - * e-dateedit.c (create_children): - * e-cell-date-edit.c (e_cell_date_edit_init): - Use gtk_box_set_spacing() instead of gtk_button_box_set_spacing(). - Remove gtk_button_box_set_child_ipadding() and - gtk_button_box_set_child_size(). Use style properties instead. - - * e-clipped-label.c (e_clipped_label_new): - * e-combo-button.c (e_combo_button_new): - * e-config-page.c (e_config_page_init): - * e-multi-config-dialog.c (e_multi_config_dialog_init): - * e-dropdown-button.c (e_dropdown_button_new): - * e-cell-date-edit.c (e_cell_date_edit_new): - * e-filter-bar.c (e_filter_bar_new): - * e-url-entry.c (mnemonic_activate): - * e-map.c (e_map_new): - * e-search-bar.c (e_search_bar_new): - * e-calendar.c (e_calendar_new): - Use g_object_new() instead of gtk_type_new(). - - * test-calendar.c (main): - * test-info-label.c (main): - * test-multi-config-dialog.c (main): - * test-dropdown-button.c (main): - Use gnome_program_init() instead of gnome_init(). - - * e-combo-button.c (impl_released): - Replace gtk_widget_draw() with GTK's 2-line implementation. - - * e-multi-config-dialog.c (set_page_timeout_callback), - (e_multi_config_dialog_show_page): - Use gtk_notebook_set_current_page() instead of - gtk_notebook_set_page(). - - * e-dropdown-button.c (impl_destroy): - Use g_object_unref() instead of gtk_accel_group_unref(). - - * e-cell-percent.c (show_percent_warning): - * e-cell-date-edit.c (e_cell_date_edit_show_time_invalid_warning): - Use GtkMessageDialog instead of GnomeMessageDialog. - - * e-cell-date-edit.c (e_cell_date_edit_select_matching_time), - (e_cell_date_edit_on_time_selected): - Use gtk_label_get_text() instead of gtk_label_get(). - - * e-filter-bar.c (class_init): - * gal-combo-box.c (gal_combo_box_init), (gtk_combo_popup_tear_off), - (gtk_combo_popup_reparent): - * e-map.c (e_map_set_scroll_adjustments): - * e-task-widget.c (e_task_widget_construct): - Use g_object_ref_sink() instead of gtk_object_sink(). - - * gal-combo-box.c (gtk_combo_tearoff_bg_copy), - (gtk_combo_popup_reparent): - * gal-combo-text.c (gal_combo_text_construct): - Use gtk_widget_set_size_request() instead of gtk_widget_set_usize(). - - * test-dropdown-button.c: - Use GTK_STOCK_* constants instead of GNOME_STOCK_*. - - * e-calendar.c (e_calendar_init): - Use g_signal_connect_swapped() instead of gtk_signal_connect_object(). - - * e-calendar.c (e_calendar_destroy), (e_calendar_stop_auto_move): - Use g_source_remove() instead of gtk_timeout_remove(). - -2007-04-11 Srinivasa Ragavan <sragavan@novell.com> - - ** Added spinner widgets. - - * Makefile.am: Add them to the build - * e-spinner.[ch]: Spinner widget for progress indiation. - -2007-04-09 Jeff Cai<jeff.cai@sun.com> - - * e-dateedit.c: (rebuild_time_popup): - Use e_time_format_time to ensure evolution and evolution- - data-server use same translations. - Fix #380843. - -2007-03-29 Matthew Barnes <mbarnes@redhat.com> - - * e-icon-entry.c: - Fix "incompatible pointer type" warnings (#360619). - -2007-03-27 Matthew Barnes <mbarnes@redhat.com> - - * e-filter-bar.c (menubar_activated): Fix build breakage due to - poorly placed preprocessor condition. - -2007-03-27 Matthew Barnes <mbarnes@redhat.com> - - * e-filter-bar.c: - * e-multi-config-dialog.c: - Don't mix declarations and code (#405495). - -2007-03-20 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #419524 - - * Include <glib/gi18n.h> instead of <libgnome/gnome-i18n.h>. - -2007-03-16 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #360240 - - * e-calendar-item.c (e_calendar_item_unrealize): - * e-icon-entry.c (e_icon_entry_pack_widget): - Remove unused variables. - -2007-02-12 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #368983 from Ebby Wiselyn - - * e-filter-bar.c: (menubar_activated): - -2007-02-12 Srinivasa Ragavan <sragavan@novell.com> - - ** Print migration updates from Ebby Wiselyn - - * e-printable.c: (e_printable_print_page), (e_printable_height), - (e_printable_will_fit): - * e-printable.h: - -2007-01-08 Harish Krishnaswamy <kharish@novell.com> - - * e-filter-bar.c: (build_items): Initialize ESearchBarItem - type to ESB_ITEMTYPE_RADIO. Fixes #382860. - -2006-12-04 Matthew Barnes <mbarnes@redhat.com> - - Fixes bug #357970 - - * e-calendar-item.c: - * e-canvas-background.c: - * e-filter-bar.c: - * e-search-bar.c: - * gal-combo-box.c: - Don't call deprecated GLib / GDK functions. - - * e-colors.c (e_color_alloc): Remove unused function. - -2006-12-04 Harish Krishnaswamy <kharish@novell.com> - - * e-filter-bar.c: (build_items): Fix read of uninitialized - ESearchBarItems. Partially fixes #381642. - -2006-11-21 Harish Krishnaswamy <kharish@novell.com> - - * e-filter-bar.c: (e_filter_bar_new): type should be - initialized to 0, not NULL. - -2006-11-03 Parthasarathi Susarla <ajaysusarla@gmail.com> - - ** Fixes bug #357492 - * e-attachment-bar.c: (e_attachment_bar_remove_selected): - put the attachment pointes into a temporary array. Free the - pointers and the array after going thru the entire list - This prevents a crash and also fixes the issue of only few - attachments getting deleted. - -2006-10-11 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #360237 & bug #359236 - - * e-filter-bar.c: (rule_advanced_response), (set_property): Fix for a - crash while saving empty search. - -2006-10-03 Francisco Javier F. Serrador <serrador@tecknolabs.com> - - * e-dateedit.c: Make two strings translatable. - -2006-10-02 Harish Krishnaswamy <kharish@novell.com> - - * Revert the previous patch as per rel-team - disapproval on the commit. - -2006-08-23 Ushveen kaur <kushveen@novell.com> - - ** Fix for bug #329694 - - * e-charset-picker.c : Translator comment added for "logical". - -2006-09-28 Ushveen Kaur <kushveen@novell.com> - - ** Fixes bug #335814 - - * e-charset-picker.c: Name and subclass changed for - E_CHARSET_HEBREW from "ISO-8859-8","Visual" to "ISO-8859-8-i","Logical". - -2006-09-29 Srinivasa Ragavan <sragavan@novell.com> - - ** Fixes a lot of search issues. - - * e-filter-bar.c: (rule_advanced_response), (do_advanced), - (menubar_activated), (option_changed), (free_items), - (get_property), (set_property): - * e-search-bar.c: (clear_search), (clear_verb_cb), - (paint_search_text), (e_search_bar_paint), (viewitem_activated_cb), - (scopeitem_activated_cb), (option_activated_cb), - (clear_button_clicked_cb), (scopeoption_changed_cb), (set_option), - (init), (e_search_bar_construct), (e_search_bar_set_viewitem_id), - (e_search_bar_set_item_id), (e_search_bar_set_item_menu), - (e_search_bar_set_search_scope), (e_search_bar_set_ids): - * e-search-bar.h: - -2006-09-29 Srinivasa Ragavan <sragavan@novell.com> - - ** Fixes bug #341474 patch from Ushveen - - * e-attachment-bar.c: (size_to_string): Use - gnome_vfs_format_file_size_for_display instead of manual calculations. - -2006-09-12 Ushveen Kaur <kushveen@novell.com> - - ** Fix for bug #325614 - - * e-task-widget.c (e_task_widget_update) : Translator comment - added. - -2006-09-07 Hiroyuki Ikezoe <poincare@ikezoe.net> - - ** Fixes bug #341099. - * e-canvas-item.c: (e_canvas_unrealize): - Set second argument of gtk_im_context_set_client_window to NULL. - -2006-08-28 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #353059 - - * e-search-bar.c: (e_search_bar_set_scopeoption): Added translatable - options to search strings, which are already translated. - -2006-08-23 Behnam Esfahbod <behnam@zwnj.org> - - * e-calendar.c: - * e-calendar-item.c: - flip month view in RTL locale - fixes bug 342443. - committed by Andre Klapper - -2006-08-23 Matthew Barnes <mbarnes@redhat.com> - - * e-multi-config-dialog.c: - improve GError initialization code - fixes bug 352423. - committed by Andre Klapper - -2006-08-07 Ushveen Kaur <kushveen@novell.com> - - ** Fix for bug #347238 - - * e-attachment-bar.c: Changed the file permission changed to 644 - while saving the attachment. - -2006-08-21 Li Yuan <li.yuan@sun.com> - - ** Fixes bug #348753 - - * e-search-bar.c: (entry_key_press_cb), (e_search_bar_construct): - Add accelerate key to the search bar. <ALT ARROW_DOWN> open option window. - -2006-08-21 Srinivasa Ragavan <sragavan@novell.com> - - * e-filter-bar.c: (rule_editor_destroyed), - (rule_advanced_response), (do_advanced), (save_search_dialog), - (menubar_activated), (option_changed), (set_property): - * e-search-bar.[ch]: (clear_search), (clear_verb_cb), - (paint_search_text), (entry_focus_out_cb), (entry_changed_cb), - (scopeoption_changed_cb), (set_option), (class_init), (init), - (e_search_bar_construct), (e_search_bar_set_scopeoption), - (e_search_bar_set_item_id), (e_search_bar_get_text), - (e_search_bar_scope_enable): Fixes a lot of search issue. - -2006-08-21 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug 347430 - - * e-cell-date-edit.c: (e_cell_date_edit_update_cell): commit the text - on updation of cell. - -2006-08-20 Srinivasa Ragavan <sragavan@novell.com> - - ** Patch from Pavel Roskin. - - * e-icon-entry.c: Added missing headers. - -2006-08-18 Srinivasa Ragavan <sragavan@novell.com> - - * e-filter-bar.c: (rule_editor_destroyed), - (rule_advanced_response), (do_advanced), (save_search_dialog), - (menubar_activated), (option_changed), (set_property): - * e-search-bar.c: (clear_search), (clear_verb_cb), - (paint_search_text), (entry_focus_out_cb), (entry_changed_cb), - (scopeoption_changed_cb), (set_option), (class_init), (init), - (e_search_bar_construct), (e_search_bar_set_scopeoption), - (e_search_bar_set_item_id), (e_search_bar_get_text), - (e_search_bar_scope_enable): - * e-search-bar.h: - -2006-08-10 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #341482 - - * e-attachment-bar.c: (eab_drag_data_get), (eab_icon_clicked_cb): - * e-attachment.c: (e_attachment_new), - (e_attachment_build_remote_file): Use file:// as the uri. - -2006-08-04 Johnny Jacob <jjohnny@novell.com> - - * e-icon-entry.c: (set_cursor) : Added. Change cursor over icon. - (e_icon_entry_create_button) : Handle enter/leave-notify signals - for changing cursor. - * e-search-bar.c: (e_search_bar_construct) : Added mnemonic for - "Sho_w". Added tooltips for e-icon-entry. - (option_activated_cb) : Set the selected item's label in tooltip. - - -2006-08-02 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #349565 - - * e-search-bar.c: (clear_search): Dont clear the criteria. - -2006-07-28 Srinivasa Ragavan <sragavan@novell.com> - - * e-calendar-item.c: Removed the hardcoded ENABLE_CAIRO for tag - calendar. - -2006-07-22 Yuri Pankov <yuri.pankov@gmail.com> - - Reviewed by Harish Krishnaswamy <kharish@novell.com> - * e-icon-entry.c: Add missing headers. Fixes #347689. - -2006-07-20 Srinivasa Ragavan <sragavan@novell.com> - - * e-search-bar.c: (e_search_bar_construct): Modified - the mnemonics for avoiding the conflict with attachment bar. - -2006-07-18 Andre Klapper <a9016009@gmx.de> - - * e-attachment.glade: - * gal-categories.glade: - remove "*" from translation. Fixes bug #331147. - -2006-07-17 Sankar P <psankar@novell.com> - - * Replaced classification with security in the send-options - so that the client ui looks consistent (GW) - * e-send-options.[c|h|glade]: - -2006-07-11 Hiroyuki Ikezoe <poincare@ikezoe.net> - - ** Fixes bug #347166 - - * widgets/misc.e-search-bar.c: (set_option): - remove gtk_option_menu_set_history(). - -2006-06-07 Ushveen Kaur <kushveen@novell.com> - - ** Fixes bug #341333 - - * e-dateedit.c: accelarator for 'now'('w') and 'today'('t') - 'None'('n') - -2006-07-11 Li Yuan <li.yuan@sun.com> - - Fixes bug #345402 - - * e-dateedit.c: (on_date_popup_key_press): - Grab the popup window when some key except ESC is pressed. - -2006-07-04 Andre Klapper <a9016009@gmx.de> - - * e-search-bar.c: fixing two typos, adding translator comments. - -2006-07-03 Harry Lu <harry.lu@sun.com> - - Fix compile error in solaris - - * e-filter-bar.h: E_FILTERBAR_SEPARATOR should have 3 members. - * e-search-bar.h: add the declaration of e_search_bar_set_viewitem_id. - -2006-06-19 Srinivasa Ragavan <sragavan@novell.com> - - ** Fixes bug #252814 - Committing a patch from Oswald. - - * e-combo-button.c: (e_combo_button_init), - (e_combo_button_pack_hbox), (e_combo_button_pack_vbox): - * e-combo-button.h: Adds new packing support for supporting toolbar - options. - -2006-06-19 Chpe <chpe@gnome.org> - - * e-combo-button.c: (paint): Fix for bug #262210 - -2006-06-09 Johnny Jacob <johnnyjacob@gmail.com> - - * e-dateedit.c (): Removing aggressive time check when entering a - date in the editor. Fixes bug #335400. (Committed by Andre Klapper) - -2006-06-08 Jeffrey Stedfast <fejj@novell.com> - - * e-attachment-bar.c (attachment_destroy): Call update (bar); the - rest of the fix for bug #178631. - -2006-06-07 Federico Mena Quintero <federico@novell.com> - - * e-map.c (e_map_class_init): Don't use gtk_signal_new() for the - set_scroll_adjustments signal, and use the correct marshaler. - Fixes bug #331743. - -2006-06-02 Hiroyuki Ikezoe <poincare@ikezoe.net> - - ** Fixes bug 343494 - - * e-search-bar.c (add_button): Use gtk_button_set_image if GTK+ is - 2.6 or higher. - -2006-05-30 Li Yuan <li.yuan@sun.com> - - Fix for #343280. - - * e-search-bar.c (add_button): No need to add label when we use - gtk_button_new_from_stock to create a button. - -2006-05-26 Jeffrey Stedfast <fejj@novell.com> - - Fix for Novell bug #178631 - - * e-attachment-bar.c: Changed the EAttachmentBarPrivate struct, we - no longer use a linked list, instead we use a GPtrArray - faster, - simpler (plus all the code used indexes anyway, so it was really - bizarre). - (free_attachment_list): Removed. - (attachment_destroy): New GWeakNotify callback for when an - EAttachment object gets destroyed. Remove the attachment from the - attachments array. - (add_common): Updated to add to an array rather than a linked - list. Also weak_ref the attachment object. - (remove_attachment): Removed. - (update): Updated to use the array instead of linked list of - attachments. - (e_attachment_bar_remove_selected): Same. - (e_attachment_bar_set_width): Same. - (e_attachment_bar_edit_selected): Same. - (e_attachment_bar_get_selected): Same. - (e_attachment_bar_get_attachment): Same. - (e_attachment_bar_get_all_attachments): Same and also optimised - since we can cheat now without having to g_slist_reverse. - (e_attachment_bar_get_parts): Same. - (destroy): Same. - (eab_drag_data_get): Same. - (init): Init attachments to a g_ptr_array_new - (e_attachment_bar_to_multipart): Updated to use the attachments - array. - (e_attachment_bar_get_num_attachments): Updated to return the - attachments->len. - (e_attachment_bar_get_download_count): Updated to use the array. - - * e-attachment.c (finalise): Close the editor dialog if it is - open. - (async_progress_update_cb): If the phase is COMPLETE but the - file_size is 0, then treat it as an error. In the error case, - unref the attachment object (this will magically remove it from - the EAttachmentBar). - (close_cb): Don't unref the attachment object here anymore. - (e_attachment_edit): Don't ref the EAttachment anymore. - -2006-05-25 Srinivasa Ragavan <sragavan@novell.com> - - * e-attachment-bar.c (update, eab_icon_clicked_cb), - (e_attachment_bar_attach_remote_file): - - * e-attachment-bar.h: - - * e-attachment.c (e_attachment_new_remote_file), - (e_attachment_build_remote_file): Added code to specify the - attachment type for remote files. Also added code to save files - to CamelStreamVfs - -2006-05-04 Rajeev Ramanathan <rajeevramanathan_2004@yahoo.co.in> - - * e-calendar-item.c (e_calendar_item_draw), - (e_calendar_item_draw_month, e_calendar_item_draw_day_numbers), - (layout_set_day_text): enable build without cairo using - ENABLE_CAIRO macro. Also it fixes a bold issue, where entire - evolution appears with bold text. - -2006-04-27 Boby Wang <boby.wang@sun.com> - - ** Fixes bug #339138 - - * e-calendar.c (e_calendar_init): Correct the button's accessible - name. - -2006-04-27 Boby Wang <boby.wang@sun.com> - - ** Fixes bug #332821 - - * e-expander.c (e_expander_class_init): Implement the - accessibility of EExpander. - -2006-04-26 Srinivasa Ragavan <sragavan@novell.com> - - * e-search-bar.c (append_xml_menu_item, setup_bonobo_menus): Added - icons to search menu. - -2006-04-26 Srinivasa Ragavan <sragavan@novell.com> - - * e-search-bar.c (add_button, e_search_bar_construct): Adding - icons for find and clear buttons. (Patch from PR Suman) - -2006-04-26 Srinivasa Ragavan <sragavan@novell.com> - - ** Patch from charu_jayaprakasam@yahoo.com fixes bug #335861 - - * e-search-bar.c (e_search_bar_construct): Change the mnemonics - for Find Now button. - -2006-04-24 Srinivasa Ragavan <sragavan@novell.com> - - * e-calendar-item.c (e_calendar_item_draw), - (e_calendar_item_draw_month, e_calendar_item_draw_day_numbers): - Used Cairo to draw the Tag Calendar. (Rajeev) - -2006-04-22 Srinivasa Ragavan <sragavan@novell.com> - - * e-attachment-bar.c (e_attachment_bar_create_attachment_cache): - Added a new function that creates a attachment with a image cache. - -2006-03-28 Li Yuan <li.yuan@sun.com> - - **Fixes bug #335618 - - * e-selection-model-array.c (e_selection_model_array_delete_rows): - If the row being deleted is the last one, we should change the - selection_start_row. - -2006-03-06 Simon Zheng <simon.zheng@sun.com> - - Fixes bug #332140 - - * e-attachment-bar.c (temp_save_part): Changed to transfer - filenames from utf-8 to glib encoding before really saving files. - -2006-03-06 Jeff Cai <jeff.cai@sun.com> - - ** Fixes for 333235 - - * e-combo-button.c (paint): If width of a widget is 0, don't draw - it. - -2006-02-28 Devashish Sharma <sdevashish@novell.com> - - * e-reflow.c (do_adjustment): Check and see if reflow->items and - reflow->items[row] are NULL or not. Fixes Bug # 331998. - - Patch submitted by Irene Huang <Irene.Huang@sun.com> - -2006-02-24 Srinivasa Ragavan <sragavan@novell.com> - - ** Fixes bug #322789 - - * e-image-chooser.c (set_image_from_data): Added code to get the - pixbuf after closing the loaded. - -2006-02-13 Andre Klapper <a9016009@gmx.de> - - * e-charset-picker.c: adding thai support. - fixes the UI part of bug 251062. - -2006-02-11 Karsten Bräckelmann <guenther@rudersport.de> - - * e-search-bar.c (activate_by_subitems): - * e-dateedit.c (e_date_edit_new, create_children) - (create_children, create_children): - * e-calendar.c (e_calendar_init): - Change a11y names. Fixes part of bug #330723. - -2006-01-16 Nancy Cai <nancy.cai@sun.com> - - ** Fixes bug #326649 - - * e-multi-config-dialog.c (set_page_timeout_callback): make the - preferences dialog's keyboard navigation more consistent. - -2006-01-13 Srinivasa Ragavan <sragavan@novell.com> - - ** Fixes bug #326265 - - * e-charset-picker.c (e_charset_picker_bonobo_ui_populate): Added - mnemonics to "Character Encoding" menu. - -2006-01-11 Chenthill Palanisamy <pchenthill@novell.com> - - * Makefile.am: Remove the e-util-marshal.list from extra dist. - Fixes a build break. - -2006-01-10 Simon Zheng <simon.zheng@sun.com> - - * Makefile.am: - * e-dateedit.c: - * e-image-chooser.c: - * e-printable.c: - * e-reflow-model.c: - * e-reflow.c: - * e-search-bar.c: - * e-selection-model.c: - * gal-combo-box.c: - Remove e-util-marshal.list in current directory, and - use the copy in evolution/e-util directory instead. - - *e-util-marshal.list: removed - -2006-01-06 Parthasarathi Susarla <sparthasarathi@novell.com> - - * e-search-bar.c (clear_verb_cb): assign the data first before - accessing it. - -2006-01-02 Harish Krishnaswamy <kharish@novell.com> - - reviewed by: Srinivasa Ragavan <sragavan@novell.com> - - * e-canvas-background.c (ecb_style_set): Set the foreground only - if the widget has already been realized. Fixes #309618. - -2005-12-21 Srinivasa Ragavan <sragavan@novell.com> - - ** Fixes bug #324590 - - * e-search-bar.c (search_now_verb_cb, clear_verb_cb): Added code - to clear search entry from menu. - -2005-12-20 Johnny Jacob <johnnyjacob@gmail.com> - - ** See Bug #246233 - - * e-filter-bar.c (member_activated): Changed "Search Editor" to - "Searches" - -2005-12-18 Tor Lillqvist <tml@novell.com> - - * Makefile.am: Link with bootstrap libs on Win32. Use - EVOLUTION_IMAGES instead of MAP_DIR for uniformity. Use - EVOLUTION_MAIL_CFLAGS instead of E_WIDGETS_CFLAGS. Use privsolib - instead of privlib (no difference on Unix). Use -no-undefined on - Win32. Link with all required libraries. - - * e-attachment.c - * e-send-options.c: Use gstdio wrappers. Construct glade file name - at run-time. - - * e-map.c: Construct map file name at run-time. - - * gal-combo-text.c (strcase_equal): Use g_ascii_strcasecmp(). - (strcase_hash): Use g_ascii_tolower(). - -2005-12-15 Srinivasa Ragavan <sragavan@novell.com> - - * e-filter-bar.c (rule_advanced_response, option_changed) - (set_property): Added code to Show color in search widget. * - - * e-search-bar.c (entry_activated_cb), - (activate_button_clicked_cb, clear_button_clicked_cb): Added code - to show color in search widget, when the filter is active. - -2005-11-24 Tor Lillqvist <tml@novell.com> - - * e-dateedit.c: - * e-cell-date-edit.c: Include e-time-utils.h from libedataserver - instead of using evolution's copy which is going away. - -2005-11-23 Johnny Jacob <johnnyjacob@gmail.com> - - * e-dateedit.c (on_date_entry_focus_out, on_time_entry_focus_out): - Validation for date and time during focus out event. - -2005-11-22 Johnny Jacob <johnnyjacob@gmail.com> - - ** See Bug #303856 - - * e-dateedit.c (create_children): Added a signal handler for - date_entry's "key_release_event". - -2005-11-17 Harish Krishnaswamy <kharish@novell.com> - - * e-attachment-bar.c (update, e_attachment_bar_set_width): Fix a - division-by-zero error crasher. - -2005-11-15 Srinivasa Ragavan <sragavan@novell.com> - - * e-attachment-bar.c (e_attachment_bar_get_all_attachments): Added - a function to get all attachments of the attachment bar for plugin - purposes. - -2005-11-14 Chenthill Palanisamy <pchenthill@novell.com> - - * e-dateedit.c (create_children): Adjusted the size for the - dateedit widgets. - -2005-11-14 Srinivasa Ragavan <sragavan@novell.com> - - * e-dateedit.c (create_children): Set a size for the date - edit widgets, so that it doesnt expand too much. - -2005-09-28 Veerapuram Varadhan <vvaradhan@novell.com> - - * e-attachment-bar.c (update): gtk_pixbuf_add_alpha returns a - newly allocated pixbuf, so, free the original one. - -2005-09-28 Tor Lillqvist <tml@novell.com> - - * e-charset-picker.c (e_charset_picker_new) - (e_charset_picker_bonobo_ui_populate): Use g_ascii_strcasecmp() - instead of strcasecmp(). We are comparing to strings known to be - plain ASCII, so just casefolding ASCII is enough. Also better for - portability. - -2005-09-20 Devashish Sharma <sdevashish@novell.com> - - * e-search-bar.c (subitem_activated_cb): Emits the signal "search - activated" when after selecting option "Category is" in search bar - category is selected. So dont have to explicitly click "Find Now". - Fixes #263269. - -2005-08-22 Srinivasa Ragavan <sragavan@novell.com> - - * e-attachment.c (e_attachment_build_remote_file): - Fix for bug #314136. Shows filename in the remote download in - composer. - -2005-08-22 Srinivasa Ragavan <sragavan@novell.com> - - * e-attachment-bar.c (update): Better space management. - Kills one extra row that happens some times. - (e_attachment_bar_set_width): Just adjusts the size instead of - rebuild of the bar, which is the cause for the freeze. Fixes the - bug #313799. Remove the function e_attachment_bar_refresh - - * e-attachment-bar.h: Remove the function e_attachment_bar_refresh - -2005-08-23 Not Zed <NotZed@Ximian.com> - - * e-send-options.c (get_widgets): cast warning away. - - * e-calendar-item.c (e_calendar_item_realize): remove some unused - vars. - -2005-08-17 Srinivasa Ragavan <sragavan@novell.com> - - * e-attachment-bar.c (eab_drag_data_get): Use camel_url to - construct url - (eab_icon_clicked_cb, e_attachment_bar_new): Fixed part of bug - #312224. It handles double click on a attachment icon and calls - gnome_url_show. - - * e-attachment.c (finalise, init): Add a new member to preserve - the stored location - (e_attachment_new)(e_attachment_build_remote_file): Camel_url to - construct urls - -2005-08-16 Srinivasa Ragavan <sragavan@novell.com> - - * e-attachment.c (download_to_local_path, e_attachment_edit): - Fixed few warnings - -2005-08-16 Srinivasa Ragavan <sragavan@novell.com> - - * e-attachment.c (finalise, e_attachment_new) - (e_attachment_build_remote_file, e_attachment_new_from_mime_part) - (ok_cb): Maintain the filename of the attachment in the structure - and free it in finalize. - - * e-attachment-bar.c (update): For display consider the filename - from the structure before from the part. - -2005-08-03 Not Zed <NotZed@Ximian.com> - - * e-filter-bar.c (build_items): revert dobey's last patch here, it - completely broke customisation of the menu. - -2005-08-11 Srinivasa Ragavan <sragavan@novell.com> - - * e-attachment-bar.c (e_attachment_bar_refresh): Added a function - to force refresh/resize the icons. - -2005-08-02 David Malcolm <dmalcolm@redhat.com> - - * e-attachment-bar.c (update_remote_file): escape the "%" - character correctly. - -2005-07-29 Srinivasa Ragavan <sragavan@novell.com> - - * e-attachment.c (e_attachment_new_from_mime_part): used ref - instead of copying the entire mime part. - -2005-07-15 Diego Gonzalez <diego@pemas.net> - - * e-image-chooser.c (image_drag_data_received_cb): modificatio to - avoid getting into an infinite loop. Also remove some debug - output. - (set_image_from_data): substitute calls to gdk_pixbuf_unref and - gdk_pixbuf_ref and use g_object_ref/unref instead. The first ones - are deprecated API. Fixes #310488 - -2005-07-25 Srinivasa Ragavan <sragavan@novell.com> - - * e-attachment-bar.c (e_attachment_bar_remove_selected) - (e_attachment_bar_edit_selected) - (e_attachment_bar_get_attachment, e_attachment_bar_get_parts) - (e_attachment_bar_get_download_count) - (e_attachment_bar_attach_remote_file): Added checks for the - parameters. - -2005-07-20 Vivek Jain <jvivek@novell.com> - - * e-send-options.h: ESendOptionsDialogClass: has a member new - virtual method for default callback of "sod_response" - - * e-send-options.c: introduced a new signal "sod_response" - captures the response for the child dialog and makes it available - at the object level (useful for the external members invoking the - dialog) - -2005-07-20 Srinivasa Ragavan <sragavan@novell.com> - - * e-attachment-bar.c (remove_attachment, update) - (e_attachment_bar_get_selector, e_attachment_bar_get_attachment) - (destroy, init, e_attachment_bar_new) - (e_attachment_bar_add_attachment) - (e_attachment_bar_attach_remote_file): Cleaned up most of - it. Added the DnD. - - * e-attachment.c (real_changed, class_init, init) - (e_attachment_new, e_attachment_new_remote_file) - (e_attachment_build_remote_file): Moved the remote download code - from bar to here and few cleanups. - -2005-07-11 Srinivasa Ragavan <sragavan@novell.com> - - * Makefile.am: Added e-attachment-bar.[ch], e-attachment.[ch], - and e-attachment.glade. - - * e-attachment.[ch]: Merge of em-attachment.[ch] and - cal-attachment.[ch] - - * e-attachment-bar.[ch]: Merge of em-attachment-bar.[ch] and - cal-attachment-bar.[ch]. - -2005-06-23 Kaushal Kumar <kakumar@novell.com> - - * Makefile.am: Use 'misc' for widgetsincludedir, instead of - 'widgets', to match source directory name and fix - evolution-exchange build. - -2005-05-31 Li Yuan <li.yuan@sun.com> - - * e-dateedit.c (e_date_edit_update_date_entry): add relation to - date_button. - - Fixes #302267 - -2005-05-16 Not Zed <NotZed@Ximian.com> - - * Makefile.am: move e-error.[ch] and e-system-errors.xml to - e-util/. remove test-error. - -2005-05-13 Rodney Dawes <dobey@novell.com> - - * e-filter-bar.[ch]: Update for the new menu layout - -2005-05-12 Shreyas Srinivasan <sshreyas@novell.com> - - * e-send-options.c: Fixed #272005 - -2005-05-06 Sarfraaz Ahmed <asarfraaz@novell.com> - - * e-send-options.glade: Fixed a typo. #273095 - -2005-05-06 Harish Krishnaswamy <kharish@novell.com> - - * e-send-options.glade: Fix for bugs #273096, #273097 - -2005-03-01 Jeffrey Stedfast <fejj@novell.com> - - * e-search-bar.c (subitem_activated_cb): Make the entry widget - grab focus. Fixes bug #60551. - -2005-02-21 Rodney Dawes <dobey@novell.com> - - * e-combo-button.c (paint): Fix the calculation of which shadow type - to use to be more appropriate for the widget state and relief - Always call gtk_box_paint and not only in special cases like GtkButton - (e_combo_button_init): Change the arrow packing to pack_end - - Fixes #54503 - -2005-02-02 Li Yuan <li.yuan@sun.com> - - * e-url-entry.c (init): add a11y name to url link button. - -2005-01-26 Rodney Dawes <dobey@novell.com> - - * e-error.c (e_error_newv): Fix up spacing to be HIG compliant for - the borders around the dialogs - -2005-01-25 Not Zed <NotZed@Ximian.com> - - * e-error.c: turn off debug output, people think its a significant - error. - -2005-01-24 Mengjie Yu <meng-jie.yu@sun.com> - - * e-search-bar.c (set_option): add a11y name for the option menu. - -2005-01-20 Not Zed <NotZed@Ximian.com> - - ** See bug #64964. - - * e-error.c (e_error_newv): just use add_button, not - add_action_widget, for stock+label widgets, since they both show - the same, and for some reason set_default_response doesn't work - otherwise. - -2005-01-20 Harry Lu <harry.lu@sun.com> - - * e-search-bar.c (activate_by_subitems): add a translater note. - -2005-01-19 Harry Lu <harry.lu@sun.com> - - Fix for 46359, enable "Alt+Down Arrow" to show the popup for - e-combo-cell-editable.c. - - * e-combo-cell-editable.c (show_popup): rewrite it to a more - generic function. - (button_clicked_cb): call the new show_popup function. - (entry_key_press_event_cb): show popup if "Alt+Down Arrow". - (ecce_grab_focus): new function. - (ecce_class_init): add grab_focus handler so that the entry can - get focus. - -2005-01-17 Harry Lu <harry.lu@sun.com> - - Fix for 62831. - - * e-search-bar.c (activate_by_subitems): add an a11y name for the - search entry. - -2005-01-12 Chenthill Palanisamy <pchenthill@novell.com> - - * e-send-options.c (e_send_options_get_widgets_data), - (e_send_options_fill_widgets_with_data): Get the value for the - autodelete toggle button - (page_changed_cb): Do not hide the classification label and its - combo box here. - -2005-01-10 Chenthill Palanisamy <pchenthill@novell.com> - - * e-send-options.c (e_send_options_get_widgets_data), - (e_send_options_fill_widgets_with_data, page_changed_cb), - (init_widgets, get_widgets, setup_widgets), - (e_sendoptions_set_global, e_sendoptions_dialog_run), - (e_sendoptions_dialog_finalize, e_sendoptions_dialog_dispose), - (e_sendoptions_dialog_init, e_sendoptions_dialog_class_init), - (e_sendoptions_dialog_get_type): Added code to support global - options. Filled the finalize and dispose functions. - - * e-send-options.glade: Changed a label id. - - * e-send-options.h: Added the set_global function. - -2005-01-06 JP Rosevear <jpr@novell.com> - - * Makefile.am: dist the glade file - -2005-01-06 Chenthill Palanisamy <pchenthill@novell.com> - - Commiting the files mentioned below again to HEAD since it - was not added in head. - -2005-01-06 Chenthill Palanisamy <pchenthill@novell.com> - - merging send options - - * Makefile.am: - - * e-send-options.[ch]: Widgets for the send options dialog - - * e-send-options.glade: Contains interface for the dialog - -2005-01-04 Harry Lu <harry.lu@sun.com> - - * misc/e-combo-button.c (e_combo_button_popup): new internal - function to popup the menu. - (impl_button_press_event): call the new function. - (e_combo_button_class_init): init a11y. - (e_combo_button_get_label): new function to return label. - (e_combo_button_popup_menu): new function to popup menu. - - * misc/e-combo-button.h: add function declarations. - -2004-12-17 Not Zed <NotZed@Ximian.com> - - * e-error.c (ee_load, e_error_newv): translate strings based on - translation-domain, if supplied. - -2004-12-14 Rodney Dawes <dobey@novell.com> - - * e-calendar-item.c (e_calendar_item_draw): Use gtk_paint_foo instead - of the deprecated gtk_draw_foo functions - (e_calendar_item_get_day_style): Use colors from the theme for the - background and foreground of various items - - * test-calendar.c (main): Don't set a callback for getting the day - style, we want the test app to use the widget defaults - (get_day_style): Remove all this duplicated code as we want to use - the widget default colors for day fg/bg - -2004-11-26 JP Rosevear <jpr@novell.com> - - * test-info-label.c: test prog - - * e-url-entry.c: get image directly from icon factory - - * e-combo-button.c: ditto; convert to G_DEFINE_TYPE - - * e-activity-handler.c: convert to G_DEFINE_TYPE - - * e-task-widget.c: ditto - - * e-task-bar.c: ditto - - * e-multi-config-dialog.c: ditto - - * e-dropdown-button.c: ditto - - * e-cell-renderer-combo.c: ditto - - * e-cell-date-edit.c: ditto - - * e-calendar.c: ditto - - * e-calendar-item.c: ditto - - * Makefile.am: don't build the title bar, build an info label test - program - -2004-10-28 Li Yuan <li.yuan@sun.com> - - * e-calendar.c (e_calendar_init, e_calendar_new): Make - accessibility name and description translatable. Add a atk name - for the two buttons so that they can be UI grabbed by GOK. - - * e-dateedit.c (e_date_edit_new, create_children): Add a name for - atk object. Make accessibility name and description translatable. - Add name and description for the date_entry, date_button and - time_combo. - (e_date_edit_show_date_popup), (hide_date_popup): Grab and ungrab - keyboard. add_relation(): New function to add labelled_by - relation for entry and combobox. - - * e-map.c (e_map_new): Add a name for world map widget. Make - accessibility name and description translatable. Set the atk role - to image. - - * e-multi-config-dialog.c (e_multi_config_dialog_add_page): Add an - atk name for the page. - -2004-10-27 JP Rosevear <jpr@novell.com> - - * Makefile.am: use E_WIDGET instead of GNOME_FULL - -2004-10-14 JP Rosevear <jpr@novell.com> - - * e-pilot-settings.c: fix e-source-option-menu include - -2004-10-13 JP Rosevear <jpr@novell.com> - - * Makefile.am: don't build source selector or source option menu - or test programs any more - -2004-10-08 Harry Lu <harry.lu@sun.com> - - * e-source-selector.c (e_source_selector_popup_menu), - (class_init): implement popup_menu so that popup menu can be shown - with Shift+F10. - -2004-10-06 JP Rosevear <jpr@novell.com> - - Fixes #66164 - - * e-cell-date-edit.c (e_cell_date_edit_get_popup_pos): replicate - fix to e-cell-combo.c by NotZed - -2004-10-01 Not Zed <NotZed@Ximian.com> - - * e-util-marshal.list: added boolean object boxed. - - * e-source-selector.c (class_init): add new 'popup event' signal, - to replace fill_popup_menu. - (selector_button_press_event): emit a POPUP_EVENT rather than a - FILL_POPUP_MENU. - -2004-09-13 Rodney Dawes <dobey@novell.com> - - * e-multi-config-dialog.c (impl_response): - Point at "config-prefs" instead of "config" for the help section - -2004-08-03 JP Rosevear <jpr@novell.com> - - * Makefile.am: Really dist the pilot sources this time - -2004-08-03 JP Rosevear <jpr@novell.com> - - * Makefile.am: Dist the pilot sources - -2004-08-01 JP Rosevear <jpr@novell.com> - - * e-pilot-settings.c (e_pilot_settings_get_source): accessor - (e_pilot_settings_set_source): ditto - (build_ui): show the source option menu - (e_pilot_settings_new): use above - - * e-pilot-settings.h: add prototypes - -2004-07-20 JP Rosevear <jpr@novell.com> - - * Makefile.am: build pilot setting - -2004-07-26 JP Rosevear <jpr@novell.com> - - * e-search-bar.c (setup_bonobo_menus): use ctrl-shift-q to clear - search bar - -2004-07-20 Not Zed <NotZed@Ximian.com> - - * e-error.c: include config.h. See #61395. - -2004-07-20 JP Rosevear <jpr@novell.com> - - * e-source-selector.h: remove proto - - * e-source-selector.c (selection_func): don't force the item to be - checked - (cell_toggled_callback): allow the cell to be untoggled even if - its primary - (init): set the pixbuf renderable - (e_source_selector_set_toggle_selection): no longer necessary - -2004-07-16 Chris Toshok <toshok@ximian.com> - - * e-clipped-label.c (e_clipped_label_recalc_chars_displayed): - remove debug spew and fix the display when - pango_layout_line_x_to_index returns FALSE (before we were drawing - both the ellipses and the text). - -2004-07-12 Jeffrey Stedfast <fejj@novell.com> - - * e-charset-picker.c: s/GB-2312/GB2312/ - fixes bug #61385. - -2004-06-24 Rodney Dawes <dobey@novell.com> - - * e-error.c (e_error_newv): Fix alignment of the icon to be 0x0 - - Fixes #60493 - -2004-06-24 Rodney Dawes <dobey@novell.com> - - * e-source-selector.[ch]: Add new "select_new" property to - private structure of the ESourceSelector - (rebuild_cb): Add code to select the new source, and cause the - selection_changed signal to get emitted, if we select new sources - (init): Don't select new sources by default - (e_source_selector_set_select_new): Add function to set whether or not - we want to select new sources when we add them - -2004-06-22 Hans Petter Jansson <hpj@ximian.com> - - * e-source-selector.c (e_source_selector_peek_primary_selection): - Add preconditions. Make sure garbage or NULL data doesn't get - used. - -2004-06-16 Not Zed <NotZed@Ximian.com> - - * e-source-selector.c (cell_toggled_callback): fix a path leak and - maek the code more structured. - (e_source_selector_set_toggle_selection): set the mode on whether - you can toggle the currnet selection or not. - (cell_toggled_callback): implement set_toggle_selection behaviour. - -2004-06-11 Larry Ewing <lewing@ximian.com> - - * e-source-selector.c: make the source selector use a colock block - instead of setting the foreground to indicate the source color. - (pixbuf_cell_data_func): actually initialize the pixbuf (bad - larry). - (pixbuf_cell_data_func): clean up warnings. (double bad larry). - (pixbuf_cell_data_func): fix the appearance a little. - -2004-06-03 William Jon McCann <mccann@jhu.edu> - - * e-error.c (e_error_newv): Add HIG border width for dialog window. - -2004-06-01 Christian Neumair <chris@gnome-de.org> - - * Makefile.am (test_error_LDADD): Link test-error against libeutil. - -2004-06-01 Anders Carlsson <andersca@gnome.org> - - * e-expander.c (e_expander_expose): Don't propagate the expose - to the label widget, the parent expose handler does that. - -2004-05-28 Anders Carlsson <andersca@gnome.org> - - * e-error.c (e_error_newv): Use the constructed title string. - -2004-05-27 Rodney Dawes <dobey@novell.com> - - * Makefile.am (EXTRA_DIST): Add $(error_i18n) - -2004-05-21 Not Zed <NotZed@Ximian.com> - - * e-error.c (e_error_default_parent): set a default error parent - fallback. - (e_error_newv): if parent is null, see if we have a default still - alive, and use that. warn if not. - (e_error_default_parent): uh, fix the sense of the - if-we-dont-have-it test. - -2004-05-20 JP Rosevear <jpr@novell.com> - - * e-task-widget.c (e_task_widget_construct): only unref the mask - if there is one - -2004-05-19 JP Rosevear <jpr@novell.com> - - * Makefile.am: don't dist the error .h file - -2004-05-18 Not Zed <NotZed@Ximian.com> - - * e-error.c (ee_load): load the <help> tag if present. - (ee_response): handle the help response and swallow the signal. - (e_error_newv): setup help button if we have a help uri. - -2004-05-17 Jeffrey Stedfast <fejj@novell.com> - - * e-url-entry.c (init): Use E_ICON_SIZE_BUTTON for the icon size - in the e_icon_factory_get_icon() call. - - * e-combo-button.c (create_empty_image_widget): Don't hard-code - the size of the icon in pixels, instead use the appropriate - E_ICON_SIZE_ enum. - -2004-05-17 JP Rosevear <jpr@novell.com> - - Fixes #58460 - - * e-task-widget.c (e_task_widget_construct): bitmap_unref the - mask, don't object_unref it - -2004-05-12 Not Zed <NotZed@Ximian.com> - - * e-error.c (ee_load): duh, use the right node pointer for title - and secondary text. - - * e-system-errors.xml: make the Because cases the same. - - * e-system-errors.xml.h: add for translators. - - * e-error.c (ee_load): just use _() to do i18n rather than the - nasty lang stuff. - (find_node): no longer needed. - - * Makefile.am (%.xml.h): setup the build rules for the i18n file - for the errors. - - * e-system-errors.xml.in: Removed, renamed to .xml and removed the - _ stuff. - -2004-05-04 Xan Lopez <xan@gnome.org> - - * Makefile.am: - - Build fixes. - -2004-05-03 Not Zed <NotZed@Ximian.com> - - * e-error.c (ee_build_label): blah, need to do entity decoding. - #57918. - -2004-04-29 JP Rosevear <jpr@ximian.com> - - * e-activity-handler.c (impl_dispose): pass the correct data when - weak unreffing - -2004-04-29 Not Zed <NotZed@Ximian.com> - - * e-error.c (e_error_newv): make the label selectable. - (e_error_newv): if we have stock and label set, then use a stock - button with an override label. - -2004-04-28 Not Zed <NotZed@Ximian.com> - - * e-system-errors.xml.in: holder for system errors. - - * test-error.c: helper to show an error message/test it. - - * e-error.[ch]: Api for disk-based, hig-compliant error messages - and query boxes. - -2004-04-19 Jeffrey Stedfast <fejj@ximian.com> - - * e-info-label.c (e_info_label_new): Updated to sue E_ICON_SIZE enums. - -2004-04-19 Rodney Dawes <dobey@ximian.com> - - * e-info-label.c (e_info_label_new): Update to use EIconFactory to - get the filename for the component icons using the icon theme - -2004-04-19 Michael Terry <mike@mterry.name> - - * e-combo-buddon.c: - * e-url-entry.c: Update these to use EIconFactory and GtkImages - directly instead of GdkPixmaps - -2004-04-09 Rodney Dawes <dobey@ximian.com> - - * e-charset-picker.c: Include gtkhbox.h in here to avoid the warnings - (activate_other): - (e_charset_picker_dialog): Make these dialogs be more HIG-compliant - * e-filter-bar.c (do_advanced): - (menubar_activated): Make these dialogs be more HIG-compliant - -2004-04-08 Not Zed <NotZed@Ximian.com> - - * e-info-label.c (e_info_label_set_info): ugh, fix some last - minute changes which broke shit. - - * e-info-label.[ch]: A widget to show component info for the - current component/view. - -2004-04-07 Jeffrey Stedfast <fejj@ximian.com> - - * e-multi-config-dialog.c: Updated for changes to e-config-page.c - (init): Removed the OK and Apply buttons. - - * e-config-page.c (e_config_page_apply): Removed. - (e_config_page_is_applied): Removed. - (e_config_page_changed): Removed. - -2004-04-01 Dan Winship <danw@ximian.com> - - * e-url-entry.c (init): Make the button initially insensitive. - Connect to the entry's "changed" signal. - (entry_changed_cb): sensitize the button iff the entry is - non-empty - (button_clicked_cb): simplify a bit by using gtk_entry_get_text - rather than gtk_editable_get_chars. - -2004-04-01 Jeffrey Stedfast <fejj@ximian.com> - - * e-charset-picker.c (e_charset_picker_new): Create a new class - for "Western European, New" to fix a translation issue. - -2004-03-31 Not Zed <NotZed@Ximian.com> - - * e-filter-bar.c (menubar_activated): start the rule editor with - the right label. - -2004-03-26 Rodney Dawes <dobey@ximian.com> - - * e-multi-config-dialog.c (init): Remove the dialog separator - Set the border widths of the dialog's vbox and action area to be more - HIG-compliant - Set the border width of the dialog's child to 12 for HIG-compliance - -2004-03-15 JP Rosevear <jpr@ximian.com> - - * e-calendar-item.c (e_calendar_item_class_init): change arg name - (e_calendar_item_init): ditto - (e_calendar_item_get_arg): ditto - (e_calendar_item_set_arg): ditto - (e_calendar_item_preserve_day_selection): set the selection day to - the given selection - (e_calendar_item_set_first_month): use above to preserve selected - day of week - - * e-calendar-item.h: change field name - -2004-03-13 Trent Lloyd <lathiat@sixlabs.org> - - * e-search-bar.c (remove_bonobo_menus): move function above - setup_bonobo_menus, fixes implicit declaration. - -2004-03-12 Kidd Wang <kidd.wang@sun.com> - - * e-dateedit.c (create_children): enlarge the text box to - accomodate the time info in different locales. - -2004-03-11 Jeffrey Stedfast <fejj@ximian.com> - - Fix for bug #55267. - - * e-filter-bar.c (set_property): Use efb->setquery properly (set - to TRUE before calling set_item_id and FALSE afterwards). Also - setquery to TRUE before emitting the "search-activated" signal so - that we don't run the callback for the signal we are emitting. - -2004-03-02 Jeffrey Stedfast <fejj@ximian.com> - - * e-filter-bar.c (set_property): Emit the "search-activated" - signal. Fixes bug #55054. - -2004-02-26 Rodney Dawes <dobey@ximian.com> - - * e-cell-renderer-combo.c (ecrc_get_size): - * e-dateedit.c (create_children): - * e-dropdown-button.c (e_dropdown_button_construct): Create the - arrows in these widgets as GTK_SHADOW_NONE, since the default arrow - type in GTK+ 2.x is flat triangle arrows, and shadow types are - generally ignored for arrows anyway, and so we don't look ugly with - themes that handle shadow types on arrows correctly - -2004-02-26 Bill Zhu <bill.zhu@sun.com> - - * e-search-bar.c (setup_bonobo_menus): Before Update the bonobo ui - component, remove it first. - - Fixes #54788 - -2004-02-11 Rodney Dawes <dobey@ximian.com> - - * e-multi-config-dialog.c (impl_response): Change the filename and - section that we pass to gnome_help_display_desktop so that the help - browser displays the documentation correctly - -2004-02-10 Rodney Dawes <dobey@ximian.com> - - * e-multi-config-dialog.c (init): Add a Help button - (impl_response): Handle the Help button and open the documentation - - Fixes #30681 - -2004-02-05 Rodney Dawes <dobey@ximian.com> - - * e-task-bar.c: Don't show the task label by default - -2004-02-03 Dan Winship <danw@ximian.com> - - * e-activity-handler.c: - * e-activity-handler.h: - * e-task-bar.c: - * e-task-bar.h: - * e-task-widget.c: - * e-task-widget.h: Moved here from shell/, since they are now used - only by the components, not the shell itself. - - * Makefile.am (widgetsinclude_HEADERS, - libemiscwidgets_la_SOURCES): add new files - -2004-02-02 Chris Toshok <toshok@ximian.com> - - * e-image-chooser.c (set_image_from_data): set - image_buf/image_buf_size here instead of in all callers. also - emit the "changed" signal here. - (image_drag_data_received_cb): remove the copying to image_buf and - emitting of "changed" from here. - (e_image_chooser_set_from_file): only g_free (data) here if - set_image_from_data failed. - (e_image_chooser_set_image_data): copy the image data we're passed - before calling set_image_data. free it if rv == FALSE. - -2004-01-30 Chris Toshok <toshok@ximian.com> - - * e-image-chooser.c (e_image_chooser_init): add an alignment - around the image. This might not be enough. hrm. - (set_image_from_data): handle the case where there's no image - (image_height == image_width == 0). - (e_image_chooser_get_image_data): new function. - (e_image_chooser_set_image_data): new function. - - * e-image-chooser.h: add prototypes for set/get_image_data. - -2004-01-30 Chris Toshok <toshok@ximian.com> - - * e-image-chooser.[ch]: abstract out the drag and droppable image - widget from the contact list editor and stick it here. There's - some code for a "Browse..." button here but it's not enabled. - - * Makefile.am (widgetsinclude_HEADERS): add e-image-chooser.h. - (libemiscwidgets_la_SOURCES): add e-image-chooser.c - -2004-01-30 Jeffrey Stedfast <fejj@ximian.com> - - * e-filter-bar.c (get_property): Only save the search-bar state OR - the filter-bar state - decided based on what the search is. If the - search is an advanced search, then save the filter-bar state, - otherwise save the search-bar state. - (set_property): Only need to restore the first state we find - (filter-bar vs search-bar). If we are restoring filter-bar state, - set efb->setquery to TRUE and then set the item_id to - E_FILTERBAR_ADVANCED_ID. - -2004-01-29 Jeffrey Stedfast <fejj@ximian.com> - - * e-filter-bar.c (option_changed): Don't call efb->config() if the - current_query is NULL. - -2004-01-28 Jeffrey Stedfast <fejj@ximian.com> - - * e-search-bar.c (impl_get_property): Same. - - * e-filter-bar.c (get_property): Use - g_value_set_string_take_ownership() instead of - g_value_take_string() since we need snaps to work with glib-2.0 - earlier than 2.3.x. - -2004-01-28 Jeffrey Stedfast <fejj@ximian.com> - - * e-filter-bar.c: Added a new property "state" which is READ-WRITE - so that we can save/restore state in the mailer code if we want - to. Sort of a work-in-progress toward fixing bug #53195. - (class_init): Ported to use the GObject property stuff instead of - the deprecated GtkArg stuff. - (get_property): Ported from impl_get_arg(). - (set_property): New object::set_property implementation to set the - query state. - -2004-01-24 JP Rosevear <jpr@ximian.com> - - * e-source-selector.c (cell_toggled_callback): if the source is - primary, don't allow it to be un-selected - -2004-01-20 Rodney Dawes <dobey@ximian.com> - - * e-combo-button.c (paint): Be even more exactly like the GtkButton - painting stuff - - Fixes #52988 - -2004-01-20 JP Rosevear <jpr@ximian.com> - - * e-source-selector.c (rebuild_model): set a primary selection if - there is one before the rebuild - (e_source_selector_set_primary_selection): block the signals when - clearing the tree selection to make the op atomic; emit the - selection_changed signal if a hidden selection is not currently - selectecd - -2004-01-20 JP Rosevear <jpr@ximian.com> - - * e-source-selector.c (find_source_iter): provide parent iter - in/out arg - (test_collapse_row_callback): use priv shortcut - (e_source_selector_select_source): pass parent iter - (e_source_selector_unselect_source): ditto - (e_source_selector_peek_primary_selection): return the right thing - if the primary selection is currently hidden - (e_source_selector_set_primary_selection): set the primary - selection properly if the source node is currently hidden - -2004-01-20 JP Rosevear <jpr@ximian.com> - - * e-source-selector.c (clear_saved_primary_selection): util - routine to clear the row reference to the saved primary selection - (find_source_iter): unref the model data retrieved - (rebuild_existing_cb): ditto - (toggle_cell_data_func): ditto - (text_cell_data_func): ditto - (selection_func): ditto; clear the saved primary selection if - something else is selected - (cell_toggled_callback): ditto - (test_collapse_row_callback): clear the toggled_last flag - (row_expanded_callback): once we've restored the saved primary - selection, clear it - (selector_button_press_event): unref the model data - (impl_dispose): use clear_saved_primary_selection - (init): the store column holds object not pointer type - (e_source_selector_peek_primary_selection): unref the model data - -2004-01-20 JP Rosevear <jpr@ximian.com> - - * e-source-selector.c (test_collapse_row_callback): check if the - collapsing node has its child selected, if so take a row reference - to remember the selection - (row_expanded_callback): check if the expanding node has the saved - primary selection under it and re-select if so - (init): listen for signals - (impl_dispose): free the primary selection - -2004-01-19 JP Rosevear <jpr@ximian.com> - - * e-source-selector.c (create_rebuild_data): create the data - structure for rebuilding the model - (free_rebuild_data): free it - (rebuild_existing_cb): check for the sources that are still - existing or deleted - (rebuild_model): do incremental updates - (selection_func): if the last thing we did was toggle, we don't - actually want to highlight and if the source is not checked, check - it - (cell_toggled_callback): indicate that a toggle just occurred - (init): initial toggled last to false - (e_source_selector_set_primary_selection): set some preconditions - - Fixes #51787 - -2004-01-19 JP Rosevear <jpr@ximian.com> - - * e-source-selector.c (cell_toggled_callback): indicate that a toggle just occurred - -2004-01-19 JP Rosevear <jpr@ximian.com> - - * e-source-selector.c - - (selector_button_press_event): when right clicking, make sure the - calendar is highlighted and that groups can't be right clicked on - -2004-01-14 Rodney Dawes <dobey@ximian.com> - - * e-expander.[ch]: Fix remaining usages of GTK_*EXPANDER* defines - -2003-12-22 Rodney Dawes <dobey@ximian.com> - - Fix for bug #46349 - - * e-combo-button.c: Use the appropriate style painting for a - button widget, since we are a button - -2003-12-18 Harry Lu <harry.lu@sun.com> - - * e-cell-date-edit.c: (e_cell_date_edit_do_popup): call - gdk_window_focus() so that keyboard works correctly. - -2003-12-16 Hans Petter Jansson <hpj@ximian.com> - - * e-source-option-menu.c (select_source_foreach_menu_item): Use - e_source_equal() instead of comparing pointers. This allows user - to pass in a source that was obtained from somewhere else. Set the - matching internal source as "selected" instead of the one passed - in. - (select_source): Emit signal only if we found a match. Don't - ref/unref anything, since the selected source will always be from - our internal list. - -2003-12-04 Harry Lu <harry.lu@sun.com> - - Fix for bugzilla bug #51624 and #51627. - - * e-calendar-item.c: (e_calendar_item_selection_add_days): - set the date to the first day of the month so that user can use - keyboard's arrow key to select a date. - (e_calendar_item_set_selection_if_emission): only set selection_changed - if emission is TRUE. - * e-calendar.c: (e_calendar_init): add back the "clicked" handler so - that user can use keyboard to click the button. - (e_calendar_start_auto_move): no need to move since it is already - handled by the clicked handler - (e_calendar_on_prev_clicked), (e_calendar_on_next_clicked): move the - month here. - * e-dateedit.c: (e_date_edit_show_date_popup): use gdk_window_focus - instead of gdk_keyboard_grab so that the focus won't lost if user click - the button with keyboard. - (hide_date_popup): no need to call gdk_keyboard_ungrab. - -2003-12-02 Ettore Perazzoli <ettore@ximian.com> - - * e-source-selector.c (init): Set the mode on the text cell - renderer to GTK_CELL_RENDERER_MODE_ACTIVATABLE so clicking on the - text doesn't change the status of the checkbox. [Many thanks to - Jonathan Blandford for telling me how to do this!] - -2003-12-01 JP Rosevear <jpr@ximian.com> - - * e-source-selector.c (class_init): list the signal args properly - -2003-11-30 ERDI Gergo <cactus@cactus.rulez.org> - - * e-calendar.c: canned the _clicked handlers as those make it - impossible to move just one month at a time - -2003-11-30 Ettore Perazzoli <ettore@ximian.com> - - * e-util-marshal.list: Add NONE:POINTER. - - * test-source-option-menu.c (source_selected_callback): New - callback to test the "source_selected" signal. - (on_idle_create_widget): Connect. - - * e-source-option-menu.c: Add "source_selected" signal. - (select_source): Assume source != NULL and emit "source_selected". - -2003-11-30 Ettore Perazzoli <ettore@ximian.com> - - * test-source-option-menu.c: New test. - - * e-source-option-menu.h: New. - * e-source-option-menu.c: New. - -2003-11-23 ERDI Gergo <cactus@cactus.rulez.org> - - * e-expander.c: Added the late eggexpander - - * e-expander.c (e_expander_button_release): Emit 'activate' signal when - appropriate - - -2003-11-17 Charles Zhang <charles.zhang@sun.com> - - * e-search-bar.c(add_button): allow new lable with mnemonic - (e_search_bar_construct): alter lable name. [50810] - -2003-11-16 JP Rosevear <jpr@ximian.com> - - * e-source-selector.c (e_source_selector_set_primary_selection): - use find_source_iter and get the selection from the right spot - (find_source_iter): util function to find the iter given the - source - (e_source_selector_select_source): signal that the model changed - (e_source_selector_unselect_source): ditto - -2003-11-14 JP Rosevear <jpr@ximian.com> - - * e-source-selector.h: include e-source stuff from e-d-s - - * Makefile.am: use new cflags/libs to build - -2003-11-13 Bolian Yin <bolian.yin@sun.com> - - * e-calendar-item.c: remove a declaration of a deleted func. - -2003-11-12 JP Rosevear <jpr@ximian.com> - - * e-calendar-item.c (e_calendar_item_class_init): a canvas item - does not inherit from gtkwidget - -2003-11-11 Bolian Yin <bolian.yin@sun.com> - - Fixes #50538 - - * e-calendar-item: make e_calendar_item_normalize_date public func. - add "selection_preview_changed" signal. - move some definition of constants to .h - -2003-11-10 Ettore Perazzoli <ettore@ximian.com> - - * e-source-selector.c (e_source_selector_new): Expand all the - nodes. - -2003-11-07 JP Rosevear <jpr@ximian.com> - - * Makefile.am: make sure the marshal stuff is in the sources and - remove the built files when disting - -2003-10-28 Rodrigo Moya <rodrigo@ximian.com> - - * e-source-selector.c (class_init): fill_popup_menu signal has - 2 arguments. - -2003-10-28 Rodrigo Moya <rodrigo@ximian.com> - - * e-source-selector.[ch]: added "fill_popup_menu" signal, to - allow the addition of new items to the popup menu. - (class_init): create new signal. - (init): connect to "button_press_event" for the tree view. - (selector_button_press_event): callback for "button_press_event". - (e_source_selector_selection_shown): use g_return_val_if_fail. - -2003-10-22 Dan Winship <danw@ximian.com> - - * e-bonobo-widget.[ch]: Remove these (unused since 1.2) - -2003-09-30 Mike Kestner <mkestner@ximian.com> - - * e-cell-renderer-combo.* : new, treeview renderer for combo cells - * e-combo-cell-editable.* : new, GtkCellEditable for combo cells - * Makefile.am : build the new files - -2003-09-19 Bolian Yin <bolian.yin@sun.com> - - Fixes #1245. ECalendar should be usable with the keyboard - - * e-calendar-item.c (e_calendar_item_focus): new func, focus - handler. - (e_calendar_item_key_press_event): new func, key press event - handler - (e_calendar_item_selection_add_days, - e_calendar_item_stop_selecting): helpers. - (e_calendar_item_ensure_days_visible, - e_calendar_item_set_selection_if_emission): add the flag to - control if we should emit e-calendar signals. - (e_calendar_item_class_init): register focus handler. - (e_calendar_item_event): add code for GDK_FOCUS_CHANGE and - GDK_KEY_PRESS. - - * e-calendar.c (e_calendar_focus): new func, focus handler - (e_calendar_button_has_focus): new func, if prev/next button has - focus. - (e_calendar_on_next_clicked, e_calendar_on_prev_clicked): click - signal handler for prev/next buttons. - (e_calendar_set_focusable): set if the e-calendar is focusable - - * e-dateedit.c (e_date_edit_show_date_popup, hide_date_popup): - grab/ungrab gdk keyboard. - -2003-08-27 Hans Petter Jansson <hpj@ximian.com> - - Fixes #15638. - - * e-dateedit.c (rebuild_time_popup): Make 12-hour time format not - be zero-padded. Right-align time labels so digits line up. - -2003-08-27 Bolian Yin <bolian.yin@sun.com> - - * Makefile.am: add dependency on a11y/widgets. - - * e-calendar-item.c (e_calendar_item_class_init): a11y init. - (e_calendar_item_bounds): new func, impl the bounds virtual - func. - -2003-08-18 Ettore Perazzoli <ettore@ximian.com> - - * e-source-selector.c (e_source_selector_selection_shown) - (e_source_selector_show_selection): Add precondition. - -2003-08-18 Ettore Perazzoli <ettore@ximian.com> - - * test-source-selector.c (on_idle_create_widget): Add a - checkbutton to the test window for toggling the checkboxes on and - off. Also, put the list in a scrolled window and set a default - size for the main window. - (check_toggled_callback): Callback for the checkbutton. - - * e-source-selector.c: New member checkboxes_shown in struct - ESourceSelectorPrivate. - (init): Set to TRUE. - (e_source_selector_show_selection): New. - (e_source_selector_selection_shown): New. - (toggle_cell_data_func): Don't show the toggle if checkboxes_shown - is FALSE. - -2003-08-17 Ettore Perazzoli <ettore@ximian.com> - - * e-source-selector.c: New signal "primary_selection_changed", - removed members list_changed_callback_id and - selection_changed_callback_id in ESourceSelectorPrivate. - (rebuild_model): If the new set of selected sources is smaller - than the old one, emit "selection_changed". - (e_source_selector_peek_primary_selection): New. - (e_source_selector_set_primary_selection): New. - (selection_changed_callback): New callback for the "changed" - signal on our associated GtkTreeSelection. - (init): Connect. - (impl_dispose): Disconnect. - (setup_model): Use signal_connect_object() instead of saving the - ID. - -2003-08-15 Ettore Perazzoli <ettore@ximian.com> - - * e-source-selector.c (cell_toggled_callback): Call - gtk_tree_model_row_changed() to let the model know that we changed - the data. - -2003-08-15 Ettore Perazzoli <ettore@ximian.com> - - * test-source-selector.c: New test program. - - * e-source-selector.c: New file. - * e-source-selector.h: New file. - -2003-07-23 Dan Winship <danw@ximian.com> - - * Makefile.am: use EVO_MARSHAL_RULE - - * e-combo-button.c (create_empty_pixmap_widget): Create the pixbuf - from empty.xpm rather than just calling gdk_pixbuf_new(), which - doesn't actually initialize the pixel data. - - * e-messagebox.c: Remove this, since it claims to be deprecated, - and nothing is actually using it any more. - - * Makefile.am: Remove e-messagebox.[ch] - -2003-07-11 Federico Mena Quintero <federico@ximian.com> - - * e-dateedit.c (e_date_edit_mnemonic_activate): Added a handler - for GtkWidget::mnemonic_activate(). - - * e-url-entry.c (mnemonic_activate): Likewise. - -2003-07-09 Federico Mena Quintero <federico@ximian.com> - - * e-url-entry.c (destroy): Chain to the parent handler. Fixes #45236. - -2003-06-23 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (set_menu): Translate the text. [#45112] - -2003-06-18 Suresh Chandrasekharan <suresh.chandrasekharan@sun.com> - - * e-charset-picker.c: Fix for #45082: GB18030 BIG5HKSCS and EUC-TW - charsets not supported in evolution mail - -2003-06-17 Jeffrey Stedfast <fejj@ximian.com> - - * e-charset-picker.c (e_charset_picker_bonobo_ui_populate): Don't - use the charset class in the menu label if it is 'Unknown'. - (e_charset_picker_bonobo_ui_populate): For user-defined charsets, - just use the name of the charset rather than "Unknown". - (add_charset): Don't escape _'s anymore, this seems to not be - needed int gtk2. - (add_other_charset): g_strdup() the charset name. Fixes bug - #43917. - -2003-06-11 Larry Ewing <lewing@ximian.com> - - * e-search-bar.c (impl_get_property): take ownership of the duped - string. - diff --git a/widgets/misc/ChangeLog.pre-1-4 b/widgets/misc/ChangeLog.pre-1-4 deleted file mode 100644 index 7a5cae8211..0000000000 --- a/widgets/misc/ChangeLog.pre-1-4 +++ /dev/null @@ -1,1903 +0,0 @@ -2003-05-29 JP Rosevear <jpr@ximian.com> - - Fixes #43775 - - * e-calendar-item.c (layout_set_day_text): calculate the day - character correctly - (e_calendar_item_draw_month): use it - - * e-dateedit.c (rebuild_time_popup): use e_utf8_strftime - (e_date_edit_update_date_entry): ditto - (e_date_edit_update_time_entry): ditto - - * e-calendar-item.c (layout_set_day_text): calculate the day - character correctly - (e_calendar_item_draw_month): use e_utf8_strftime and above - (e_calendar_item_show_popup_menu): use e_utf8_strftime - (e_calendar_item_recalc_sizes): use layout_set_day_text - -2003-05-19 Anna Marie Dirks <anna@ximian.com> - - * e-multi-config-dialog.c (init): Added HIG-appropriate spacing/ - padding to the main hbox into which the icons and page widgets - are packed. - -2003-05-19 Larry Ewing <lewing@ximian.com> - - * e-charset-picker.c: port to GtkDialog. - -2003-05-14 JP Rosevear <jpr@ximian.com> - - * e-combo-button.c (impl_destroy): guard against multiple destroys - -2003-05-13 Ettore Perazzoli <ettore@ximian.com> - - [#42628] - * e-search-bar.c (search_now_verb_cb): Call - emit_search_activated() instead of emit_query_changed(). - -2003-05-11 Chris Toshok <toshok@ximian.com> - - [ fixes bug #42177 ] - * e-dateedit.c (e_date_edit_init): remove the CAN_FOCUS flag. - -2003-05-09 Ettore Perazzoli <ettore@ximian.com> - - * e-combo-button.c (menu_deactivate_callback): Set in_button to - FALSE; this makes sure the button gets the right appearance after - the menu is popped down (the reason why this is necessary is that - the widget doesn't never gets to the leave_notify event). - -2003-05-07 JP Rosevear <jpr@ximian.com> - - * e-search-bar.c (e_search_bar_set_text): trash e_utf8_gtk function - (e_search_bar_get_text): ditto - -2003-04-29 Dan Winship <danw@ximian.com> - - * e-dateedit.c (e_date_edit_forall): Remove this so that - GtkContainer's destroy method will destroy all of the internal - widgets. (This is how other compound-widgets-that-aren't- - meant-to-be-used-as-containers behave.) #41458 - -2003-04-16 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (remove_bonobo_menus): Only do the actual remove - if the ui component actually has a container; this suppresses a - BonoboUI warning at each folder view switch. - -2003-04-15 Hans Petter Jansson <hpj@ximian.com> - - * e-calendar-item.c (e_calendar_item_update): Unref the metrics. - (e_calendar_item_draw): Re-use the widget's context instead of - creating a new one. Unref the metrics. - (e_calendar_item_draw_month): Unref the metrics. Don't create the - layout where it might be leaked by an early return. Unref the layout - before returning if we're outside the clip area. - (e_calendar_item_draw_day_numbers): Unref the metrics. - (e_calendar_item_recalc_sizes): Unref the metrics. - (e_calendar_item_convert_position_to_day): Unref the metrics. - - * e-calendar.c (e_calendar_size_allocate): Unref the metrics. - -2003-04-11 Jeffrey Stedfast <fejj@ximian.com> - - * e-filter-bar.c (do_advanced): Change the border width and - padding to comply with the HIG. Fixes bug #41202. - (do_advanced): Changed the button ordering from Cancel/Save/OK to - Save/Cancel/OK to comply with the HIG. Fixes bug #41207. - -2003-04-08 Mike Kestner <mkestner@ximian.com> - - * e-search-bar.c (set_option): kill an old e_utf8_gtk usage - -2003-04-06 Chris Toshok <toshok@ximian.com> - - * e-cell-percent.h: e_cell_percent_get_type returns GType, not - GtkType. - - * e-cell-percent.c (e_cell_percent_new): use g_object_new, not - gtk_object_new. - -2003-04-02 Hans Petter Jansson <hpj@ximian.com> - - * e-calendar-item.c (e_calendar_item_set_selection): For example; - a selection ending 2003-apr-02 does not fit into the remaining - shown days after 1969-dec. Stop assuming that it does. - -2003-04-01 Hans Petter Jansson <hpj@ximian.com> - - * e-calendar-item.c (e_calendar_item_class_init) - (e_calendar_item_destroy) - (e_calendar_item_get_arg) - (e_calendar_item_set_arg) - (e_calendar_item_update) - (e_calendar_item_draw) - (e_calendar_item_draw_month) - (e_calendar_item_draw_day_numbers) - (e_calendar_item_recalc_sizes) - (e_calendar_item_convert_position_to_day): Nuke GdkFont and use - Pango's font measuring for everything. - - * e-calendar-item.h: Ditto. - - * e-calendar.c (e_calendar_init) - (e_calendar_size_allocate): Ditto. - -2003-03-30 Hans Petter Jansson <hpj@ximian.com> - - * e-calendar-item.c (e_calendar_item_destroy): Handle multiple - destroys. - -2003-03-28 JP Rosevear <jpr@ximian.com> - - * e-search-bar.c (clear_search): set the sub item to the default - as well - -2003-03-25 Dan Winship <danw@ximian.com> - - * e-calendar.c: #include gtkarrow.h - * e-combo-button.c: Likewise - - * e-charset-picker.c: Update for e_notice move - -2003-03-19 Jeffrey Stedfast <fejj@ximian.com> - - * e-filter-bar.c: Updated to use GtkDialog instead of - GnomeDialog. Also fixed bug #39550 while I was at it. - -2003-03-10 Rodney Dawes <dobey@ximian.com> - - * e-calendar.c: Use GtkArrow instead of pixmaps - * e-combo-button.c: Use GtkArrow instead of pixmaps - * e-filter-bar.c: gtk_window_set_policy () is deprecated - * e-url-entry.c: Load the icon in a pixbuf instead of GdkPixmap - -2003-03-06 Ettore Perazzoli <ettore@ximian.com> - - * e-url-entry.c (destroy): Removed unused variable. - -2003-03-06 Ettore Perazzoli <ettore@ximian.com> - - * e-dropdown-button.c (menu_deactivate_cb): Removed debugging - spew. - -2003-02-27 Chris Toshok <toshok@ximian.com> - - * e-url-entry.c (destroy): guard this so we don't try to free priv - multiple times. - -2003-02-25 Dan Winship <danw@ximian.com> - - * e-map.c (e_map_destroy): Use - g_signal_handlers_disconnect_by_func since - gtk_signal_disconnect_by_data doesn't seem to work right. - (e_map_set_scroll_adjustments): Likewise. - -2003-02-25 Jeffrey Stedfast <fejj@ximian.com> - - * e-dateedit.c (on_date_popup_date_selected): Same as below. - - * e-cell-date-edit.c (e_cell_date_edit_on_ok_clicked): Also - updated to use the new GDate API from glib 2.0 - - * test-calendar.c (on_selection_changed): Fixed to use glib 2.0's - GDate API. - - * e-calendar-item.c (e_calendar_item_get_week_number): Port to - glib 2.0's GDate API. - (e_calendar_item_set_selection): Same. - - * e-search-bar.c (append_xml_menu_item): Use - g_string_append_printf instead of g_string_sprintfa since the - latter is now deprecated. - (setup_bonobo_menus): Same. - - * e-filter-bar.c (do_advanced): Use gtk_window_set_resizable() - - * e-charset-picker.c: Fixes to make it build cleanly with - -DG_DISABLE_DEPRECATED - (add_charset): Escape _'s so we don't get underline weirdness due - to GtkLabel thinking the _ means to underline the next char. - (e_charset_picker_bonobo_ui_populate): Same here. - -2003-02-20 Dan Winship <danw@ximian.com> - - * Makefile.am: Make libemiscwidgets and libefilterbar dynamic - libraries instead of static so they can be portably linked into - the shlib components - -2003-02-05 Dan Winship <danw@ximian.com> - - * Makefile.am (INCLUDES): Define MAP_DIR in terms of $(imagesdir). - (widgetsincludedir): Define in terms of $(privincludedir) - -2003-02-02 Hans Petter Jansson <hpj@ximian.com> - - * e-calendar-item.[ch]: Use Pango to draw. - (e_calendar_item_class_init): Add font_desc and week_number_font_desc - args. - (e_calendar_item_get_arg): Ditto. - (e_calendar_item_set_arg): Ditto. - (e_calendar_item_draw_month): Use Pango. - (e_calendar_item_draw_day_numbers): Ditto. - - * e-calendar.c: Use Pango to draw. Specify just the size of the small - font to use, instead of all aspects of it. - (e_calendar_init): Produce the small font description and pass it to - the ECalendarItem. - -2003-02-01 Hans Petter Jansson <hpj@ximian.com> - - * e-dateedit.c (create_children): Don't request combo boxes that are - 0 pixels tall. - (position_date_popup): Make this work when the button doesn't have - its own window. - -2003-01-26 Chris Toshok <toshok@ximian.com> - - * e-clipped-label.c (e_clipped_label_new): init the layout to - NULL. - -2003-01-23 Ettore Perazzoli <ettore@ximian.com> - - * e-title-bar.c (e_title_bar_construct): Make the label bold using - the new args to e_clipped_label_new(). - - * e-clipped-label.c (build_layout): Honor ->font_size and ->layout - in the newly created PangoLayout. - (e_clipped_label_new): New args font_weight, font_size. - (e_clipped_label_size_request): Removed unused variables. - (e_clipped_label_expose): Likewise. - (e_clipped_label_expose): Likewise. - (e_clipped_label_set_text): Likewise. - (e_clipped_label_recalc_chars_displayed): Likewise. - - * e-clipped-label.h (struct _EClippedLabel): Add font_size, layout - members. - -2003-01-22 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am (widgetsincludedir): Version using $(BASE_VERSION). - -2003-01-14 Ettore Perazzoli <ettore@ximian.com> - - * e-multi-config-dialog.c (init): Change dialog from - OK/Apply/Cancel to Apply/Close/OK to be closer to the HIG. - -2003-01-14 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am (widgetsinclude_HEADERS): Ooops, remove - e-bonobo-widget.h. - (libemiscwidgets_a_SOURCES): Likewise, remove e-bonobo-widget.c. - -2003-01-14 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am (EXTRA_DIST): e-util-marshal.list, not - e-book-marshal.list. - (widgetsinclude_HEADERS): Add e-bonobo-widget.h. - (libemiscwidgets_a_SOURCES): Add e-bonobo-widget.c. - -2003-01-08 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am: Images are now in $(datadir)/evolution/images - instead of $(datadir)/images/evolution. - -2002-12-10 Not Zed <NotZed@Ximian.com> - - * e-multi-config-dialog.c (impl_response): Removed the - g_assert_not_reached(). If you hit the close button on your - window it would abort, treat same as close. - -2002-12-09 Chris Toshok <toshok@ximian.com> - - * e-clipped-label.[ch]: rework this to be faster and deal more - correctly with the ellipsis. - -2002-12-03 Not Zed <NotZed@Ximian.com> - - * e-search-bar.c (impl_dispose): dispose can be run multiple times - too ... bloody gobject crap. - -2002-11-27 Not Zed <NotZed@Ximian.com> - - * e-charset-picker.c: Add include of gnome-dialog.h - - * *.[ch]: ran fix.sh script over everything. - -2002-11-26 Not Zed <NotZed@Ximian.com> - - * e-combo-button.c (impl_button_press_event): Dont grab_add - anymore on the button, gtk_button is changed in gtk2 not to do - this anymore. - -2002-11-15 Chris Toshok <toshok@ximian.com> - - * e-clipped-label.c (build_layout): new function, build pango - layout for string. - (e_clipped_label_size_request): pango-ize this, make the size - requested dependent on the label. - (e_clipped_label_expose): pango-ize this. - (e_clipped_label_recalc_chars_displayed): pango-ize this. - -2002-11-14 Ettore Perazzoli <ettore@ximian.com> - - * e-clipped-label.c (e_clipped_label_finalize): New. - (e_clipped_label_destroy): Removed. - - * e-title-bar.c (destroy): Removed. - (impl_finalize): New. - (class_init): Install GObject::finalize handler instead of - GtkObject::destroy handler. - -2002-11-14 Ettore Perazzoli <ettore@ximian.com> - - * e-filter-bar.c: Changed to use g_object_*() and g_signal_*() - functions instead of gtk_object_*() and gtk_signal_*(). - (destroy): Removed. - (dispose): New. - (class_init): Install GObject::dispose handler instead of - GtkObject::destroy handler. - -2002-11-11 Chris Toshok <toshok@ximian.com> - - * e-dateedit.[ch]: port to GObject. - -2002-11-11 Ettore Perazzoli <ettore@ximian.com> - - * e-multi-config-dialog.c (init): Use GObject functions instead of - GtkObject throughout. - -2002-11-11 Ettore Perazzoli <ettore@ximian.com> - - * e-multi-config-dialog.c (impl_destroy): Removed. - (impl_finalize): New. - (class_init): Override GObject::finalize, not GtkObject::destroy. - - * e-config-page.c (impl_destroy): Removed. - (impl_finalize): New. - (class_init): Override GObject::finalize, not GtkObject::destroy. - - * e-multi-config-dialog.c: Converted to a GtkDialog subclass - [instead of GnomeDialog]. - -2002-11-07 JP Rosevear <jpr@ximian.com> - - * e-filter-bar.c: include gnome-dialog.h - -2002-11-06 Chris Toshok <toshok@ximian.com> - - * .cvsignore: ignore the generated marshal source. - - * Makefile.am: add marshal stuff. - - * e-util-marshal.list: marshaller list. - - * e-search-bar.[ch]: gobjectify this. - -2002-11-04 Ettore Perazzoli <ettore@ximian.com> - - * e-combo-button.c (impl_expose_event): Use - gtk_container_propagate_expose(). - -2002-11-01 Ettore Perazzoli <ettore@ximian.com> - - * test-title-bar.c: #include <libgnomeui/gnome-ui-init.h> instead - of <libgnomeui/gnome-init.h>. - (main): Use a GtkLabel, not a GtkText. - - * test-dropdown-button.c: #include <libgnomeui/gnome-ui-init.h> - instead of <libgnomeui/gnome-init.h>, and - <libgnomeui/gnome-stock-icons.h> instead of - <libgnomeui/gnome-stock.h>. - - * test-dateedit.c: #include <libgnomeui/gnome-ui-init.h> instead - of <libgnomeui/gnome-init.h>. - (main): Use gnome_program_init(). - - * test-calendar.c: #include <libgnomeui/gnome-ui-init.h>. - - * e-url-entry.c (button_clicked_cb): Pass NULL as the error arg to - gnome_url_show(). - - * e-title-bar.c (class_init): GTK2-ified. Use GTK_TYPE_POINTER - instead of GTK_TYPE_GDK_EVENT. - - * e-search-bar.c: Removed #include <libgnome/gnome-defs.h>. - #include <string.h>. - (class_init): GTK2-ified. - (e_search_bar_set_menu): Use GTK_OBJECT_GET_CLASS. - (e_search_bar_set_option): Likewise. - - * e-messagebox.c (e_message_box_class_init): Updated to put - finalize in GObjectClass intead of GtkObjectClass. - (e_message_box_finalize): Likewise. - (e_message_box_construct): Just check if pixmap is NULL, instead - of pixmap->pixmap. - - * e-messagebox.h: No {BEGIN,END}_GNOME_DECLS. - (e_message_box_get_type): Fix prototype, should return GtkType - instead of guint. - - * e-map.c: Removed e_map_signals, which was unused. - (e_map_finalize): Update for the fact that finalize is now in - GObjectClass. - (e_map_class_init): Likewise. Also GTK2-ify. - (e_map_draw): Removed. - (load_map_background): Pass NULL as the gdk_pixbuf_new_from_file() - error arg. - - * e-dropdown-button.c (menu_position_cb): Added arg push_in. - - * e-dateedit.c (e_date_edit_class_init): GTK2-ified. - (e_date_edit_show_date_popup): Constify local variable. - (e_date_edit_check_date_changed): Likewise. - (e_date_edit_check_time_changed): Likewise. - (e_date_edit_check_date_changed): Likewise. - (field_set_to_none): Constify arg text. - (e_date_edit_parse_date): Constify arg date_text. - (e_date_edit_parse_time): Constify arg time_text. - - * e-dateedit.h: No {BEGIN,END}_GNOME_DECLS. - - * e-combo-button.c (menu_position_func): New arg push_in. - (impl_draw): Removed. - (class_init): GTK2-ified. - (init): style->xthickness instead of style->klass->xthickness. - - * e-config-page.c (class_init): GTK2-ified. - - * e-clipped-label.c (e_clipped_label_size_request): Use - gtk_style_get_font(). - (e_clipped_label_recalc_chars_displayed): Likewise. - (e_clipped_label_expose): Likewise. - - * e-charset-picker.c: No #include <libgnome/gnome-defs.h> or - <libgnome/gnome-i18n.h> or <libgnome/gnome-stock.h>. Also no - <gal/gunicode.h>. On the other hand, #include <gtk/gtkvbox.h>. - (e_charset_picker_new): Make locale_charset const. - (e_charset_picker_bonobo_ui_populate): Make locale_charset const. - - * e-cell-percent.c: #include <stdio.h> for sscanf(). - - * e-cell-percent.h: Removed BEGIN_GNOME_DECLS, END_GNOME_DECLS. - - * e-cell-percent.c: Do not #include <libgnomeui/gnome-stock.h>. - - * e-cell-date-edit.c: Do not #include <libgnomeui/gnome-stock.h>. - Added a bunch of #includes for GTK stuff. - (e_cell_date_edit_on_ok_clicked): Constified variable. - - * e-calendar-item.c: Do not #include <libgnome/gnome-defs.h>. - (e_calendar_item_class_init): Use GTK_TYPE_POINTER instead of - GTK_TYPE_GDK_POINTER. - (e_calendar_item_class_init): GTK_CLASS_TYPE() instead of - object_class->type. - (e_calendar_item_class_init): No gtk_object_class_add_signals(). - (e_calendar_item_update): style->[xy]thickness instead of - style->klass->[xy]thickness. - (e_calendar_item_draw): Likewise. - (e_calendar_item_draw_month): Likewise. - (e_calendar_item_draw_month): Likewise. - (e_calendar_item_recalc_sizes): Likewise. - (e_calendar_item_convert_position_to_day): Likewise. - (e_calendar_item_update): Use gtk_style_get_font(). - (e_calendar_item_draw_month): Likewise. - (e_calendar_item_draw_day_numbers): Likewise. - (e_calendar_item_convert_position_to_day): Likewise. - (e_calendar_item_recalc_sizes): Likewise. - (e_calendar_item_signal_emission_idle_cb): Removed check for - GTK_OBJECT_DESTROY. - (e_calendar_item_position_menu): Add push_in arg. - - * e-calendar.c (e_calendar_draw): Remove. - (e_calendar_size_request): style->[xy]thickness instead of - style->klass->[xy]thickness. - (e_calendar_size_allocate): Likewise. - (e_calendar_get_border_size): Likewise. - (e_calendar_size_allocate): Get font from style with - gtk_style_get_font(). - - * e-calendar-item.h: #include <libgnomecanvas/gnome-canvas.h> - instead of <libgnomeui/gnome-canvas.h>. - * e-calendar.c: Likewise for - <libgnomecanvas/gnome-canvas-widget.h>. - - * Makefile.am: Don't compile e-bonobo-widget.c, e-bonobo-widget.h. - [Unused right now, so we can avoid porting until, and if, they are - needed.] - - * e-filter-bar.c: Do not #include <libgnome/gnome-defs.h>. Do not - #include <libgnomeui/gnome-stock.h>. #include <gtk/gtksignal.h>. - Also remove gal #includes. - (do_advanced): Add some GTK_SIGNAL_FUNC() casts. - (menubar_activated): Likewise. - (menubar_activated): Likewise. - -2002-10-30 Ettore Perazzoli <ettore@ximian.com> - - * e-map.h: Do not #include <libgnome/gnome-defs.h>. - -2002-10-28 Jeffrey Stedfast <fejj@ximian.com> - - * e-search-bar.c (clear_search): Emit a search_activated signal. - (e_search_bar_set_item_id): Revert to original implementation. - -2002-10-23 Jeffrey Stedfast <fejj@ximian.com> - - * e-filter-bar.c (option_changed): If the clear button was - pressed, we want the entry to be sensitive (not insensitive). - - * e-search-bar.c (e_search_bar_set_item_id): If the item id is - CLEAR_ID, we want to select the first item (0) but still set the - esb->item_id to CLEAR_ID. - (set_find_now_sensitive): Don't bother getting the GtkEntry text, - we don't even use it? - (clear_search): Set the item id as E_SEARCHBAR_CLEAR_ID rather - than 0 so that it can be checked for. - -2002-10-23 Ettore Perazzoli <ettore@ximian.com> - - [#26128, thanks to Federico Mena Quintero <federico@ximian.com> - for providing this fix.] - - * e-search-bar.c (activate_by_subitems): gtk_widget_grab_focus() - on the entry when adding it in. - -2002-10-11 JP Rosevear <jpr@ximian.com> - - * e-calendar-item.c (e_calendar_item_ensure_days_visible): check - if the selection fits in the leftover days - -2002-09-30 Ettore Perazzoli <ettore@ximian.com> - - [Add a small delay to the switching of pages in the multi-config - dialog. This makes keyboard navigation slightly nicer, and also - happens to fix mysterious bug #28931.] - - * e-multi-config-dialog.c: New constant SWITCH_PAGE_INTERVAL. New - members set_page_timeout_id and set_page_timeout_page in - EMultiConfigDialogPrivate. - (init): Initialize new member variables. - (table_cursor_change_callback): Set up a timeout instead of - switching right away. - (set_page_timeout_callback): Timeout function to switch page after - a small delay. - (impl_destroy): Remove a pending timeout. - -2002-09-27 Ettore Perazzoli <ettore@ximian.com> - - * e-multi-config-dialog.c (create_page_container): Don't set up - the description label here. - -2002-09-24 Not Zed <NotZed@Ximian.com> - - * e-search-bar.c (clear_search): Clear search by setting text to - "" and search to first search. - - * e-filter-bar.c (option_changed): Revert change of 2002-08-29 - below, always do advanced search if we have the advanced id. - Handle clear elsewhere. - (menubar_activated): If we get the advanced menu, set the advanced - option menu, and let that handle it, rather than doing it - ourselves. For #31060 & #29625. - -2002-09-22 Dan Winship <danw@ximian.com> - - * e-filter-bar.c: Fix some non-ANSI switch statements. - -2002-08-29 Chris Toshok <toshok@ximian.com> - - * e-search-bar.c (subitem_activated_cb): need to make the find now - button sensitive when you select something from a submenu. - -2002-08-29 Peter Williams <peterw@ximian.com> - - * e-filter-bar.c (option_changed): If the item is ADVANCED_ID, check - the query and efb->setquery to see whether we should pop up the advanced - dialog or clear an advanced search. Fixes #29625. - -2002-08-21 Peter Williams <peterw@ximian.com> - - * e-search-bar.c (clear_search): Don't set the item id; clear search - isn't in the menu anymore. Fixes #29211. - -2002-08-22 JP Rosevear <jpr@ximian.com> - - * e-dateedit.c (e_date_edit_parse_date): don't adjust for two - digit dates here, the e_time_parse routines do that now - -2002-08-06 Not Zed <NotZed@Ximian.com> - - * e-filter-bar.c (menubar_activated): Set the query text into the - filter name when saving it, for #10979. - -2002-07-24 Ettore Perazzoli <ettore@ximian.com> - - * e-calendar-item.c (e_calendar_item_signal_emission_idle_cb): Add - missing cast. - (e_calendar_item_signal_emission_idle_cb): Likewise. - - * e-search-bar.c (init): Don't initialize dropdown_menu here - anymore since we got rid of it. - - * e-search-bar.h (struct _ESearchBar): Removed member - dropdown_menu. - -2002-07-22 Peter Williams <peterw@ximian.com> - - * e-filter-bar.c (do_advanced): Break out the code for creating - the advanced rule editor into a separate function, so that... - (menubar_activated): ... can also create an Advanced dialog; - needed when the Search menu's advanced button is used. - (option_changed): Change this to call the function instead of - having all the code to itself. - - * e-search-bar.h: Add id's for the FIND_NOW and CLEAR actions - so that other code (eg, EFilterBar) doesn't get confused by - an old id being used when the search-activated signal gets - emitted. - - * e-search-bar.c (clear_search): Set the item_id to CLEAR - before emitting the signal. - (search_now_verb_cb): Just make this emit query_changed, - as the button in the toolbar does. - -2002-07-17 Ettore Perazzoli <ettore@ximian.com> - - [Fix #27854, spurious warnings from ESearchBar.] - - * e-search-bar.c (setup_standard_verbs): Set the <commands> part - of the XML manually with bonobo_ui_component_set() otherwise the - verbs don't get added on the other side for us to be able to do - bonobo_ui_component_set_prop(). - (setup_bonobo_menus): New, menu setup code taken from - update_bonobo_menus(). - (remove_bonobo_menus): New; removes the Bonobo menus. - (update_bonobo_menus): Rewritten, just call remove_bonobo_menus() - first and setup_bonobo_menus() then. - (e_search_bar_set_ui_component): Call setup_bonobo_menus() and - remove_bonobo_menus() as appropriate instead of just - update_bonobo_menus(). - -2002-07-02 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (update_sensitivity): Removed. - (set_find_now_sensitive): New. - (entry_changed_cb): Always make the "Find Now" button and menu - item sensitive here. - (emit_search_activated): ...And here, always insensitive. - (setup_standard_verbs): Always start up insensitive. - (activate_button_clicked_cb): Make the entry grab the focus. - (clear_button_clicked_cb): Likewise. - -2002-07-02 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (subitem_activated_cb): Don't emit - "search_activated" here. - (e_search_bar_set_subitem_id): And not here either. - (e_search_bar_set_text): Same. - -2002-07-02 Ettore Perazzoli <ettore@ximian.com> - - [Fix #7736.] - - * e-search-bar.c (activate_by_subitems): Don't set the entry to be - an empty string here. - -2002-06-18 Ettore Perazzoli <ettore@ximian.com> - - * e-filter-bar.c (build_items): Put the numbers in front of the - rules only if type is zero [i.e. not in the option menu]. - -2002-05-30 Ettore Perazzoli <ettore@ximian.com> - - * e-filter-bar.c (dup_item_no_subitems): New helper function. - (build_items): g_strdup() the text for all the items. Prepend the - user-defined items with an order number. - (free_built_items): New function to free the array returned by - build_items, freeing the text strings too [since now they are - newly allocated instead of just pointing to the exiting ones]. - (generate_menu): Call free_built_items() on the built items - instead of just g_array_free(). - (set_option): Likewise. - -2002-05-22 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (update_bonobo_menus): Put the stuff in - /menu/Searchplaceholder/Search instead of /menu/Search. - - * e-combo-button.c (impl_draw): New, overrides GtkWidget::draw. - (impl_expose_event): New, overrides GtkWidget::expose_event. - -2002-05-20 Ettore Perazzoli <ettore@ximian.com> - - * e-filter-bar.c (build_items): Prepend the advanced menu with a - separator. - - * e-filter-bar.h: Add E_FILTERBAR_SEPARATOR. Rename the "Advanced - Search..." menu item into "Advanced...". - -2002-05-20 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (activate_by_subitems): Strip underscores from - the menu item labels. - -2002-04-26 Christopher James Lahey <clahey@ximian.com> - - * e-multi-config-dialog.c (fill_in_pixbufs): Don't print out the - colors here unless debugging is turned on. - -2002-04-22 Christopher James Lahey <clahey@ximian.com> - - * e-multi-config-dialog.c (e_multi_config_dialog_add_page): - Updated this to match the changed function name in gal. - -2002-04-09 Dan Winship <danw@ximian.com> - - * e-search-bar.c (e_search_bar_construct, add_button): Oops. The - previous change made the search bar widgets get packed in the - wrong order. So use gtk_box_pack_end instead in add_button and add - the two buttons in reverse order. It's all good now. Noticed by - Ettore, who I then promptly blamed for it. Sorry Ettore! - -2002-04-08 Dan Winship <danw@ximian.com> - - * e-search-bar.c (e_search_bar_construct): Construct the buttons - earlier so that the option-menu-setup code that tries to adjust - the button sensitivity won't fail and g_warn. - -2002-04-06 JP Rosevear <jpr@ximian.com> - - * e-multi-config-dialog.c (e_multi_config_dialog_show_page): show - a specific page number - - * e-multi-config-dialog.h: new proto - -2002-03-29 Ettore Perazzoli <ettore@ximian.com> - - * e-multi-config-dialog.c: Change the ETable specs so it doesn't - sort. - -2002-03-20 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (update_bonobo_menus): Add accelerators for "Find - Now" and "Clear". - - * e-filter-bar.h: Change search labels as suggested in Anna's - redesign [#16246]. - -2002-03-20 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (update_bonobo_menus): Remove all the SearchBar - items before setting them up again. - (free_menu_items): New. - (impl_destroy): Call it. - (set_menu): Call it here too before adding the new items. - -2002-03-18 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (verb_name_from_id): New. - (e_search_bar_set_menu_sensitive): Rewritten using it. - -2002-03-18 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (update_bonobo_menus): No accelerator for - "FindNow". - (add_button): Add a one-pixel padding to the button. - -2002-03-18 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (update_bonobo_menus): Rename the "Search Now" - menu entry to "Find Now". Rename the corresponding verb to - "ESearchBar:FindNow". - (update_sensitivity): Updated accordingly. - (setup_standard_verbs): Likewise. - -2002-03-18 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (update_sensitivity): New halper function to - update the sensitivity of the commands. - (entry_changed_cb): New callback to make the activate_button and - the "Find Now" verb sensitive only if the entry has some contents. - (activate_by_subitems): Connect the callback here. - (setup_standard_verbs): Call update_sensitivity() here. - -2002-03-18 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (init): Init clear_button to NULL. - (add_button): New helper function to add a button to the search - bar with the right spacing etc. - (clear_search): New helper function. - (add_activate_button): Removed. - (clear_button_clicked_cb): New. - (e_search_bar_construct): Just add the button here using - `add_button'. Also add a clear_button. - (clear_verb_cb): Rewritten by means of `clear_search()'. - - * e-search-bar.h (ESearchBar): Add clear_button. - -2002-03-18 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (search_now_verb_cb): New, implementation for a - new "SearchNow" verb. - (setup_standard_verbs): Create verb here. - (update_bonobo_menus): Add SearchNow menu item. - -2002-03-18 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (clear_verb_cb): New. - (setup_standard_verbs): New. - (e_search_bar_set_ui_component): Call it if a new - BonoboUIComponent is set. - (append_xml_menu_item): New helper function. - (update_bonobo_menus): Use it. Also add a "Clear" menu item. - (e_search_bar_construct): @menu_items can be NULL now. - (e_search_bar_new): Same here. - (set_menu): Work with NULL items. - - * e-filter-bar.c (menubar_activated): Don't handle - E_FILTERBAR_RESET_ID anymore. - - * e-filter-bar.h: Remove `E_FILTERBAR_RESET_ID' and `E_FILTERBAR_RESET'. - -2002-03-15 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (init): Init various members to NULL. - (set_dropdown): Removed. - (add_dropdown): Removed. - (set_menu): New. - (add_menu_items): New. - (set_option): No need to setup the dropdown size here anymore. - (verb_cb): Function implementing the search menu verbs. - (update_bonobo_menus): New. - (e_search_bar_set_ui_component): New. - - * e-search-bar.h: Remove the dropdown button stuff from struct - ESearchBar. Add `uic' and `items' members. - - * e-filter-bar.c (e_filter_bar_new): Get a @uic arg. - -2002-03-15 Christopher James Lahey <clahey@ximian.com> - - * e-multi-config-dialog.c (init): Set horizontal scroll policy to - GTK_POLICY_NEVER here. Don't set usize here. Changed RGBA_COLOR - to RGB_COLOR. Turned on horizontal resize. - -2002-03-13 Jeffrey Stedfast <fejj@ximian.com> - - * e-charset-picker.c (add_charset): If the charset item doesn't - have a class (aka "Unknown"), don't write a class name, instead - just give the charset name as the menu item label. Fixes bug - #14753. - -2002-03-13 Christopher James Lahey <clahey@ximian.com> - - * e-multi-config-dialog.c: Added alpha blending here. - -2002-03-12 Christopher James Lahey <clahey@ximian.com> - - * e-multi-config-dialog.c: Removed Page struct. - (e_multi_config_dialog_add_page): Select the initial row after - appending to the model. - -2002-03-12 Christopher James Lahey <clahey@ximian.com> - - * e-multi-config-dialog.c (init): Use Use e_table_memory_store - instead of e_table_memory_callbacks. Use e_cell_vbox to include a - pixbuf cell and a text cell. - -2002-03-11 Ettore Perazzoli <ettore@ximian.com> - - * e-multi-config-dialog.c (init): Use GNOME_STOCK_BUTTON_CLOSE, - not GNOME_STOCK_BUTTON_CANCEL. - (do_close): Renamed from `cancel'. - (do_apply): Renamed from `apply'. - (do_ok): Renamed from `ok'. - -2002-03-09 Ettore Perazzoli <ettore@ximian.com> - - * e-multi-config-dialog.c: Rename Page.widget -> Page.page_widget; - it is now an EConfigPage instead of just a GtkWidget. Add - `num_unapplied' to EMultiConfigDialogPrivate. Derive from - GnomeDialog, not GtkWindow. - (update_buttons): New function to update the sensitiveness of the - buttons according to whether all the settings have been applied or - not. - (page_new): Likewise. - (create_page_container): Renamed from `create_page_widget'. - (init): Add Apply/OK/Cancel buttons to the dialog. Init - ->num_unapplied to zero. - (page_changed_callback): New, callback for the page's "changed" - signal. - (e_multi_config_dialog_add_page): Connect the callback, update - ->num_unapplied, update the buttons by calling `update_buttons'. - (ok): New function for handling the OK button. - (apply): New function for handling the Apply button. - (cancel): New function for handling the Cancel button. - (impl_clicked): Implementation for the GnomeDialog's ::clicked - signal. - (class_init): Install. - - * test-multi-config-dialog.c (add_pages): Update to use - EConfigPages instead of plain GtkWidgets. - - * e-multi-config-dialog.c, e-multi-config-dialog.h: Derive from - GnomeDialog, not GtkWindow. - - * e-config-page.c: New. - * e-config-page.h: New. - -2002-03-07 Ettore Perazzoli <ettore@ximian.com> - - * e-multi-config-dialog.c: Don't display a header in the table on - the left. - -2002-03-05 Ettore Perazzoli <ettore@ximian.com> - - * test-multi-config-dialog.c: New. - * test-multi-config-dialog.h: New. - - * e-multi-config-dialog.c: New. - * e-multi-config-dialog.h: New. - -2002-02-24 Chris Toshok <toshok@ximian.com> - - * e-filter-bar.c (init): preserve behavior - hook search_activated - signal to the same function as query_changed. - - * e-search-bar.c (emit_search_activated): new function. - (entry_activated_cb): use emit_search_activated instead of - emit_query_changed. - (subitem_activated_cb): same. - (activate_button_clicked_cb): same. - (class_init): add the search_activated signal. - (idle_activate_hack): rename idle_change_hack to this, and - emit_search_activated. - (e_search_bar_construct): idle_change_hack -> idle_activate_hack. - (e_search_bar_set_subitem_id): emit_search_activated instead of - emit_query_changed. - (e_search_bar_set_text): same. - - * e-search-bar.h (struct _ESearchBarClass): add a search_activated - signal. - -2002-02-21 Ettore Perazzoli <ettore@ximian.com> - - * e-combo-button.c (set_icon): gtk_widget_show() the icon_pixmap - if the specified icon is not NULL. - -2002-02-20 Ettore Perazzoli <ettore@ximian.com> - - * e-combo-button.c (set_icon): Work with a NULL @pixbuf as well - [in that case, just hide the current icon widget]. - (e_combo_button_set_icon): Remove the precondition about @pixbuf - being non-NULL. - -2002-02-08 JP Rosevear <jpr@ximian.com> - - * e-url-button.[hc]: remove briefly used files - -2002-02-08 JP Rosevear <jpr@ximian.com> - - * e-url-entry.[hc]: button/entry combo that launchs the gnome url - handler on the entry text when the button is clicked - - * Makefile.am: build new files - -2002-02-08 JP Rosevear <jpr@ximian.com> - - * Makefile.am: build new files - - * e-url-button.[hc]: button widget that when clicked slurps the - url of an entry and launchs the gnome url handler on the text - -2002-01-27 Ettore Perazzoli <ettore@ximian.com> - - * Makefile.am: Use GNOME_FULL_CFLAGS and GNOME_FULL_LIBS. - -2002-01-23 Ettore Perazzoli <ettore@ximian.com> - - * e-combo-button.c: Remove member `separator' from - `EComboButtonPrivate'. New members `icon', `label'. - (init): There shall be no separator no more. Init `icon' and - `label' to %NULL. - (e_combo_button_construct): Set no relief. - (e_combo_button_new): Don't get a @menu arg anymore. - (e_combo_button_construct): Likewise. - (e_combo_button_set_icon): New. - (e_combo_button_set_label): New. - (e_combo_button_set_menu): New. - (impl_clicked): New, overriding the "clicked" method for - GtkButton. - (class_init): Install. - (impl_button_release_event): Removed. - (class_init): No need to override ::release_event with this - anymore. - (impl_released): New, override for the GtkButton::released method. - (class_init): Install. - -2002-01-04 Jeffrey Stedfast <fejj@ximian.com> - - * e-charset-picker.c: Added iso-8859-8 (Hebrew; Visual) to the - list of charsets in the menu. Fixes bug #15655. - -2001-12-20 Ettore Perazzoli <ettore@ximian.com> - - * e-combo-button.c: New. - * e-combo-button.h: New. - -2001-11-21 Not Zed <NotZed@Ximian.com> - - * e-filter-bar.c (menubar_activated): Mark the dialogue as already - up so we dont allow multiple dialogues up. Behaviour fix part of - #15745. - -2001-11-28 Damon Chaplin <damon@ximian.com> - - * e-map.c: updated to new version from Ximian Setup Tools. - Fixes bug #7641. - -2001-11-27 Damon Chaplin <damon@ximian.com> - - * e-dateedit.c (e_date_edit_get_date): if allow_no_date_set is FALSE, - return the last valid date entered, even if the field is currently - empty. Fixes bug #15749. - -2001-11-05 JP Rosevear <jpr@ximian.com> - - * e-dateedit.c (e_date_edit_set_date_and_time_of_day): set both - the date and the time of day in one call, creating only a single - changed signal - - * e-dateedit.h: add proto - -2001-11-05 Christopher James Lahey <clahey@ximian.com> - -Based on a patch by Damon Chaplin <damon@ximian.com> - - * e-cell-date-edit.c: Connect to the button_press signal on the - popup and do the grab correctly so that this dialog behaves - properly when the user clicks it away. Also, changed all - instances of setting of popup_shown field of ECellPopup to call - e_cell_popup_set_shown. Fixes Ximian bug #14016. - -2001-10-31 <NotZed@Ximian.com> - - * e-filter-bar.c (build_items): Snotty code so we only disconnect - to rules we no longer have, etc. - -2001-11-01 Not Zed <NotZed@Ximian.com> - - * e-filter-bar.c (build_items): Ref and connect to rule changed - here, also clear out previous ref's. - (generate_menu): No longer connect to rules, or reset rule array. - (set_option): Dont reset option rules array. - (context_rule_removed): Disconnect changed event on rule. - (clear_rules): Fujnction to clear rules from an array. - (destroy): Disconnect from context signals, and clear rules arrays. - - * e-filter-bar.h: Remove hash table for change id's. - -2001-10-30 Damon Chaplin <damon@ximian.com> - - * e-dateedit.c (e_date_edit_set_time_of_day): emit signal when time - set to none/empty. - -2001-10-30 <NotZed@Ximian.com> - - * e-filter-bar.c (generate_menu): Hook to rule changed events. - (destroy): Free change id table/unconnect to signals. - (init): Setup change id table. - (e_filter_bar_new): Hook onto rule removed signal. - (context_rule_removed): If rule removed, disconnect from signal handler. - (rule_changed): For changed rules, also rebuild menu. Fixed #12233. - -2001-10-30 Damon Chaplin <damon@ximian.com> - - * e-cell-date-edit.c (e_cell_date_edit_set_popup_values): try to parse - just a date first, and if that works we assume it is a DATE value, - so we clear the time field in the popup. - (e_cell_date_edit_on_ok_clicked): if the time field is empty, use a - DATE value. - Also removed some debug messages. - -2001-10-30 <NotZed@Ximian.com> - - * e-filter-bar.c (set_option): Set the item to the option_base on - it, so the current item is set. Fix for #7081. - -2001-10-30 Christopher James Lahey <clahey@ximian.com> - - * e-cell-date-edit.c (e_cell_date_edit_get_popup_pos): Adapt to - the new ECellPopup signature. - -2001-10-29 Damon Chaplin <damon@ximian.com> - - * e-calendar-item.c (e_calendar_item_signal_emission_idle_cb): ref - the ECalendarItem and check if it gets destroyed, to try to avoid a - free memory write. - - * e-dateedit.c (e_date_edit_set_time_of_day): allow setting the time - to empty by passing hour as -1. - -2001-10-23 Jeffrey Stedfast <fejj@ximian.com> - - * e-filter-bar.c (rule_editor_clicked): Don't add the menu item - here, do this in the context_changed signal callback instead. - (context_changed): rebuild the search menu. - (set_menu): Copy the items into a default_items list so we can - regenerate the menu when something changes. Then call - generate_menu(). - (generate_menu): Do what set_menu() used to do. - (e_filter_bar_new): Don't do a rule_context_load() anymore since - we don't need to. - (destroy): free the default_items list. - -2001-10-23 Damon Chaplin <damon@ximian.com> - - * e-search-bar.c (copy_subitems): copy the translate field over as - well. Should fix an uninitialized memory read. - -2001-10-23 Damon Chaplin <damon@ximian.com> - - * e-dateedit.c (e_date_edit_check_date_changed): - (e_date_edit_check_time_changed): clear the struct tm fields to keep - purify happy. - -2001-10-22 Damon Chaplin <damon@ximian.com> - - * e-cell-date-edit.c (e_cell_date_edit_set_popup_values): - (e_cell_date_edit_update_cell): use the new ECellText methods to get - the text and set the value. - - * e-cell-percent.c: new subclass of ECellText to display & edit a - percentage value. - -2001-10-20 Jon Trowbridge <trow@ximian.com> - - * e-dateedit.c (e_date_edit_check_date_changed): Keep us from - reading tmp_tm uninitialized, so purify won't complain. - -2001-10-09 Jeffrey Stedfast <fejj@ximian.com> - - * e-charset-picker.c (e_charset_picker_bonobo_ui_populate): Now - takes a menu path argument. - -2001-10-04 Rodrigo Moya <rodrigo@ximian.com> - - * Makefile.am: added BONOBO_GNOME_CFLAGS to make it compile with - latest Bonobo - -2001-10-04 Christopher James Lahey <clahey@ximian.com> - - * e-cell-date-edit.c (e_cell_date_edit_get_popup_pos): Call - gnome_canvas_world_to_window here. Finishes fixing Ximian bug - #2613. - -2001-09-18 Damon Chaplin <damon@ximian.com> - - * e-dateedit.c (e_date_edit_grab_focus): grab focus to the date entry - or the time entry, depending on which is visible. Fixes bug #7237. - -2001-09-16 Chris Toshok <toshok@ximian.com> - - * e-dateedit.h: add prototype for e_date_edit_set_editable. - - * e-dateedit.c (e_date_edit_set_editable): new function, analogous - to gtk_entry_set_editable: let's the user select but not edit (or - in this case, bring up the calendar view.) - -2001-09-13 Jeffrey Stedfast <fejj@ximian.com> - - * e-search-bar.c (set_dropdown): Don't unref the old dropdown, we - don't "own" it. - -2001-09-13 Larry Ewing <lewing@ximian.com> - - * e-search-bar.c (set_dropdown): unref the old dropdown_menu if - there is one. - -2001-09-12 Jeffrey Stedfast <fejj@ximian.com> - - * e-filter-bar.c (menubar_activated): No longer need the context - in order to clone a FilterRule. - (option_changed): Same. - -2001-09-06 Anna Marie Dirks <anna@ximian.com> - - * e-filter-bar.c: added a default size for the saved search - dialog of 600 x 300 such that it opens at a usable size. - this fixes bug #7083. - -2001-09-05 Anna Marie Dirks <anna@ximian.com> - - * e-search-bar.c (add_activate_button): added a wee bit of - padding around the find now label in response to bug #7049. - -2001-08-23 Federico Mena Quintero <federico@ximian.com> - - * e-search-bar.c (e_search_bar_set_ids): New function to set the - item_id and the subitem_id simultaneously. - -2001-08-16 Damon Chaplin <damon@ximian.com> - - * e-dateedit.c: added e_date_edit_get/set_make_time_insensitive() - which makes the time field insensitive rather than hiding it. - I'm not sure we're going to actually use this now, though. - -2001-08-16 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (activate_by_subitems): Set the horizontal usize - of the entry to 4. - -2001-08-16 Jon Trowbridge <trow@ximian.com> - - * e-filter-bar.c (option_changed): Adjusted for renamed ESearchBar - functions. - (menubar_activated): Adjusted for renamed ESearchBar functions. - - * e-search-bar.c: Renames some of the horrible function names: - s/option_choice/item_id/, s/suboption_choice/subitem_id/. - -2001-08-14 Federico Mena Quintero <federico@ximian.com> - - * e-cell-date-edit.c (e_cell_date_edit_destroy): Destroy, do not - unref, the popup_window. - -2001-08-14 Federico Mena Quintero <federico@ximian.com> - - * e-search-bar.c (activate_by_subitems): Correctness fixes for - when the entry and submenu must be interchanged. - -2001-08-14 Federico Mena Quintero <federico@ximian.com> - - *Please* add accessor functions instead of just object arguments! - - * e-search-bar.c (e_search_bar_set_option_choice): New function. - (e_search_bar_set_suboption_choice): New function. - (e_search_bar_set_text): New function. - (impl_set_arg): Use the functions above instead of setting things - directly. - (add_dropdown): If the item is a separator, set it as insensitive. - (activate_by_subitems): Handle the translate field in the subitem - structure. Also, allow the creation of separators by having NULL - text strings in the subitems. - (set_option): If the item is a separator, set it as insensitive. - (set_option): Do not use the subitem_garbage hack. Do proper - memory management instead. - (e_search_bar_set_suboption): New function to change the suboption - items in a search bar. - - * e-search-bar.h (ESearchBarSubitem): Added a `translate' field. - This API sucks so much it is not funny. - (ESearchBar): Removed the subitem_garbage hack. Please do proper - memory management. - -2001-08-14 Jon Trowbridge <trow@ximian.com> - - * e-search-bar.c (activate_by_subitems): Oops... initial - suboption_choice should be subitems[0].id, not 0. - -2001-08-10 Jeffrey Stedfast <fejj@ximian.com> - - * e-search-bar.c (impl_destroy): Oops, we didn't need to unref all - of the widgets, just a few. - -2001-08-10 Jon Trowbridge <trow@ximian.com> - - * e-filter-bar.h: Set the subitems to NULL in the pre-defined - ESearchBarItems. - - * e-filter-bar.c (rule_editor_clicked): Set the ESearchBarItem's - subitems to NULL. - (build_items): Set the ESearchBarItem's subitems to NULL. - (e_filter_bar_new): Set the ESearchBarItem's subitems to NULL. - - * e-search-bar.c: Added support for subitems, so that a search - option can key off of another option menu rather than just an - entry. - -2001-08-10 Jeffrey Stedfast <fejj@ximian.com> - - * e-filter-bar.c (destroy): Free all the goodies that we allocate - at construct time and unref the rule context. - (class_init): Override the destroy method. - -2001-08-09 Anna Marie Dirks <anna@ximian.com> - - Fixes bug #6918 - - * e-filter-bar.h: Changed the "Save As.." menu item to - "Add to Saved Searches". - -2001-08-09 Anna Marie Dirks <anna@ximian.com> - * e-filter-bar.h : changed the E_FILTERBAR_RESET label from - "Show All" to "Clear" to alleviate confusion about whether - "Show All" means that hidden messages are also shown or not. - (See ximian bug #6743) - -2001-08-09 Federico Mena Quintero <federico@ximian.com> - - * e-calendar-item.c (e_calendar_item_destroy): Chain to the - destroy handler in the parent class! - - * e-clipped-label.c (e_clipped_label_destroy): Likewise. Sigh. - - * e-dropdown-button.c (impl_destroy): Likewise. Double sigh. - -2001-08-08 Anna Marie Dirks <anna@ximian.com> - - * e-search-bar.c: Re-labeled the "Activate" button "Find Now". - -2001-08-08 Ettore Perazzoli <ettore@ximian.com> - - * e-bonobo-widget.c: New. - * e-bonobo-widget.h: New. - -2001-08-05 Ettore Perazzoli <ettore@ximian.com> - - [Added an "Activate" button to the search bar.] - - * e-search-bar.c (submit_button_clicked_cb): Callback for the - "clicked" signal on the activate button. - (add_submit): New function to add a "Activate" button on the right - of the entry. - (e_search_bar_construct): Call it. - (add_spacer): Removed. - (e_search_bar_construct): Don't call it. - (find_id): Remove debugging message. - (put_in_spacer_widget): New utility function to create a - GtkEventBox with a border width of one and put a widget into it. - -2001-08-04 Ettore Perazzoli <ettore@ximian.com> - - * e-title-bar.c: Make the close icon as large as the pin icon so - the bar doesn't change size when it switches between them. - (e_title_bar_construct): Add some horizontal padding to the label - to make it look nicer. - -2001-08-03 Federico Mena Quintero <federico@ximian.com> - - * e-calendar-item.c (e_calendar_item_mark_day): Request an update. - (e_calendar_item_mark_days): Likewise. - -2001-07-24 Damon Chaplin <damon@ximian.com> - - * e-calendar-item.c (e_calendar_item_show_popup_menu): don't show the - year in the popup submenu for the months, and center the months. - Fixes - -2001-07-18 Jeffrey Stedfast <fejj@ximian.com> - - * e-filter-bar.c (rule_editor_destroyed): When the dialog gets - closed, always make sure the entry widget becomes sensitive again. - (menubar_activated): Don't use FILTER_SOURCE_INCOMING because - that's not what we want, we want (I think) NULL (at least with - NULL, bug #4490 goes away). - -2001-07-16 Federico Mena Quintero <federico@ximian.com> - - Fixes bug #2901. - - * e-dateedit.c (e_date_edit_parse_date): Use e_time_parse_date(). - (e_date_edit_parse_time): Use e_time_parse_time(). - -2001-07-17 jacob berkman <jacob@ximian.com> - - * e-search-bar.c (set_dropdown): don't unset _CAN_FOCUS - - * e-dropdown-button.c (menu_deactivate_cb): un-toggle ourself - (impl_toggled): override the toggled rather than clicked signal. - if we are active, popup the menu; else, popdown - - these fix ximian #2016 - -2001-07-02 Damon Chaplin <damon@ximian.com> - - * e-calendar-item.c: - * e-cell-date-edit.c: - * e-dateedit.c: added functions to set a callback to get the current - time, which is used instead of localtime(). We need this as we have to - use our own timezones. - -2001-07-02 Jeffrey Stedfast <fejj@ximian.com> - - * e-charset-picker.c (e_charset_picker_bonobo_ui_populate): Take a - callback function and user_data so that we can add listeners to - each of the menu items. - -2001-07-02 Jeffrey Stedfast <fejj@ximian.com> - - * Makefile.am: Updated to build e-charset-picker.c - - * e-charset-picker.[c,h]: Moved here from gal. - (e_charset_picker_bonobo_ui_populate): New function to populate a - bonobo-ui with a charset picker menu. - -2001-06-14 Damon Chaplin <damon@ximian.com> - - * e-map.[hc]: copied the EMap widget verbatim from Ximian Setup Tools. - Hmm. Maybe it should go in gal, but its not a very general widget. - - * Makefile.am (INCLUDES): defined MAP_DIR for e-map.c. - (libemiscwidgets_a_SOURCES): added e-map.[hc]. - -2001-05-31 Federico Mena Quintero <federico@ximian.com> - - * e-dropdown-button.c (impl_button_press_event): Removed unused - variable. - - * e-cell-date-edit.c (e_cell_date_edit_rebuild_time_list): Removed - unused variable. - -2001-05-07 Gediminas Paulauskas <menesis@delfi.lt> - - * misc/e-filter-bar.h: xgettext does not find N_() in #defines. So - created fake enum. Also removed spaces before "..." - -2001-04-24 Kjartan Maraas <kmaraas@gnome.org> - - * e-calendar-item.c, e-calendar.c, e-cell-date-edit.c, - e-clipped-label.c, e-dateedit.c, e-dropdown-button: - Added #include <glib.h> and moved corresponding local headers - to the top. - -2001-04-15 Federico Mena Quintero <federico@ximian.com> - - * e-search-bar.c (e_search_bar_get_option_choice): New function, - because it is ridiculous to have to hunt down object arguments to - fetch values. - (e_search_bar_get_text): Likewise. - (impl_get_arg): Use the functions above so that we have to - maintain only one version of the getters. - -2001-04-04 Kjartan Maraas <kmaraas@gnome.org> - - * e-calendar.c: More header fixes. - * e-cell-date-edit.c: Same. - * e-dateedit.[ch]: Same. - * e-title-bar.c: Same here. - * e-search-bar.c: More header fixes. - * test-calendar.c: Same here. - -2001-03-29 Kjartan Maraas <kmaraas@gnome.org> - - * e-dropdown-button.c: Replace #include <gtk/gtk.h> - * e-dropdown-button.h: Remove #include <gnome.h> - * e-filter-bar.c: Replace #include <gtk/gtk.h> - * e-filter-bar.h: Replace #include <gtk/gtk.h> - * e-messagebox.c: Add #includes to count for removed <gnome.h> in - e-messagebox.h: - * e-messagebox.h: Replace #include <gnome.h> - * e-search-bar.c: Replace #include <gnome.h> - * e-search-bar.h: Same here - * test-calendar.c: Remove #include <gnome.h> - * test-dateedit.c: Replace #include <gnome.h> - * test-dropdown-button.c: Same here. - * test-title-bar.c: Same here. - -2001-03-22 Jeffrey Stedfast <fejj@ximian.com> - - * e-filter-bar.c (rule_editor_clicked): Validate the filter rule. - -2001-03-18 Damon Chaplin <damon@ximian.com> - - * e-cell-date-edit.c (e_cell_date_edit_show_time_invalid_warning): - use gnome_dialog_run() to make the warning dialog modal. Also created - a better warning message showing the format expected. - Also used e_time_format_time() to format all times. - -2001-03-15 Not Zed <NotZed@Ximian.com> - - * e-filter-bar.c (menubar_activated): If we click on the edit - menu, then bring up a rule editor. If the user adds/removes rules - though, they are neither saved, nor added to the menu's. sigh. - -2001-03-04 Damon Chaplin <damon@ximian.com> - - * e-cell-date-edit.c: pretty much working now. - -2001-03-01 Not Zed <NotZed@Ximian.com> - - * e-filter-bar.c: New type of search bar that interacts with - filter contexts to save filters etc. Still probably needs a - little cleanpu. - -2001-02-28 Not Zed <NotZed@Ximian.com> - - * e-search-bar.c (add_dropdown): Save the dropdown menu in the - struct too. Sigh, this is only so we can scan its content later, - ick. - (e_search_bar_set_menu_sensitive): New function to se tthe - sentisitivty of menyu items based on id. - (find_id): New function to find the row and widget for a specific - id. - (add_option): Renamed to set_option. - (add_dropdown): Renamed to set_dropdown. - (add_dropdown): ?New function to add a single item. - (set_dropdown): Call add_dropdown to add each item. - (e_search_bar_add_menu): New public function to add a single item. - -2001-02-27 Not Zed <NotZed@Ximian.com> - - * Makefile.am (libemiscwidgets_a_SOURCES): Added filter-bar.[ch]. - - * e-search-bar.c (class_init): Init virtual functions. - (e_search_bar_set_option): - (e_search_bar_set_menu): virtualise calling. - (e_search_bar_construct): Call virtual functions to setup menus. - - * e-search-bar.h (struct _ESearchBarClass): Virtualise - add_dropdown/add_option, so certain base options can be created. - -2001-02-25 Damon Chaplin <damon@ximian.com> - - * e-cell-date-edit.[hc]: new files to implement an ECell for showing - and editing dates & times. (Unfinished) - - * Makefile.am (libemiscwidgets_a_SOURCES): added e-cell-date-edit.[hc] - -2001-02-24 Not Zed <NotZed@Ximian.com> - - * e-search-bar.c (add_dropdown): Move the event box into the - esb->dropdown_holder. Changed so it can be called again on the - same esb, to rebuild the menu. - (e_search_bar_set_menu): New function to (re)set the menu. - (add_option): Setup so it can be re-called to rebuild the option - list. - (e_search_bar_set_option): New function to build the menu's. - -2001-02-05 Jeffrey Stedfast <fejj@ximian.com> - - * .cvsignore: Ignore test-dropdown-button - -2001-01-28 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (add_spacer): Make the spacer 4 pixels wider. - (add_dropdown): Put the dropdown button into an event box with a - 1-pixel border, so that we match the [Hardcoded! Stupid GTK+!] - border around the option menu. - -2001-01-28 Ettore Perazzoli <ettore@ximian.com> - - * e-dropdown-button.c (menu_deactivate_cb): New function to change - the state of the toggle button when the pop-up menu disappears. - (impl_clicked): Removed. - (impl_button_press_event): New, implementation for - `::button_press_event'. Pop-up the menu, and toggle the button. - (class_init): Override `::button_press_event' with - `impl_button_press_event'; don't override `::clicked' anymore. - - * e-dropdown-button.h, e-dropdown-button.c: Derive from - `GtkToggleButton', instead of plain `GtkButton'. - -2001-01-27 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (add_dropdown): Make the dropdown button - non-focusable. - -2001-01-27 Ettore Perazzoli <ettore@ximian.com> - - * e-search-bar.c (e_search_bar_init): Don't create the widgets - here. - (e_search_bar_construct): New. Do it here instead. - (e_search_bar_new): Call it. Added preconditions. - (esb_pack_menubar): Removed. - (add_dropdown): New. - (add_option): New. - (add_entry): New. - (e_search_bar_construct): Use `add_dropdown()', `add_option()', - `add_entry()'. - (class_init): Renamed from `e_seearch_bar_class_init'. - (init): Renamed from `e_search_bar_init'. - (impl_destroy): Renamed from `e_search_bar_destroy'. - (emit_menu_activated): Renamed from `esb_menu_activated'. - (emit_query_changed): Renamed from `esb_query_changed'. - (menubar_activated_cb): Renamed from `esb_menubar_activated'. - (option_activated_cb): Renamed from `esb_option_activated'. - (esb_entry_activated): Renamed from `esb_entry_activated'. - (impl_set_arg): Renamed from `e_search_bar_set_arg'. - (impl_get_arg): Renamed from `e_search_bar_get_arg'. - - * e-search-bar.h (struct _ESearchBar): Removed member `menubar'; - replaced it with `dropdown'. - -2001-01-27 Ettore Perazzoli <ettore@ximian.com> - - * e-dropdown-button.c (e_dropdown_button_construct): Removed - @ui_info and @data args. Obviously I am not very smart at this - time of the night. - (e_dropdown_button_new): Likewise. - -2001-01-27 Ettore Perazzoli <ettore@ximian.com> - - * e-dropdown-button.c, e-dropdown-button.h: New. - -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. - -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. - -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. - -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. - -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 - -2001-01-17 Ettore Perazzoli <ettore@ximian.com> - - * e-messagebox.c (e_message_box_get_checkbox): Remove the version - returning `const char *' as of course it doesn't compile. Please - compile before committing. - -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." - -2001-01-16 Jason Leach <jasonleach@usa.net> - - * e-search-bar.[ch]: Moved here from $(toplevel)/filter. - -2000-12-22 JP Rosevear <jpr@helixcode.com> - - * e-calendar-item.h: add prototypes - - * e-calendar-item.c (e_calendar_item_init): Set max_days_selected to - 1 and days_to_start_week_selection to -1 as documented in header - (e_calendar_item_set_arg): use new accessor methods - (e_calendar_item_get_arg): ditto - (e_calendar_item_get_max_days_sel): accessor - (e_calendar_item_set_max_days_sel): ditto - (e_calendar_item_get_days_start_week_sel): ditto - (e_calendar_item_set_days_start_week_sel): ditto - (e_calendar_item_class_init): add display_popup argument - (e_calendar_item_init): initialize display_popup member - (e_calendar_item_get_arg): get display_popup member - (e_calendar_item_set_arg): set display_popup member - (e_calendar_item_button_press): only show the popup menu if the - member is set - (e_calendar_item_get_display_popup): acessor - (e_calendar_item_set_display_popup): ditto - -2000-12-14 Federico Mena Quintero <federico@helixcode.com> - - * e-dateedit.h: #include <time.h> - -2000-12-08 JP Rosevear <jpr@helixcode.com> - - * e-calendar.c (e_calendar_destroy): Call the parent class destroyer - as well - -2000-10-26 Damon Chaplin <damon@helixcode.com> - - * e-dateedit.[hc]: updated to emit "changed" when appropriate, which - turned out to be amazingly difficult :( - Also added e_date_edit_get/set_date() to get/set just the date. - Added e_date_edit_date_is_valid() & e_date_edit_time_is_valid() so - you can check if the user has tried to enter an invalid date. - (All the get_date/time functions return the last valid date entered.) - - * test-dateedit.c: updated a bit. - -2000-11-02 Federico Mena Quintero <federico@helixcode.com> - - * e-dateedit.h (EDateEditClass): Removed the "time_changed" - signal, since it was never being emitted in the first place. Time - values *are* both date and time together anyways, so whenever one - changes we should notify about the whole date/time value being - changed. - Renamed the remaining "date_changed" signal to just "changed". - - * e-dateedit.c (e_date_edit_class_init): Do not create the - "time_changed" signal; rename the other one to "changed". - (set_time): Moved the core functionality from - e_date_edit_set_time() to here. This function just sets the - widgets' values without emitting any signals. - (e_date_edit_set_time): Emit the "changed" signal unconditionally. - This is to be consistent with the rest of the GTK+ widgets, and it - actually makes writing client code easier. - (e_date_edit_new): Use set_time(). - (on_date_popup_now_button_clicked): Do not emit the signal here. - (on_date_popup_none_button_clicked): Likewise. - (e_date_edit_set_time_of_day): Emit the signal, since we do not - call e_date_edit_set_time(). - -2000-10-30 Kjartan Maraas <kmaraas@gnome.org> - - * e-calendar-item.c: #include <string.h> to get rid of warning. - * e-clipped-label.c: Same here. - -2000-10-27 Federico Mena Quintero <federico@helixcode.com> - - * e-dateedit.c (e_date_edit_destroy): Do not unref the cal_popup - since we already destroyed it. - -2000-10-11 Damon Chaplin <damon@helixcode.com> - - * e-calendar-item.c (e_calendar_item_recalc_sizes): fixed to - recalculate min_cell_width/height in case the show_week_numbers option - is changed. - - * e-dateedit.c: added support for hiding the date field, and added - get/set_time_of_day() functions to get/set just the time. - -2000-09-30 Damon Chaplin <damon@helixcode.com> - - * e-calendar-item.c: - * e-dateedit.c: better i18n of strftime strings. - -2000-09-29 Ettore Perazzoli <ettore@helixcode.com> - - * e-title-bar.c: New member `pin_gtk_pixmap' in - `ETitleBarPrivate'. Signal "close_button_clicked" renamed to - "button_clicked". Signal "title_button_press_event" renamed to - "label_button_press_event". - (init): Init new members. - (close_button_realize_cb): Create the pin pixmap. Call - `show_and_hide_pixmaps_according_to_mode()'. - (e_title_bar_show_close_button): Renamed to - `e_title_bar_show_button'. - (e_title_bar_get_button_mode): New. - (e_title_bar_set_button_mode): New. - -2000-09-23 Damon Chaplin <damon@helixcode.com> - - * e-calendar.c: use pixmaps instead of GtkArrows to look better. - Also set the canvas window's background when realized so that we can - set the button reliefs to none. - -2000-09-22 Damon Chaplin <damon@helixcode.com> - - * test-dateedit.c: updated a bit, adding a few EDateEdits with - different options. - - * e-calendar-item.c (e_calendar_item_set_selection): aborted any - current selection operation and initialize all of the selection fields. - (e_calendar_item_unmap): new function to abort any current selection - operation. Otherwise GnomeCanvas gets in a muddle about grabs. - - * e-dateedit.c: marked some strftime()/strptime() format strings for - translation and used "%m/%d/%Y" instead of "%x" so we get the complete - year number. Also changed e_date_edit_get_time() so it returns -2 if - it can't parse the date or time, and -1 if it is explicitly set to - None. - (e_date_edit_parse_date): new function to parse the date string and - add on the current century if a year of 0-99 is entered. - -2000-09-21 Damon Chaplin <damon@helixcode.com> - - * e-dateedit.c (on_date_button_clicked): only check return of strptime - for NULL. It should now select the correct day set in the popup. - - * e-calendar.c: - * e-calendar-item.c: - * test-calendar.c: removed support for buttons within the ECalendar. - It is cleaner to add them outside it, as EDateEdit does. - -2000-09-18 Dan Winship <danw@helixcode.com> - - * e-dateedit.c (_XOPEN_SOURCE): set this to 4 to specify how much - X/Open we want with that. - -2000-09-18 Christopher James Lahey <clahey@helixcode.com> - - * Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and - $(EXTRA_GNOME_LIBS). Removed unneeded libraries. - - * e-calendar-item.c, e-calendar.c, e-calendar.h, e-title-bar.c: - Fixed the #include lines to deal properly with gal. - - * e-scroll-frame.c, e-scroll-frame.h: Moved to gal. - -2000-09-11 Damon Chaplin <damon@helixcode.com> - - * Makefile.am (libemiscwidgets_a_SOURCES): added e-dateedit.[hc] - and the test-dateedit app. - - * e-dateedit.[hc]: new widget to use instead of GnomeDateEdit. It - uses the new ECalendar widget for the calendar and also supports - "None", "Today" and "Now" buttons, and goes away with a single click. - - * test-dateedit.c: app to test the EDateEdit widget. - - * e-calendar-item.c: updated to support the EDateEdit better, - mainly by adding the "move_selection_when_moving" arg so we can turn - it off to keep the same day selected when changing the months shown. - -2000-09-05 Damon Chaplin <damon@helixcode.com> - - * e-calendar-item.c (e_calendar_item_draw_month): make sure we get - the start_weekday since we need it for draw_days(). Fixes a drawing - bug. - -2000-08-31 Damon Chaplin <damon@helixcode.com> - - * e-calendar-item.c (e_calendar_item_button_press): - (e_calendar_item_button_release): grab/ungrab the pointer so we - always get the button_release event. - -2000-08-30 Damon Chaplin <damon@helixcode.com> - - * e-calendar-item.[hc]: - * e-calendar.[hc]: Updated. - -2000-08-10 Christopher James Lahey <clahey@helixcode.com> - - * e-calendar-item.c, e-calendar.c: Fixed some warnings. - -2000-07-25 Damon Chaplin <damon@helixcode.com> - - * e-calendar-item.h: - * e-calendar.[hc]: new widget and canvas item to replace GtkCalendar. - Not quite finished yet. - -2000-07-21 Ettore Perazzoli <ettore@helixcode.com> - - * e-title-bar.c (e_title_bar_set_title): We have a `EClippedLabel', - not a `GtkLabel' here: use the right function to change the text. - -2000-07-12 Christopher James Lahey <clahey@helixcode.com> - - * e-scroll-frame.c: Tried rearranging the casts to try for a more - correct computation. - -2000-07-08 Dan Winship <danw@helixcode.com> - - * e-scroll-frame.c (e_scroll_frame_add): comment out true but - confused warning about non-scrollable widgets until Chris and/or - Federico fix this correctly. - (e_scroll_frame_size_allocate): If the available space for the - child is less than the width/height of the frame, give the child - an allocation of 0 rather than some small negative number cast to - unsigned. - -2000-07-05 Dan Winship <danw@helixcode.com> - - * Makefile.am (INCLUDES): Set G_LOG_DOMAIN=__FILE__ rather than - "e-title-bar" in all three widgets. - -2000-06-13 Anders Carlsson <andersca@gnu.org> - - * e-scroll-frame.c (e_scroll_frame_button_press): Control does - horizontal scrolling, a la gimp. - -2000-06-11 Anders Carlsson <andersca@gnu.org> - - * e-scroll-frame.c (e_scroll_frame_button_press): Add support - for mouse wheel scrolling in EScrollFrame. - -2000-06-10 Ettore Perazzoli <ettore@helixcode.com> - - * e-title-bar.c (close_button_realize_cb): Unref the pixmap and - the mask. - diff --git a/widgets/misc/Makefile.am b/widgets/misc/Makefile.am index daaf9717f2..6373ceb58b 100644 --- a/widgets/misc/Makefile.am +++ b/widgets/misc/Makefile.am @@ -69,10 +69,9 @@ widgetsinclude_HEADERS = \ e-signature-preview.h \ e-signature-script-dialog.h \ e-signature-tree-view.h \ - e-spinner.c \ - e-spinner.h \ e-url-entry.h \ e-web-view.h \ + e-web-view-preview.h \ ea-calendar-cell.h \ ea-calendar-item.h \ ea-cell-table.h \ @@ -149,6 +148,7 @@ libemiscwidgets_la_SOURCES = \ e-signature-tree-view.c \ e-url-entry.c \ e-web-view.c \ + e-web-view-preview.c \ ea-calendar-cell.c \ ea-calendar-item.c \ ea-cell-table.c \ @@ -226,7 +226,6 @@ test_preferences_window_LDADD = \ EXTRA_DIST = \ $(ui_DATA) \ e-pilot-settings.h \ - e-pilot-settings.c \ - ChangeLog.pre-1-4 + e-pilot-settings.c -include $(top_srcdir)/git.mk diff --git a/widgets/misc/e-account-combo-box.c b/widgets/misc/e-account-combo-box.c index 288ac408fb..7d34a29bfe 100644 --- a/widgets/misc/e-account-combo-box.c +++ b/widgets/misc/e-account-combo-box.c @@ -22,7 +22,6 @@ #include "e-account-combo-box.h" #include <string.h> -#include <camel/camel-store.h> #define E_ACCOUNT_COMBO_BOX_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE \ @@ -131,7 +130,7 @@ account_combo_box_test_account (EAccount *account) camel_session, url, CAMEL_PROVIDER_STORE, &ex)); if (store != NULL) { writable = (store->mode & CAMEL_STORE_WRITE); - camel_object_unref (store); + g_object_unref (store); } camel_exception_clear (&ex); diff --git a/widgets/misc/e-account-combo-box.h b/widgets/misc/e-account-combo-box.h index c3fe4aa0f8..b624c9b17e 100644 --- a/widgets/misc/e-account-combo-box.h +++ b/widgets/misc/e-account-combo-box.h @@ -23,7 +23,7 @@ #define E_ACCOUNT_COMBO_BOX_H #include <gtk/gtk.h> -#include <camel/camel-session.h> +#include <camel/camel.h> #include <libedataserver/e-account.h> #include <libedataserver/e-account-list.h> diff --git a/widgets/misc/e-account-tree-view.c b/widgets/misc/e-account-tree-view.c index 8c2e21092b..9b083a3f6e 100644 --- a/widgets/misc/e-account-tree-view.c +++ b/widgets/misc/e-account-tree-view.c @@ -22,7 +22,7 @@ #include "e-account-tree-view.h" #include <glib/gi18n.h> -#include <camel/camel-url.h> +#include <camel/camel.h> #define E_ACCOUNT_TREE_VIEW_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE \ diff --git a/widgets/misc/e-action-combo-box.c b/widgets/misc/e-action-combo-box.c index 2fa376d420..0260c6e19a 100644 --- a/widgets/misc/e-action-combo-box.c +++ b/widgets/misc/e-action-combo-box.c @@ -385,8 +385,8 @@ action_combo_box_class_init (EActionComboBoxClass *class) PROP_ACTION, g_param_spec_object ( "action", - _("Action"), - _("A GtkRadioAction"), + "Action", + "A GtkRadioAction", GTK_TYPE_RADIO_ACTION, G_PARAM_READWRITE)); } diff --git a/widgets/misc/e-activity-proxy.c b/widgets/misc/e-activity-proxy.c index 10249b1911..c503e5e26d 100644 --- a/widgets/misc/e-activity-proxy.c +++ b/widgets/misc/e-activity-proxy.c @@ -22,7 +22,6 @@ #include "e-activity-proxy.h" #include <glib/gi18n.h> -#include <e-spinner.h> #define E_ACTIVITY_PROXY_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE \ @@ -277,9 +276,9 @@ activity_proxy_init (EActivityProxy *proxy) proxy->priv->button = g_object_ref (widget); gtk_widget_hide (widget); - /* XXX What's the rationale for killing the old spinner API? */ - widget = e_spinner_new_spinning_small_shown (); - gtk_box_pack_start (GTK_BOX (container), widget, FALSE, FALSE, 0); + widget = gtk_spinner_new (); + gtk_spinner_start (GTK_SPINNER (widget)); + gtk_box_pack_start (GTK_BOX (container), widget, FALSE, FALSE, 3); proxy->priv->spinner = g_object_ref (widget); gtk_widget_show (widget); diff --git a/widgets/misc/e-attachment-handler-image.c b/widgets/misc/e-attachment-handler-image.c index 6429eb6b8e..770b1c552b 100644 --- a/widgets/misc/e-attachment-handler-image.c +++ b/widgets/misc/e-attachment-handler-image.c @@ -24,6 +24,8 @@ #include <glib/gi18n.h> #include <gconf/gconf-client.h> +#include <e-util/e-util.h> + #define E_ATTACHMENT_HANDLER_IMAGE_GET_PRIVATE(obj) \ (G_TYPE_INSTANCE_GET_PRIVATE \ ((obj), E_TYPE_ATTACHMENT_HANDLER_IMAGE, EAttachmentHandlerImagePrivate)) @@ -124,7 +126,7 @@ action_image_set_as_background_cb (GtkAction *action, /* Save the image under ~/.gnome2/wallpapers/. */ path = g_build_filename ( - g_get_home_dir (), ".gnome2", "wallpapers", NULL); + e_get_gnome2_user_dir (), "wallpapers", NULL); destination = g_file_new_for_path (path); g_mkdir_with_parents (path, 0755); g_free (path); diff --git a/widgets/misc/e-attachment-paned.c b/widgets/misc/e-attachment-paned.c index d47fe9c8c7..c9282c7718 100644 --- a/widgets/misc/e-attachment-paned.c +++ b/widgets/misc/e-attachment-paned.c @@ -516,7 +516,7 @@ attachment_paned_init (EAttachmentPaned *paned) container = widget; widget = e_attachment_icon_view_new (); - GTK_WIDGET_SET_FLAGS (widget, GTK_CAN_FOCUS); + gtk_widget_set_can_focus (widget, TRUE); gtk_icon_view_set_model (GTK_ICON_VIEW (widget), paned->priv->model); gtk_container_add (GTK_CONTAINER (container), widget); paned->priv->icon_view = g_object_ref (widget); @@ -536,7 +536,7 @@ attachment_paned_init (EAttachmentPaned *paned) container = widget; widget = e_attachment_tree_view_new (); - GTK_WIDGET_SET_FLAGS (widget, GTK_CAN_FOCUS); + gtk_widget_set_can_focus (widget, TRUE); gtk_tree_view_set_model (GTK_TREE_VIEW (widget), paned->priv->model); gtk_container_add (GTK_CONTAINER (container), widget); paned->priv->tree_view = g_object_ref (widget); @@ -602,7 +602,7 @@ attachment_paned_init (EAttachmentPaned *paned) container = widget; - widget = gtk_label_new_with_mnemonic (_("Show _Attachment Bar")); + widget = gtk_label_new_with_mnemonic (_("Show Attachment _Bar")); gtk_box_pack_start (GTK_BOX (container), widget, FALSE, FALSE, 0); paned->priv->show_hide_label = g_object_ref (widget); gtk_widget_show (widget); diff --git a/widgets/misc/e-attachment-view.c b/widgets/misc/e-attachment-view.c index 2ff6fb4dab..832565c929 100644 --- a/widgets/misc/e-attachment-view.c +++ b/widgets/misc/e-attachment-view.c @@ -24,7 +24,6 @@ #include <config.h> #include <glib/gi18n.h> #include <gdk/gdkkeysyms.h> -#include <camel/camel-stream-mem.h> #include "e-util/e-binding.h" #include "e-util/e-selection.h" @@ -461,7 +460,7 @@ attachment_view_text_calendar (EAttachmentView *view, e_attachment_load_handle_error, parent); g_object_unref (attachment); - camel_object_unref (mime_part); + g_object_unref (mime_part); gtk_drag_finish (drag_context, TRUE, FALSE, time); } @@ -515,7 +514,7 @@ attachment_view_text_x_vcard (EAttachmentView *view, e_attachment_load_handle_error, parent); g_object_unref (attachment); - camel_object_unref (mime_part); + g_object_unref (mime_part); gtk_drag_finish (drag_context, TRUE, FALSE, time); } diff --git a/widgets/misc/e-attachment.c b/widgets/misc/e-attachment.c index 4752251905..ba4e4004b3 100644 --- a/widgets/misc/e-attachment.c +++ b/widgets/misc/e-attachment.c @@ -25,14 +25,6 @@ #include <config.h> #include <glib/gi18n.h> #include <glib/gstdio.h> -#include <camel/camel-iconv.h> -#include <camel/camel-data-wrapper.h> -#include <camel/camel-mime-message.h> -#include <camel/camel-stream-filter.h> -#include <camel/camel-stream-mem.h> -#include <camel/camel-stream-null.h> -#include <camel/camel-stream-vfs.h> -#include <camel/camel-stream-fs.h> #include <libedataserver/e-data-server-util.h> @@ -678,7 +670,7 @@ attachment_dispose (GObject *object) } if (priv->mime_part != NULL) { - camel_object_unref (priv->mime_part); + g_object_unref (priv->mime_part); priv->mime_part = NULL; } @@ -792,11 +784,11 @@ attachment_class_init (EAttachmentClass *class) g_object_class_install_property ( object_class, PROP_MIME_PART, - g_param_spec_boxed ( + g_param_spec_object ( "mime-part", "MIME Part", NULL, - E_TYPE_CAMEL_OBJECT, + CAMEL_TYPE_MIME_PART, G_PARAM_READWRITE)); g_object_class_install_property ( @@ -1006,12 +998,12 @@ e_attachment_new_for_message (CamelMimeMessage *message) g_string_free (description, TRUE); wrapper = CAMEL_DATA_WRAPPER (message); - camel_medium_set_content_object (CAMEL_MEDIUM (mime_part), wrapper); + camel_medium_set_content (CAMEL_MEDIUM (mime_part), wrapper); camel_mime_part_set_content_type (mime_part, "message/rfc822"); attachment = e_attachment_new (); e_attachment_set_mime_part (attachment, mime_part); - camel_object_unref (mime_part); + g_object_unref (mime_part); return attachment; } @@ -1036,7 +1028,7 @@ e_attachment_add_to_multipart (EAttachment *attachment, return; content_type = camel_mime_part_get_content_type (mime_part); - wrapper = camel_medium_get_content_object (CAMEL_MEDIUM (mime_part)); + wrapper = camel_medium_get_content (CAMEL_MEDIUM (mime_part)); if (CAMEL_IS_MULTIPART (wrapper)) goto exit; @@ -1044,8 +1036,8 @@ e_attachment_add_to_multipart (EAttachment *attachment, /* For text content, determine the best encoding and character set. */ if (camel_content_type_is (content_type, "text", "*")) { CamelTransferEncoding encoding; - CamelStreamFilter *filtered_stream; - CamelMimeFilterBestenc *filter; + CamelStream *filtered_stream; + CamelMimeFilter *filter; CamelStream *stream; const gchar *charset; @@ -1054,21 +1046,23 @@ e_attachment_add_to_multipart (EAttachment *attachment, /* Determine the best encoding by writing the MIME * part to a NULL stream with a "bestenc" filter. */ stream = camel_stream_null_new (); - filtered_stream = camel_stream_filter_new_with_stream (stream); + filtered_stream = camel_stream_filter_new (stream); filter = camel_mime_filter_bestenc_new ( CAMEL_BESTENC_GET_ENCODING); camel_stream_filter_add ( - filtered_stream, CAMEL_MIME_FILTER (filter)); + CAMEL_STREAM_FILTER (filtered_stream), + CAMEL_MIME_FILTER (filter)); camel_data_wrapper_decode_to_stream ( - wrapper, CAMEL_STREAM (filtered_stream)); - camel_object_unref (filtered_stream); - camel_object_unref (stream); + wrapper, filtered_stream); + g_object_unref (filtered_stream); + g_object_unref (stream); /* Retrieve the best encoding from the filter. */ encoding = camel_mime_filter_bestenc_get_best_encoding ( - filter, CAMEL_BESTENC_8BIT); + CAMEL_MIME_FILTER_BESTENC (filter), + CAMEL_BESTENC_8BIT); camel_mime_part_set_encoding (mime_part, encoding); - camel_object_unref (filter); + g_object_unref (filter); if (encoding == CAMEL_TRANSFER_ENCODING_7BIT) { /* The text fits within us-ascii, so this is safe. @@ -1208,11 +1202,11 @@ e_attachment_set_mime_part (EAttachment *attachment, if (mime_part != NULL) { g_return_if_fail (CAMEL_IS_MIME_PART (mime_part)); - camel_object_ref (mime_part); + g_object_ref (mime_part); } if (attachment->priv->mime_part != NULL) - camel_object_unref (attachment->priv->mime_part); + g_object_unref (attachment->priv->mime_part); attachment->priv->mime_part = mime_part; @@ -1537,12 +1531,12 @@ attachment_load_finish (LoadContext *load_context) camel_data_wrapper_construct_from_stream (wrapper, stream); camel_data_wrapper_set_mime_type (wrapper, mime_type); camel_stream_close (stream); - camel_object_unref (stream); + g_object_unref (stream); mime_part = camel_mime_part_new (); - camel_medium_set_content_object (CAMEL_MEDIUM (mime_part), wrapper); + camel_medium_set_content (CAMEL_MEDIUM (mime_part), wrapper); - camel_object_unref (wrapper); + g_object_unref (wrapper); g_free (mime_type); display_name = g_file_info_get_display_name (file_info); @@ -1565,7 +1559,7 @@ attachment_load_finish (LoadContext *load_context) } g_simple_async_result_set_op_res_gpointer ( - simple, mime_part, (GDestroyNotify) camel_object_unref); + simple, mime_part, (GDestroyNotify) g_object_unref); g_simple_async_result_complete (simple); @@ -1790,12 +1784,12 @@ attachment_load_from_mime_part (LoadContext *load_context) e_attachment_set_file_info (attachment, file_info); - camel_object_ref (mime_part); + g_object_ref (mime_part); simple = load_context->simple; g_simple_async_result_set_op_res_gpointer ( simple, mime_part, - (GDestroyNotify) camel_object_unref); + (GDestroyNotify) g_object_unref); g_simple_async_result_complete (simple); attachment_load_context_free (load_context); @@ -2468,9 +2462,9 @@ attachment_save_got_output_stream (SaveContext *save_context) buffer = g_byte_array_new (); stream = camel_stream_mem_new (); camel_stream_mem_set_byte_array (CAMEL_STREAM_MEM (stream), buffer); - wrapper = camel_medium_get_content_object (CAMEL_MEDIUM (mime_part)); + wrapper = camel_medium_get_content (CAMEL_MEDIUM (mime_part)); camel_data_wrapper_decode_to_stream (wrapper, stream); - camel_object_unref (stream); + g_object_unref (stream); /* Load the buffer into a GMemoryInputStream. * But watch out for zero length MIME parts. */ diff --git a/widgets/misc/e-attachment.h b/widgets/misc/e-attachment.h index a6dff74661..7cd655c6ff 100644 --- a/widgets/misc/e-attachment.h +++ b/widgets/misc/e-attachment.h @@ -23,10 +23,7 @@ #define E_ATTACHMENT_H #include <gtk/gtk.h> -#include <camel/camel-cipher-context.h> -#include <camel/camel-mime-part.h> -#include <camel/camel-mime-message.h> -#include <camel/camel-multipart.h> +#include <camel/camel.h> /* Standard GObject macros */ #define E_TYPE_ATTACHMENT \ diff --git a/widgets/misc/e-buffer-tagger.c b/widgets/misc/e-buffer-tagger.c index 9501f29d6a..b3d5a4e61e 100644 --- a/widgets/misc/e-buffer-tagger.c +++ b/widgets/misc/e-buffer-tagger.c @@ -308,11 +308,7 @@ update_mouse_cursor (GtkTextView *text_view, gint x, gint y) if (hovering != hovering_over_link) { update_state (buffer, E_BUFFER_TAGGER_STATE_IS_HOVERING, hovering); -#if GTK_CHECK_VERSION(2,19,7) if (hovering && gtk_widget_has_focus (GTK_WIDGET (text_view))) -#else - if (hovering && GTK_WIDGET_HAS_FOCUS (text_view)) -#endif gdk_window_set_cursor (gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT), hand_cursor); else gdk_window_set_cursor (gtk_text_view_get_window (text_view, GTK_TEXT_WINDOW_TEXT), regular_cursor); diff --git a/widgets/misc/e-calendar-item.c b/widgets/misc/e-calendar-item.c index 4d7506e05d..e67c2b7eeb 100644 --- a/widgets/misc/e-calendar-item.c +++ b/widgets/misc/e-calendar-item.c @@ -29,6 +29,7 @@ #include "ea-widgets.h" #include <time.h> +#include <stdlib.h> #include <string.h> #include <gtk/gtk.h> #include <gdk/gdkkeysyms.h> @@ -1557,11 +1558,7 @@ e_calendar_item_draw_day_numbers (ECalendarItem *calitem, day_style = calitem->styles[(month_offset + 1) * 32 + day_num]; /* Get the colors & style to use for the day.*/ -#if GTK_CHECK_VERSION(2,19,7) if ((gtk_widget_has_focus (GTK_WIDGET (item->canvas))) && -#else - if ((GTK_WIDGET_HAS_FOCUS(item->canvas)) && -#endif item->canvas->focused_item == item) has_focus = TRUE; else diff --git a/widgets/misc/e-calendar.c b/widgets/misc/e-calendar.c index 27ac031b8d..fd8f882b25 100644 --- a/widgets/misc/e-calendar.c +++ b/widgets/misc/e-calendar.c @@ -266,11 +266,7 @@ e_calendar_style_set (GtkWidget *widget, /* Set the background of the canvas window to the normal color, or the arrow buttons are not displayed properly. */ -#if GTK_CHECK_VERSION(2,19,7) if (gtk_widget_get_realized (widget)) { -#else - if (GTK_WIDGET_REALIZED (widget)) { -#endif GtkStyle *style; GdkWindow *window; @@ -562,13 +558,8 @@ e_calendar_button_has_focus (ECalendar *cal) prev_widget = GNOME_CANVAS_WIDGET(cal->prev_item)->widget; next_widget = GNOME_CANVAS_WIDGET(cal->next_item)->widget; -#if GTK_CHECK_VERSION(2,19,7) ret_val = gtk_widget_has_focus (prev_widget) || gtk_widget_has_focus (next_widget); -#else - ret_val = GTK_WIDGET_HAS_FOCUS (prev_widget) || - GTK_WIDGET_HAS_FOCUS (next_widget); -#endif return ret_val; } @@ -595,11 +586,7 @@ e_calendar_focus (GtkWidget *widget, GtkDirectionType direction) children[2] = cal->next_item; /* get current focused item, if e-calendar has had focus */ -#if GTK_CHECK_VERSION(2,19,7) if (gtk_widget_has_focus (widget) || e_calendar_button_has_focus (cal)) -#else - if (GTK_WIDGET_HAS_FOCUS (widget) || e_calendar_button_has_focus (cal)) -#endif for (index = 0; index < E_CALENDAR_FOCUS_CHILDREN_NUM; ++index) { if (canvas->focused_item == NULL) break; @@ -636,30 +623,29 @@ e_calendar_focus (GtkWidget *widget, GtkDirectionType direction) void e_calendar_set_focusable (ECalendar *cal, gboolean focusable) { + GtkWidget *widget; GtkWidget *prev_widget, *next_widget; + GtkWidget *toplevel; g_return_if_fail (E_IS_CALENDAR (cal)); + widget = GTK_WIDGET (cal); prev_widget = GNOME_CANVAS_WIDGET(cal->prev_item)->widget; next_widget = GNOME_CANVAS_WIDGET(cal->next_item)->widget; if (focusable) { - GTK_WIDGET_SET_FLAGS (cal, GTK_CAN_FOCUS); - GTK_WIDGET_SET_FLAGS (prev_widget, GTK_CAN_FOCUS); - GTK_WIDGET_SET_FLAGS (next_widget, GTK_CAN_FOCUS); + gtk_widget_set_can_focus (widget, TRUE); + gtk_widget_set_can_focus (prev_widget, TRUE); + gtk_widget_set_can_focus (next_widget, TRUE); } else { -#if GTK_CHECK_VERSION(2,19,7) if (gtk_widget_has_focus (GTK_WIDGET (cal)) || e_calendar_button_has_focus (cal)) { -#else - if (GTK_WIDGET_HAS_FOCUS (cal) || e_calendar_button_has_focus (cal)) { -#endif - GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (cal)); + toplevel = gtk_widget_get_toplevel (widget); if (toplevel) gtk_widget_grab_focus (toplevel); } - GTK_WIDGET_UNSET_FLAGS (cal, GTK_CAN_FOCUS); - GTK_WIDGET_UNSET_FLAGS (prev_widget, GTK_CAN_FOCUS); - GTK_WIDGET_UNSET_FLAGS (next_widget, GTK_CAN_FOCUS); + gtk_widget_set_can_focus (widget, FALSE); + gtk_widget_set_can_focus (prev_widget, FALSE); + gtk_widget_set_can_focus (next_widget, FALSE); } } diff --git a/widgets/misc/e-canvas-background.c b/widgets/misc/e-canvas-background.c index 3b4cbadd20..28875725b3 100644 --- a/widgets/misc/e-canvas-background.c +++ b/widgets/misc/e-canvas-background.c @@ -437,11 +437,7 @@ ecb_style_set (ECanvasBackground *ecb, style = gtk_widget_get_style (GTK_WIDGET (item->canvas)); -#if GTK_CHECK_VERSION(2,19,7) if (gtk_widget_get_realized (GTK_WIDGET (item->canvas))) { -#else - if (GTK_WIDGET_REALIZED (item->canvas)) { -#endif gdk_gc_set_foreground ( ecb->priv->gc, &style->base[GTK_STATE_NORMAL]); gnome_canvas_item_request_update (GNOME_CANVAS_ITEM (ecb)); @@ -468,57 +464,57 @@ ecb_class_init (ECanvasBackgroundClass *ecb_class) g_object_class_install_property (object_class, PROP_FILL_COLOR, g_param_spec_string ("fill_color", - _( "Fill color" ), - _( "Fill color" ), + "Fill color", + "Fill color", NULL, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_FILL_COLOR_GDK, g_param_spec_boxed ("fill_color_gdk", - _( "GDK fill color" ), - _( "GDK fill color" ), + "GDK fill color", + "GDK fill color", GDK_TYPE_COLOR, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_FILL_COLOR_RGBA, g_param_spec_uint ("fill_color_rgba", - _( "GDK fill color" ), - _( "GDK fill color" ), + "GDK fill color", + "GDK fill color", 0, G_MAXUINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_FILL_STIPPLE, g_param_spec_object ("fill_stipple", - _( "Fill stipple" ), - _( "Fill stipple" ), + "Fill stipple", + "Fill stipple", GDK_TYPE_WINDOW, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_X1, g_param_spec_double ("x1", - _( "X1" ), - _( "X1" ), + "X1", + "X1", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_X2, g_param_spec_double ("x2", - _( "X2" ), - _( "X2" ), + "X2", + "X2", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_Y1, g_param_spec_double ("y1", - _( "Y1" ), - _( "Y1" ), + "Y1", + "Y1", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_Y2, g_param_spec_double ("y2", - _( "Y2" ), - _( "Y2" ), + "Y2", + "Y2", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); ecb_signals [STYLE_SET] = diff --git a/widgets/misc/e-canvas-vbox.c b/widgets/misc/e-canvas-vbox.c index e9d78f220c..63b23efdf6 100644 --- a/widgets/misc/e-canvas-vbox.c +++ b/widgets/misc/e-canvas-vbox.c @@ -80,26 +80,26 @@ e_canvas_vbox_class_init (ECanvasVboxClass *klass) g_object_class_install_property (object_class, PROP_WIDTH, g_param_spec_double ("width", - _( "Width" ), - _( "Width" ), + "Width", + "Width", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_MINIMUM_WIDTH, g_param_spec_double ("minimum_width", - _( "Minimum width" ), - _( "Minimum Width" ), + "Minimum width", + "Minimum Width", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_HEIGHT, g_param_spec_double ("height", - _( "Height" ), - _( "Height" ), + "Height", + "Height", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_SPACING, g_param_spec_double ("spacing", - _( "Spacing" ), - _( "Spacing" ), + "Spacing", + "Spacing", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); } diff --git a/widgets/misc/e-canvas.c b/widgets/misc/e-canvas.c index db187b6e13..593c9c4530 100644 --- a/widgets/misc/e-canvas.c +++ b/widgets/misc/e-canvas.c @@ -568,11 +568,7 @@ e_canvas_item_grab_focus (GnomeCanvasItem *item, gboolean widget_too) item->canvas->focused_item = item; -#if GTK_CHECK_VERSION(2,19,7) if (widget_too && !gtk_widget_has_focus (GTK_WIDGET(item->canvas))) { -#else - if (widget_too && !GTK_WIDGET_HAS_FOCUS (GTK_WIDGET(item->canvas))) { -#endif gtk_widget_grab_focus (GTK_WIDGET (item->canvas)); } diff --git a/widgets/misc/e-dateedit.c b/widgets/misc/e-dateedit.c index 03c8f2fd47..73b649defd 100644 --- a/widgets/misc/e-dateedit.c +++ b/widgets/misc/e-dateedit.c @@ -1699,11 +1699,7 @@ on_date_edit_time_selected (GtkComboBox *combo, if (gtk_combo_box_get_active (combo) == -1) return; -#if GTK_CHECK_VERSION(2,19,7) if (!gtk_widget_get_mapped (child)) -#else - if (!GTK_WIDGET_MAPPED (child)) -#endif return; e_date_edit_check_time_changed (dedit); diff --git a/widgets/misc/e-hinted-entry.c b/widgets/misc/e-hinted-entry.c index 24bac0087c..51131cedcd 100644 --- a/widgets/misc/e-hinted-entry.c +++ b/widgets/misc/e-hinted-entry.c @@ -290,11 +290,7 @@ e_hinted_entry_set_text (EHintedEntry *entry, if (text == NULL) text = ""; -#if GTK_CHECK_VERSION(2,19,7) if (*text == '\0' && !gtk_widget_has_focus (GTK_WIDGET (entry))) -#else - if (*text == '\0' && !GTK_WIDGET_HAS_FOCUS (entry)) -#endif hinted_entry_show_hint (entry); else { hinted_entry_hide_hint (entry); diff --git a/widgets/misc/e-import-assistant.c b/widgets/misc/e-import-assistant.c index 30d41385f4..3ca06dcda8 100644 --- a/widgets/misc/e-import-assistant.c +++ b/widgets/misc/e-import-assistant.c @@ -71,8 +71,12 @@ struct _ImportProgressPage { }; struct _ImportSimplePage { + GtkWidget *actionlabel; + GtkWidget *filetypetable; GtkWidget *filetype; - GtkWidget *control; /* importer's destination widget in an alignment */ + GtkWidget *control; /* importer's destination or preview widget in an alignment */ + gboolean has_preview; /* TRUE when 'control' holds a preview widget, + otherwise holds destination widget */ EImportTargetURI *target; EImportImporter *importer; @@ -427,7 +431,6 @@ import_assistant_simple_page_init (EImportAssistant *import_assistant) GtkWidget *widget; GtkCellRenderer *cell; GtkListStore *store; - const gchar *text; gint row = 0; page = gtk_vbox_new (FALSE, 6); @@ -436,12 +439,11 @@ import_assistant_simple_page_init (EImportAssistant *import_assistant) container = page; - text = _("Select what type of file you want to import from the list."); - - widget = gtk_label_new (text); + widget = gtk_label_new (""); gtk_label_set_line_wrap (GTK_LABEL (widget), TRUE); gtk_box_pack_start (GTK_BOX (container), widget, FALSE, TRUE, 0); gtk_widget_show (widget); + import_assistant->priv->simple_page.actionlabel = widget; widget = gtk_table_new (2, 1, FALSE); gtk_table_set_row_spacings (GTK_TABLE (widget), 2); @@ -449,6 +451,7 @@ import_assistant_simple_page_init (EImportAssistant *import_assistant) gtk_container_set_border_width (GTK_CONTAINER (widget), 8); gtk_box_pack_start (GTK_BOX (container), widget, FALSE, TRUE, 0); gtk_widget_show (widget); + import_assistant->priv->simple_page.filetypetable = widget; container = widget; @@ -743,7 +746,7 @@ prepare_progress_page (GtkAssistant *assistant, g_object_get (G_OBJECT (assistant), "is-simple", &is_simple, NULL); - intelligent_import = gtk_toggle_button_get_active ( + intelligent_import = is_simple ? FALSE : gtk_toggle_button_get_active ( GTK_TOGGLE_BUTTON (priv->type_page.intelligent)); if (is_simple) { @@ -797,9 +800,15 @@ simple_filetype_changed_cb (GtkComboBox *combo_box, GtkAssistant *assistant) if (page->control) gtk_widget_destroy (page->control); + page->has_preview = FALSE; + + control = e_import_get_preview_widget (priv->import, (EImportTarget *) page->target, page->importer); + if (control) { + page->has_preview = TRUE; + gtk_widget_set_size_request (control, 320, 240); + } else + control = create_importer_control (priv->import, (EImportTarget *)page->target, page->importer); - control = create_importer_control ( - priv->import, (EImportTarget *)page->target, page->importer); page->control = gtk_alignment_new (0.0, 0.0, 1.0, 1.0); gtk_widget_show (page->control); gtk_container_add (GTK_CONTAINER (page->control), control); @@ -847,8 +856,6 @@ prepare_simple_page (GtkAssistant *assistant, GtkWidget *vbox) -1); } - g_slist_free (importers); - gtk_combo_box_set_active (GTK_COMBO_BOX (page->filetype), 0); g_object_set_data (G_OBJECT (page->filetype), "page-vbox", vbox); @@ -857,6 +864,56 @@ prepare_simple_page (GtkAssistant *assistant, GtkWidget *vbox) g_signal_connect ( page->filetype, "changed", G_CALLBACK (simple_filetype_changed_cb), assistant); + + if (gtk_tree_model_iter_n_children (GTK_TREE_MODEL (store), NULL) == 1) { + gchar *title; + + /* only one importer found, make it even simpler */ + gtk_label_set_text (GTK_LABEL (page->actionlabel), + page->has_preview ? + _("Preview data to be imported") : + _("Choose the destination for this import")); + + gtk_widget_hide (page->filetypetable); + + title = g_strconcat (_("Import Data"), " - ", ((EImportImporter *)importers->data)->name, NULL); + gtk_assistant_set_page_title (assistant, vbox, title); + g_free (title); + } else { + /* multiple importers found, be able to choose from them */ + gtk_label_set_text (GTK_LABEL (page->actionlabel), _("Select what type of file you want to import from the list.")); + + gtk_widget_show (page->filetypetable); + + gtk_assistant_set_page_title (assistant, vbox, _("Import Data")); + } + + g_slist_free (importers); +} + +static gboolean +prepare_simple_destination_page (GtkAssistant *assistant, + GtkWidget *vbox) +{ + EImportAssistantPrivate *priv; + ImportDestinationPage *page; + ImportSimplePage *simple_page; + + priv = E_IMPORT_ASSISTANT_GET_PRIVATE (assistant); + page = &priv->destination_page; + simple_page = &priv->simple_page; + + if (page->control) + gtk_container_remove (GTK_CONTAINER (vbox), page->control); + + page->control = create_importer_control ( + priv->import, (EImportTarget *) + simple_page->target, simple_page->importer); + + gtk_box_pack_start (GTK_BOX (vbox), page->control, TRUE, TRUE, 0); + gtk_assistant_set_page_complete (assistant, vbox, TRUE); + + return FALSE; } static gint @@ -864,6 +921,16 @@ forward_cb (gint current_page, EImportAssistant *import_assistant) { GtkToggleButton *toggle_button; + gboolean is_simple = FALSE; + + g_object_get (G_OBJECT (import_assistant), "is-simple", &is_simple, NULL); + + if (is_simple) { + if (!import_assistant->priv->simple_page.has_preview) + current_page++; + + return current_page + 1; + } toggle_button = GTK_TOGGLE_BUTTON ( import_assistant->priv->type_page.intelligent); @@ -1076,6 +1143,8 @@ import_assistant_prepare (GtkAssistant *assistant, if (page_no == 0) { prepare_simple_page (assistant, page); } else if (page_no == 1) { + prepare_simple_destination_page (assistant, page); + } else if (page_no == 2) { prepare_progress_page (assistant, page); } @@ -1193,6 +1262,14 @@ import_assistant_construct (EImportAssistant *import_assistant) gtk_assistant_append_page (assistant, page); gtk_assistant_set_page_header_image (assistant, page, pixbuf); + gtk_assistant_set_page_title (assistant, page, _("Import Data")); + gtk_assistant_set_page_type (assistant, page, GTK_ASSISTANT_PAGE_CONTENT); + + /* File destination page - when with preview*/ + page = import_assistant_destination_page_init (import_assistant); + + gtk_assistant_append_page (assistant, page); + gtk_assistant_set_page_header_image (assistant, page, pixbuf); gtk_assistant_set_page_title (assistant, page, _("Import Location")); gtk_assistant_set_page_type (assistant, page, GTK_ASSISTANT_PAGE_CONTENT); } else { @@ -1272,11 +1349,9 @@ import_assistant_construct (EImportAssistant *import_assistant) gtk_assistant_set_page_type (assistant, page, GTK_ASSISTANT_PAGE_PROGRESS); gtk_assistant_set_page_complete (assistant, page, TRUE); - if (!import_assistant->priv->is_simple) { - gtk_assistant_set_forward_page_func ( - assistant, (GtkAssistantPageFunc) - forward_cb, import_assistant, NULL); - } + gtk_assistant_set_forward_page_func ( + assistant, (GtkAssistantPageFunc) + forward_cb, import_assistant, NULL); g_object_unref (pixbuf); diff --git a/widgets/misc/e-map.c b/widgets/misc/e-map.c index ff13e41be8..22ea72fa6a 100644 --- a/widgets/misc/e-map.c +++ b/widgets/misc/e-map.c @@ -198,8 +198,11 @@ static void e_map_init (EMap *view) { EMapPrivate *priv; + GtkWidget *widget; gchar *map_file_name = g_build_filename (EVOLUTION_IMAGESDIR, "world_map-960.png", NULL); + widget = GTK_WIDGET (view); + priv = g_new0 (EMapPrivate, 1); view->priv = priv; @@ -210,8 +213,8 @@ e_map_init (EMap *view) priv->zoom_state = E_MAP_ZOOMED_OUT; priv->points = g_ptr_array_new (); - GTK_WIDGET_SET_FLAGS (view, GTK_CAN_FOCUS); - GTK_WIDGET_UNSET_FLAGS (view, GTK_NO_WINDOW); + gtk_widget_set_can_focus (widget, TRUE); + gtk_widget_set_has_window (widget, TRUE); } /* Destroy handler for the map view */ @@ -300,7 +303,7 @@ e_map_realize (GtkWidget *widget) g_return_if_fail (widget != NULL); g_return_if_fail (E_IS_MAP (widget)); - GTK_WIDGET_SET_FLAGS (widget, GTK_REALIZED); + gtk_widget_set_realized (widget, TRUE); gtk_widget_get_allocation (widget, &allocation); @@ -382,11 +385,7 @@ e_map_size_allocate (GtkWidget *widget, GtkAllocation *allocation) gtk_widget_set_allocation (widget, allocation); -#if GTK_CHECK_VERSION(2,19,7) if (gtk_widget_get_realized (widget)) { -#else - if (GTK_WIDGET_REALIZED (widget)) { -#endif GdkWindow *window; window = gtk_widget_get_window (widget); @@ -410,11 +409,7 @@ e_map_size_allocate (GtkWidget *widget, GtkAllocation *allocation) static gint e_map_button_press (GtkWidget *widget, GdkEventButton *event) { -#if GTK_CHECK_VERSION(2,19,7) if (!gtk_widget_has_focus (widget)) gtk_widget_grab_focus (widget); -#else - if (!GTK_WIDGET_HAS_FOCUS (widget)) gtk_widget_grab_focus (widget); -#endif return TRUE; } @@ -649,11 +644,7 @@ e_map_window_to_world (EMap *map, gdouble win_x, gdouble win_y, gdouble *world_l g_return_if_fail (map); priv = map->priv; -#if GTK_CHECK_VERSION(2,19,7) g_return_if_fail (gtk_widget_get_realized (GTK_WIDGET (map))); -#else - g_return_if_fail (GTK_WIDGET_REALIZED (GTK_WIDGET (map))); -#endif width = gdk_pixbuf_get_width (priv->map_render_pixbuf); height = gdk_pixbuf_get_height (priv->map_render_pixbuf); @@ -706,11 +697,7 @@ e_map_zoom_to_location (EMap *map, gdouble longitude, gdouble latitude) EMapPrivate *priv; g_return_if_fail (map); -#if GTK_CHECK_VERSION(2,19,7) g_return_if_fail (gtk_widget_get_realized (GTK_WIDGET (map))); -#else - g_return_if_fail (GTK_WIDGET_REALIZED (GTK_WIDGET (map))); -#endif priv = map->priv; @@ -730,11 +717,7 @@ e_map_zoom_out (EMap *map) EMapPrivate *priv; g_return_if_fail (map); -#if GTK_CHECK_VERSION(2,19,7) g_return_if_fail (gtk_widget_get_realized (GTK_WIDGET (map))); -#else - g_return_if_fail (GTK_WIDGET_REALIZED (GTK_WIDGET (map))); -#endif priv = map->priv; @@ -970,11 +953,7 @@ update_render_pixbuf (EMap *map, gdouble zoom; gint i; -#if GTK_CHECK_VERSION(2,19,7) if (!gtk_widget_get_realized (GTK_WIDGET (map))) -#else - if (!GTK_WIDGET_REALIZED (map)) -#endif return; gtk_widget_get_allocation (GTK_WIDGET (map), &allocation); @@ -1039,13 +1018,8 @@ request_paint_area (EMap *view, GdkRectangle *area) EMapPrivate *priv; gint width, height; -#if GTK_CHECK_VERSION(2,19,7) if (!gtk_widget_is_drawable (GTK_WIDGET (view)) || !gtk_widget_get_realized (GTK_WIDGET (view))) return; -#else - if (!GTK_WIDGET_DRAWABLE (GTK_WIDGET (view)) || - !GTK_WIDGET_REALIZED (GTK_WIDGET (view))) return; -#endif priv = view->priv; if (!priv->map_render_pixbuf) return; @@ -1255,11 +1229,7 @@ scroll_to (EMap *view, gint x, gint y) priv->xofs = x; priv->yofs = y; -#if GTK_CHECK_VERSION(2,19,7) if (!gtk_widget_is_drawable (GTK_WIDGET (view))) -#else - if (!GTK_WIDGET_DRAWABLE (view)) -#endif return; gtk_widget_get_allocation (GTK_WIDGET (view), &allocation); @@ -1573,11 +1543,7 @@ zoom_in_smooth (EMap *map) gdouble x, y; g_return_if_fail (map); -#if GTK_CHECK_VERSION(2,19,7) g_return_if_fail (gtk_widget_get_realized (GTK_WIDGET (map))); -#else - g_return_if_fail (GTK_WIDGET_REALIZED (GTK_WIDGET (map))); -#endif gtk_widget_get_allocation (GTK_WIDGET (map), &allocation); @@ -1744,11 +1710,7 @@ set_scroll_area (EMap *view) priv = view->priv; -#if GTK_CHECK_VERSION(2,19,7) if (!gtk_widget_get_realized (GTK_WIDGET (view))) return; -#else - if (!GTK_WIDGET_REALIZED (GTK_WIDGET (view))) return; -#endif if (!priv->hadj || !priv->vadj) return; g_object_freeze_notify (G_OBJECT (priv->hadj)); diff --git a/widgets/misc/e-menu-tool-button.c b/widgets/misc/e-menu-tool-button.c index 0d9599c2f4..5a87e7420a 100644 --- a/widgets/misc/e-menu-tool-button.c +++ b/widgets/misc/e-menu-tool-button.c @@ -50,8 +50,7 @@ menu_tool_button_get_first_menu_item (GtkMenuToolButton *menu_tool_button) if (!GTK_IS_MENU (menu)) return NULL; - /* XXX GTK+ 2.18 provides no accessor function. */ - children = GTK_MENU_SHELL (menu)->children; + children = gtk_container_get_children (GTK_CONTAINER (menu)); if (children == NULL) return NULL; diff --git a/widgets/misc/e-online-button.c b/widgets/misc/e-online-button.c index 601aaa4117..1157ecdb86 100644 --- a/widgets/misc/e-online-button.c +++ b/widgets/misc/e-online-button.c @@ -51,11 +51,7 @@ online_button_update_tooltip (EOnlineButton *button) if (e_online_button_get_online (button)) tooltip = ONLINE_TOOLTIP; -#if GTK_CHECK_VERSION(2,19,7) else if (gtk_widget_get_sensitive (GTK_WIDGET (button))) -#else - else if (GTK_WIDGET_SENSITIVE (button)) -#endif tooltip = OFFLINE_TOOLTIP; else tooltip = NETWORK_UNAVAILABLE_TOOLTIP; @@ -131,8 +127,8 @@ online_button_class_init (EOnlineButtonClass *class) PROP_ONLINE, g_param_spec_boolean ( "online", - _("Online"), - _("The button state is online"), + "Online", + "The button state is online", TRUE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); @@ -145,7 +141,7 @@ online_button_init (EOnlineButton *button) button->priv = E_ONLINE_BUTTON_GET_PRIVATE (button); - GTK_WIDGET_UNSET_FLAGS (button, GTK_CAN_FOCUS); + gtk_widget_set_can_focus (GTK_WIDGET (button), FALSE); gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE); widget = gtk_image_new (); diff --git a/widgets/misc/e-paned.c b/widgets/misc/e-paned.c index 2b4701b9ff..3f8b57011a 100644 --- a/widgets/misc/e-paned.c +++ b/widgets/misc/e-paned.c @@ -303,8 +303,8 @@ paned_class_init (EPanedClass *class) PROP_HPOSITION, g_param_spec_int ( "hposition", - _("Horizontal Position"), - _("Pane position when oriented horizontally"), + "Horizontal Position", + "Pane position when oriented horizontally", G_MININT, G_MAXINT, 0, @@ -315,8 +315,8 @@ paned_class_init (EPanedClass *class) PROP_VPOSITION, g_param_spec_int ( "vposition", - _("Vertical Position"), - _("Pane position when oriented vertically"), + "Vertical Position", + "Pane position when oriented vertically", G_MININT, G_MAXINT, 0, @@ -327,8 +327,8 @@ paned_class_init (EPanedClass *class) PROP_PROPORTION, g_param_spec_double ( "proportion", - _("Proportion"), - _("Proportion of the 2nd pane size"), + "Proportion", + "Proportion of the 2nd pane size", 0.0, 1.0, 0.0, @@ -339,8 +339,8 @@ paned_class_init (EPanedClass *class) PROP_FIXED_RESIZE, g_param_spec_boolean ( "fixed-resize", - _("Fixed Resize"), - _("Keep the 2nd pane fixed during resize"), + "Fixed Resize", + "Keep the 2nd pane fixed during resize", TRUE, G_PARAM_READWRITE)); } diff --git a/widgets/misc/e-preferences-window.c b/widgets/misc/e-preferences-window.c index 9390f047ca..6b38b682f2 100644 --- a/widgets/misc/e-preferences-window.c +++ b/widgets/misc/e-preferences-window.c @@ -336,7 +336,7 @@ preferences_window_init (EPreferencesWindow *window) g_signal_connect_swapped ( widget, "clicked", G_CALLBACK (gtk_widget_hide), window); - GTK_WIDGET_SET_FLAGS (widget, GTK_CAN_DEFAULT); + gtk_widget_set_can_default (widget, TRUE); gtk_box_pack_start (GTK_BOX (container), widget, FALSE, FALSE, 0); accel_group = gtk_accel_group_new (); gtk_widget_add_accelerator ( diff --git a/widgets/misc/e-search-bar.c b/widgets/misc/e-search-bar.c index 06b9ef6e78..aaf18b3912 100644 --- a/widgets/misc/e-search-bar.c +++ b/widgets/misc/e-search-bar.c @@ -92,11 +92,7 @@ search_bar_update_tokenizer (ESearchBar *search_bar) tokenizer = e_search_bar_get_tokenizer (search_bar); case_sensitive = e_search_bar_get_case_sensitive (search_bar); -#if GTK_CHECK_VERSION(2,19,7) if (gtk_widget_get_visible (GTK_WIDGET (search_bar))) -#else - if (GTK_WIDGET_VISIBLE (search_bar)) -#endif active_search = search_bar->priv->active_search; else active_search = NULL; diff --git a/widgets/misc/e-selection-model-array.c b/widgets/misc/e-selection-model-array.c index 9a2a6a8e68..3dc47e99c3 100644 --- a/widgets/misc/e-selection-model-array.c +++ b/widgets/misc/e-selection-model-array.c @@ -590,15 +590,15 @@ e_selection_model_array_class_init (ESelectionModelArrayClass *klass) g_object_class_install_property (object_class, PROP_CURSOR_ROW, g_param_spec_int ("cursor_row", - _("Cursor Row"), - /*_( */"XXX blurb" /*)*/, + "Cursor Row", + NULL, 0, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_CURSOR_COL, g_param_spec_int ("cursor_col", - _("Cursor Column"), - /*_( */"XXX blurb" /*)*/, + "Cursor Column", + NULL, 0, G_MAXINT, 0, G_PARAM_READWRITE)); } diff --git a/widgets/misc/e-selection-model.c b/widgets/misc/e-selection-model.c index bc858a4c34..882306df9e 100644 --- a/widgets/misc/e-selection-model.c +++ b/widgets/misc/e-selection-model.c @@ -213,23 +213,23 @@ e_selection_model_class_init (ESelectionModelClass *klass) g_object_class_install_property (object_class, PROP_SORTER, g_param_spec_object ("sorter", - _("Sorter"), - /*_( */"XXX blurb" /*)*/, + "Sorter", + NULL, E_SORTER_TYPE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_SELECTION_MODE, g_param_spec_int ("selection_mode", - _("Selection Mode"), - /*_( */"XXX blurb" /*)*/, + "Selection Mode", + NULL, GTK_SELECTION_NONE, GTK_SELECTION_MULTIPLE, GTK_SELECTION_SINGLE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_CURSOR_MODE, g_param_spec_int ("cursor_mode", - _("Cursor Mode"), - /*_( */"XXX blurb" /*)*/, + "Cursor Mode", + NULL, E_CURSOR_LINE, E_CURSOR_SPREADSHEET, E_CURSOR_LINE, G_PARAM_READWRITE)); diff --git a/widgets/misc/e-send-options.c b/widgets/misc/e-send-options.c index 4f2ad8a9a4..c93dceff88 100644 --- a/widgets/misc/e-send-options.c +++ b/widgets/misc/e-send-options.c @@ -495,11 +495,11 @@ setup_widgets (ESendOptionsDialog *sod, Item_type type) gtk_label_set_mnemonic_widget (GTK_LABEL (priv->until_label), priv->delay_until); if (priv->global) { - GtkWidget *widget = gtk_label_new ("Calendar"); - gtk_label_set_text (GTK_LABEL (priv->sopts_label), "Mail"); + GtkWidget *widget = gtk_label_new (_("Calendar")); + gtk_label_set_text (GTK_LABEL (priv->sopts_label), _("Mail")); gtk_notebook_append_page (priv->notebook, priv->status, widget); gtk_widget_show (widget); - widget = gtk_label_new ("Task"); + widget = gtk_label_new (_("Task")); gtk_widget_show (widget); gtk_notebook_append_page (priv->notebook, priv->status,widget); gtk_notebook_set_show_tabs (priv->notebook, TRUE); diff --git a/widgets/misc/e-send-options.ui b/widgets/misc/e-send-options.ui index c5911d456a..5ca5e7045f 100644 --- a/widgets/misc/e-send-options.ui +++ b/widgets/misc/e-send-options.ui @@ -194,7 +194,7 @@ <property name="row_spacing">12</property> <child> <object class="GtkRadioButton" id="reply-within"> - <property name="label" translatable="yes">Wi_thin</property> + <property name="label" translatable="yes" comments="Translators: This is part of 'Within [ X ] days', where [ X ] is a spinner with a number" context="ESendOptionsWithin">Wi_thin</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> @@ -227,7 +227,7 @@ <object class="GtkLabel" id="label93"> <property name="visible">True</property> <property name="xalign">0</property> - <property name="label" translatable="yes">days</property> + <property name="label" translatable="yes" comments="Translators: This is part of 'Within [ X ] days', where [ X ] is a spinner with a number" context="ESendOptionsWithin">days</property> </object> <packing> <property name="left_attach">2</property> @@ -334,7 +334,7 @@ <object class="GtkLabel" id="label96"> <property name="visible">True</property> <property name="xalign">0</property> - <property name="label" translatable="yes">_After:</property> + <property name="label" translatable="yes" comments="Translators: This is part of 'After [ X ] days', where [ X ] is a spinner with a number" context="ESendOptionsAfter">_After</property> <property name="use_underline">True</property> <property name="mnemonic_widget">expire-after</property> </object> @@ -361,7 +361,7 @@ <object class="GtkLabel" id="label97"> <property name="visible">True</property> <property name="xalign">0</property> - <property name="label" translatable="yes">days</property> + <property name="label" translatable="yes" comments="Translators: This is part of 'After [ X ] days', where [ X ] is a spinner with a number" context="ESendOptionsAfter">days</property> </object> <packing> <property name="expand">False</property> @@ -423,7 +423,7 @@ <object class="GtkLabel" id="until-label"> <property name="visible">True</property> <property name="xalign">0</property> - <property name="label" translatable="yes">_Until:</property> + <property name="label" translatable="yes" comments="Translators: This is part of 'Until [ date ]', where [ date ] is a date picker" context="ESendOptions">_Until</property> <property name="use_underline">True</property> <property name="mnemonic_widget">until-date</property> </object> diff --git a/widgets/misc/e-spinner.c b/widgets/misc/e-spinner.c deleted file mode 100644 index 5e7833b34f..0000000000 --- a/widgets/misc/e-spinner.c +++ /dev/null @@ -1,992 +0,0 @@ -/* - * Copyright © 2000 Eazel, Inc. - * Copyright © 2002-2004 Marco Pesenti Gritti - * Copyright © 2004, 2006 Christian Persch - * - * Nautilus is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * Nautilus is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Author: Andy Hertzfeld <andy@eazel.com> - * - * Ephy port by Marco Pesenti Gritti <marco@it.gnome.org> - * - * $Id: e-spinner.c 12639 2006-12-12 17:06:55Z chpe $ - */ - -/* - * From Nautilus ephy-spinner.c - */ - -#include "config.h" - -#include "e-spinner.h" - -#define E_TYPE_SPINNER (e_spinner_get_type ()) -#define E_SPINNER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), E_TYPE_SPINNER, ESpinner)) -#define E_SPINNER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), E_TYPE_SPINNER, ESpinnerClass)) -#define E_IS_SPINNER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), E_TYPE_SPINNER)) -#define E_IS_SPINNER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), E_TYPE_SPINNER)) -#define E_SPINNER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), E_TYPE_SPINNER, ESpinnerClass)) - -typedef struct _ESpinner ESpinner; -typedef struct _ESpinnerClass ESpinnerClass; -typedef struct _ESpinnerDetails ESpinnerDetails; - -struct _ESpinner -{ - GtkWidget parent; - - /*< private >*/ - ESpinnerDetails *details; -}; - -struct _ESpinnerClass -{ - GtkWidgetClass parent_class; -}; - -#define LOG(msg, args...) -#define START_PROFILER(name) -#define STOP_PROFILER(name) - -#include "e-util/e-icon-factory.h" - -/* Spinner cache implementation */ - -#define E_TYPE_SPINNER_CACHE (e_spinner_cache_get_type()) -#define E_SPINNER_CACHE(object) (G_TYPE_CHECK_INSTANCE_CAST((object), E_TYPE_SPINNER_CACHE, ESpinnerCache)) -#define E_SPINNER_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), E_TYPE_SPINNER_CACHE, ESpinnerCacheClass)) -#define E_IS_SPINNER_CACHE(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), E_TYPE_SPINNER_CACHE)) -#define E_IS_SPINNER_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), E_TYPE_SPINNER_CACHE)) -#define E_SPINNER_CACHE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), E_TYPE_SPINNER_CACHE, ESpinnerCacheClass)) - -typedef struct _ESpinnerCache ESpinnerCache; -typedef struct _ESpinnerCacheClass ESpinnerCacheClass; -typedef struct _ESpinnerCachePrivate ESpinnerCachePrivate; - -struct _ESpinnerCacheClass -{ - GObjectClass parent_class; -}; - -struct _ESpinnerCache -{ - GObject parent_object; - - /*< private >*/ - ESpinnerCachePrivate *priv; -}; - -#define E_SPINNER_CACHE_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), E_TYPE_SPINNER_CACHE, ESpinnerCachePrivate)) - -struct _ESpinnerCachePrivate -{ - /* Hash table of GdkScreen -> ESpinnerCacheData */ - GHashTable *hash; -}; - -typedef struct -{ - guint ref_count; - GtkIconSize size; - gint width; - gint height; - GdkPixbuf **animation_pixbufs; - guint n_animation_pixbufs; -} ESpinnerImages; - -#define LAST_ICON_SIZE GTK_ICON_SIZE_DIALOG + 1 -#define SPINNER_ICON_NAME "process-working" -#define SPINNER_FALLBACK_ICON_NAME "gnome-spinner" -#define E_SPINNER_IMAGES_INVALID ((ESpinnerImages *) 0x1) - -typedef struct -{ - GdkScreen *screen; - GtkIconTheme *icon_theme; - ESpinnerImages *images[LAST_ICON_SIZE]; -} ESpinnerCacheData; - -static void e_spinner_cache_class_init (ESpinnerCacheClass *klass); -static void e_spinner_cache_init (ESpinnerCache *cache); - -static GObjectClass *e_spinner_cache_parent_class; -static gpointer spinner_cache = NULL; - -static GType -e_spinner_cache_get_type (void) -{ - static GType type = 0; - - if (G_UNLIKELY (type == 0)) - { - const GTypeInfo our_info = - { - sizeof (ESpinnerCacheClass), - NULL, - NULL, - (GClassInitFunc) e_spinner_cache_class_init, - NULL, - NULL, - sizeof (ESpinnerCache), - 0, - (GInstanceInitFunc) e_spinner_cache_init - }; - - type = g_type_register_static (G_TYPE_OBJECT, - "ESpinnerCache", - &our_info, 0); - } - - return type; -} - -static ESpinnerImages * -e_spinner_images_ref (ESpinnerImages *images) -{ - g_return_val_if_fail (images != NULL, NULL); - - images->ref_count++; - - return images; -} - -static void -e_spinner_images_unref (ESpinnerImages *images) -{ - g_return_if_fail (images != NULL); - - images->ref_count--; - if (images->ref_count == 0) - { - guint i; - - LOG ("Freeing spinner images %p for size %d", images, images->size); - - for (i = 0; i < images->n_animation_pixbufs; ++i) - { - g_object_unref (images->animation_pixbufs[i]); - } - g_free (images->animation_pixbufs); - - g_free (images); - } -} - -static void -e_spinner_cache_data_unload (ESpinnerCacheData *data) -{ - GtkIconSize size; - ESpinnerImages *images; - - g_return_if_fail (data != NULL); - - LOG ("ESpinnerDataCache unload for screen %p", data->screen); - - for (size = GTK_ICON_SIZE_INVALID; size < LAST_ICON_SIZE; ++size) - { - images = data->images[size]; - data->images[size] = NULL; - - if (images != NULL && images != E_SPINNER_IMAGES_INVALID) - { - e_spinner_images_unref (images); - } - } -} - -static GdkPixbuf * -extract_frame (GdkPixbuf *grid_pixbuf, - gint x, - gint y, - gint size) -{ - GdkPixbuf *pixbuf; - - if (x + size > gdk_pixbuf_get_width (grid_pixbuf) || - y + size > gdk_pixbuf_get_height (grid_pixbuf)) - { - return NULL; - } - - pixbuf = gdk_pixbuf_new_subpixbuf (grid_pixbuf, - x, y, - size, size); - g_return_val_if_fail (pixbuf != NULL, NULL); - - return pixbuf; -} - -static GdkPixbuf * -scale_to_size (GdkPixbuf *pixbuf, - gint dw, - gint dh) -{ - GdkPixbuf *result; - gint pw, ph; - - g_return_val_if_fail (pixbuf != NULL, NULL); - - pw = gdk_pixbuf_get_width (pixbuf); - ph = gdk_pixbuf_get_height (pixbuf); - - if (pw != dw || ph != dh) - { - result = e_icon_factory_pixbuf_scale (pixbuf, dw, dh); - g_object_unref (pixbuf); - return result; - } - - return pixbuf; -} - -static ESpinnerImages * -e_spinner_images_load (GdkScreen *screen, - GtkIconTheme *icon_theme, - GtkIconSize icon_size) -{ - ESpinnerImages *images; - GdkPixbuf *icon_pixbuf, *pixbuf; - GtkIconInfo *icon_info = NULL; - gint grid_width, grid_height, x, y, requested_size, size, isw, ish, n; - const gchar *icon; - GSList *list = NULL, *l; - - LOG ("ESpinnerCacheData loading for screen %p at size %d", screen, icon_size); - - START_PROFILER ("loading spinner animation") - - if (!gtk_icon_size_lookup_for_settings (gtk_settings_get_for_screen (screen), - icon_size, &isw, &ish)) goto loser; - - requested_size = MAX (ish, isw); - - /* Load the animation. The 'rest icon' is the 0th frame */ - icon_info = gtk_icon_theme_lookup_icon (icon_theme, - SPINNER_ICON_NAME, - requested_size, 0); - if (icon_info == NULL) - { - g_warning ("Throbber animation not found"); - - /* If the icon naming spec compliant name wasn't found, try the old name */ - icon_info = gtk_icon_theme_lookup_icon (icon_theme, - SPINNER_FALLBACK_ICON_NAME, - requested_size, 0); - if (icon_info == NULL) - { - g_warning ("Throbber fallback animation not found either"); - goto loser; - } - } - if (icon_info == NULL) { - g_warning ("icon_info is NULL"); - goto loser; - } - - size = gtk_icon_info_get_base_size (icon_info); - icon = gtk_icon_info_get_filename (icon_info); - if (icon == NULL) goto loser; - - icon_pixbuf = gdk_pixbuf_new_from_file (icon, NULL); - gtk_icon_info_free (icon_info); - icon_info = NULL; - - if (icon_pixbuf == NULL) - { - g_warning ("Could not load the spinner file"); - goto loser; - } - - grid_width = gdk_pixbuf_get_width (icon_pixbuf); - grid_height = gdk_pixbuf_get_height (icon_pixbuf); - - n = 0; - for (y = 0; y < grid_height; y += size) - { - for (x = 0; x < grid_width; x += size) - { - pixbuf = extract_frame (icon_pixbuf, x, y, size); - - if (pixbuf) - { - list = g_slist_prepend (list, pixbuf); - ++n; - } - else - { - g_warning ("Cannot extract frame (%d, %d) from the grid\n", x, y); - } - } - } - - g_object_unref (icon_pixbuf); - - if (list == NULL || n <= 0) goto loser; - - if (size > requested_size) - { - for (l = list; l != NULL; l = l->next) - { - l->data = scale_to_size (l->data, isw, ish); - } - } - - /* Now we've successfully got all the data */ - images = g_new (ESpinnerImages, 1); - images->ref_count = 1; - - images->size = icon_size; - images->width = images->height = requested_size; - - images->n_animation_pixbufs = n; - images->animation_pixbufs = g_new (GdkPixbuf *, n); - - for (l = list; l != NULL; l = l->next) - { - if (l->data) - images->animation_pixbufs[--n] = l->data; - } - if (n != 0) { - g_warning ("n != 0 \n"); - } - - g_slist_free (list); - - STOP_PROFILER ("loading spinner animation") - - return images; - -loser: - if (icon_info) - { - gtk_icon_info_free (icon_info); - } - g_slist_foreach (list, (GFunc) g_object_unref, NULL); - - STOP_PROFILER ("loading spinner animation") - - return NULL; -} - -static ESpinnerCacheData * -e_spinner_cache_data_new (GdkScreen *screen) -{ - ESpinnerCacheData *data; - - data = g_new0 (ESpinnerCacheData, 1); - - data->screen = screen; - data->icon_theme = gtk_icon_theme_get_for_screen (screen); - g_signal_connect_swapped (data->icon_theme, "changed", - G_CALLBACK (e_spinner_cache_data_unload), - data); - - return data; -} - -static void -e_spinner_cache_data_free (ESpinnerCacheData *data) -{ - g_return_if_fail (data != NULL); - g_return_if_fail (data->icon_theme != NULL); - - g_signal_handlers_disconnect_by_func - (data->icon_theme, - G_CALLBACK (e_spinner_cache_data_unload), data); - - e_spinner_cache_data_unload (data); - - g_free (data); -} - -static ESpinnerImages * -e_spinner_cache_get_images (ESpinnerCache *cache, - GdkScreen *screen, - GtkIconSize icon_size) -{ - ESpinnerCachePrivate *priv = cache->priv; - ESpinnerCacheData *data; - ESpinnerImages *images; - - LOG ("Getting animation images for screen %p at size %d", screen, icon_size); - - g_return_val_if_fail (icon_size < LAST_ICON_SIZE, NULL); - - /* Backward compat: "invalid" meant "native" size which doesn't exist anymore */ - if (icon_size == GTK_ICON_SIZE_INVALID) - { - icon_size = GTK_ICON_SIZE_DIALOG; - } - - data = g_hash_table_lookup (priv->hash, screen); - if (data == NULL) - { - data = e_spinner_cache_data_new (screen); - /* FIXME: think about what happens when the screen's display is closed later on */ - g_hash_table_insert (priv->hash, screen, data); - } - - images = data->images[icon_size]; - if (images == E_SPINNER_IMAGES_INVALID) - { - /* Load failed, but don't try endlessly again! */ - return NULL; - } - - if (images != NULL) - { - /* Return cached data */ - return e_spinner_images_ref (images); - } - - images = e_spinner_images_load (screen, data->icon_theme, icon_size); - - if (images == NULL) - { - /* Mark as failed-to-load */ - data->images[icon_size] = E_SPINNER_IMAGES_INVALID; - - return NULL; - } - - data->images[icon_size] = images; - - return e_spinner_images_ref (images); -} - -static void -e_spinner_cache_init (ESpinnerCache *cache) -{ - ESpinnerCachePrivate *priv; - - priv = cache->priv = E_SPINNER_CACHE_GET_PRIVATE (cache); - - LOG ("ESpinnerCache initialising"); - - priv->hash = g_hash_table_new_full (g_direct_hash, g_direct_equal, - NULL, - (GDestroyNotify) e_spinner_cache_data_free); -} - -static void -e_spinner_cache_finalize (GObject *object) -{ - ESpinnerCache *cache = E_SPINNER_CACHE (object); - ESpinnerCachePrivate *priv = cache->priv; - - g_hash_table_destroy (priv->hash); - - LOG ("ESpinnerCache finalised"); - - G_OBJECT_CLASS (e_spinner_cache_parent_class)->finalize (object); -} - -static void -e_spinner_cache_class_init (ESpinnerCacheClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - - e_spinner_cache_parent_class = g_type_class_peek_parent (klass); - - object_class->finalize = e_spinner_cache_finalize; - - g_type_class_add_private (object_class, sizeof (ESpinnerCachePrivate)); -} - -static ESpinnerCache * -e_spinner_cache_ref (void) -{ - if (G_UNLIKELY (spinner_cache == NULL)) - { - spinner_cache = g_object_new (E_TYPE_SPINNER_CACHE, NULL); - g_object_add_weak_pointer ( - G_OBJECT (spinner_cache), &spinner_cache); - } - - return g_object_ref_sink (spinner_cache); -} - -/* Spinner implementation */ - -#define SPINNER_TIMEOUT 125 /* ms */ - -#define E_SPINNER_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), E_TYPE_SPINNER, ESpinnerDetails)) - -struct _ESpinnerDetails -{ - GtkIconTheme *icon_theme; - ESpinnerCache *cache; - GtkIconSize size; - ESpinnerImages *images; - guint current_image; - guint timeout; - guint timer_task; - guint spinning : 1; - guint need_load : 1; -}; - -static void e_spinner_class_init (ESpinnerClass *class); -static void e_spinner_init (ESpinner *spinner); - -static GObjectClass *parent_class; - -static GType -e_spinner_get_type (void) -{ - static GType type = 0; - - if (G_UNLIKELY (type == 0)) - { - const GTypeInfo our_info = - { - sizeof (ESpinnerClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) e_spinner_class_init, - NULL, - NULL, /* class_data */ - sizeof (ESpinner), - 0, /* n_preallocs */ - (GInstanceInitFunc) e_spinner_init - }; - - type = g_type_register_static (GTK_TYPE_WIDGET, - "ESpinner", - &our_info, 0); - } - - return type; -} - -static gboolean -e_spinner_load_images (ESpinner *spinner) -{ - ESpinnerDetails *details = spinner->details; - - if (details->need_load) - { - START_PROFILER ("e_spinner_load_images") - - details->images = - e_spinner_cache_get_images - (details->cache, - gtk_widget_get_screen (GTK_WIDGET (spinner)), - details->size); - - STOP_PROFILER ("e_spinner_load_images") - - details->current_image = 0; /* 'rest' icon */ - details->need_load = FALSE; - } - - return details->images != NULL; -} - -static void -e_spinner_unload_images (ESpinner *spinner) -{ - ESpinnerDetails *details = spinner->details; - - if (details->images != NULL) - { - e_spinner_images_unref (details->images); - details->images = NULL; - } - - details->current_image = 0; - details->need_load = TRUE; -} - -static void -icon_theme_changed_cb (GtkIconTheme *icon_theme, - ESpinner *spinner) -{ - e_spinner_unload_images (spinner); - gtk_widget_queue_resize (GTK_WIDGET (spinner)); -} - -static void -e_spinner_init (ESpinner *spinner) -{ - ESpinnerDetails *details; - - details = spinner->details = E_SPINNER_GET_PRIVATE (spinner); - - GTK_WIDGET_SET_FLAGS (GTK_WIDGET (spinner), GTK_NO_WINDOW); - - details->cache = e_spinner_cache_ref (); - details->size = GTK_ICON_SIZE_DIALOG; - details->spinning = FALSE; - details->timeout = SPINNER_TIMEOUT; - details->need_load = TRUE; -} - -static gint -e_spinner_expose (GtkWidget *widget, - GdkEventExpose *event) -{ - ESpinner *spinner = E_SPINNER (widget); - ESpinnerDetails *details = spinner->details; - ESpinnerImages *images; - GtkAllocation allocation; - GdkPixbuf *pixbuf; - GdkWindow *window; - GdkGC *gc; - gint x_offset, y_offset, width, height; - GdkRectangle pix_area, dest; - -#if GTK_CHECK_VERSION(2,19,7) - if (!gtk_widget_is_drawable (GTK_WIDGET (spinner))) -#else - if (!GTK_WIDGET_DRAWABLE (spinner)) -#endif - { - return FALSE; - } - - if (details->need_load && - !e_spinner_load_images (spinner)) - { - return FALSE; - } - - images = details->images; - if (images == NULL) - { - return FALSE; - } - - /* Otherwise |images| will be NULL anyway */ - g_return_val_if_fail (images->n_animation_pixbufs > 0, FALSE); - - g_return_val_if_fail ( - details->current_image < images->n_animation_pixbufs, FALSE); - - pixbuf = images->animation_pixbufs[details->current_image]; - - g_return_val_if_fail (pixbuf != NULL, FALSE); - - width = gdk_pixbuf_get_width (pixbuf); - height = gdk_pixbuf_get_height (pixbuf); - - gtk_widget_get_allocation (widget, &allocation); - - /* Compute the offsets for the image centered on our allocation */ - x_offset = (allocation.width - width) / 2; - y_offset = (allocation.height - height) / 2; - - pix_area.x = x_offset + allocation.x; - pix_area.y = y_offset + allocation.y; - pix_area.width = width; - pix_area.height = height; - - if (!gdk_rectangle_intersect (&event->area, &pix_area, &dest)) - { - return FALSE; - } - - window = gtk_widget_get_window (widget); - - gc = gdk_gc_new (window); - gdk_draw_pixbuf (window, gc, pixbuf, - dest.x - x_offset - allocation.x, - dest.y - y_offset - allocation.y, - dest.x, dest.y, - dest.width, dest.height, - GDK_RGB_DITHER_MAX, 0, 0); - g_object_unref (gc); - - return FALSE; -} - -static gboolean -bump_spinner_frame_cb (ESpinner *spinner) -{ - ESpinnerDetails *details = spinner->details; - - /* This can happen when we've unloaded the images on a theme - * change, but haven't been in the queued size request yet. - * Just skip this update. - */ - if (details->images == NULL) return TRUE; - - details->current_image++; - if (details->current_image >= details->images->n_animation_pixbufs) - { - /* the 0th frame is the 'rest' icon */ - details->current_image = MIN (1, details->images->n_animation_pixbufs); - } - - gtk_widget_queue_draw (GTK_WIDGET (spinner)); - - /* run again */ - return TRUE; -} - -static void -e_spinner_start (ESpinner *spinner) -{ - ESpinnerDetails *details = spinner->details; - - details->spinning = TRUE; - -#if GTK_CHECK_VERSION(2,19,7) - if (gtk_widget_get_mapped (GTK_WIDGET (spinner)) && -#else - if (GTK_WIDGET_MAPPED (GTK_WIDGET (spinner)) && -#endif - details->timer_task == 0 && - e_spinner_load_images (spinner)) - { - /* the 0th frame is the 'rest' icon */ - details->current_image = MIN (1, details->images->n_animation_pixbufs); - - details->timer_task = - g_timeout_add_full (G_PRIORITY_LOW, - details->timeout, - (GSourceFunc) bump_spinner_frame_cb, - spinner, - NULL); - } -} - -static void -e_spinner_remove_update_callback (ESpinner *spinner) -{ - ESpinnerDetails *details = spinner->details; - - if (details->timer_task != 0) - { - g_source_remove (details->timer_task); - details->timer_task = 0; - } -} - -static void -e_spinner_set_size (ESpinner *spinner, - GtkIconSize size) -{ - if (size == GTK_ICON_SIZE_INVALID) - { - size = GTK_ICON_SIZE_DIALOG; - } - - if (size != spinner->details->size) - { - e_spinner_unload_images (spinner); - - spinner->details->size = size; - - gtk_widget_queue_resize (GTK_WIDGET (spinner)); - } -} - -#if 0 - -static void -e_spinner_stop (ESpinner *spinner) -{ - ESpinnerDetails *details = spinner->details; - - details->spinning = FALSE; - details->current_image = 0; - - if (details->timer_task != 0) - { - e_spinner_remove_update_callback (spinner); - - if (GTK_WIDGET_MAPPED (GTK_WIDGET (spinner))) - { - gtk_widget_queue_draw (GTK_WIDGET (spinner)); - } - } -} - -/* - * e_spinner_set_timeout: - * @spinner: a #ESpinner - * @timeout: time delay between updates to the spinner. - * - * Sets the timeout delay for spinner updates. - **/ -void -e_spinner_set_timeout (ESpinner *spinner, - guint timeout) -{ - ESpinnerDetails *details = spinner->details; - - if (timeout != details->timeout) - { - e_spinner_stop (spinner); - - details->timeout = timeout; - - if (details->spinning) - { - e_spinner_start (spinner); - } - } -} -#endif - -static void -e_spinner_size_request (GtkWidget *widget, - GtkRequisition *requisition) -{ - ESpinner *spinner = E_SPINNER (widget); - ESpinnerDetails *details = spinner->details; - - if ((details->need_load && - !e_spinner_load_images (spinner)) || - details->images == NULL) - { - requisition->width = requisition->height = 0; - gtk_icon_size_lookup_for_settings (gtk_widget_get_settings (widget), - details->size, - &requisition->width, - &requisition->height); - return; - } - - requisition->width = details->images->width; - requisition->height = details->images->height; - - /* FIXME fix this hack */ - /* allocate some extra margin so we don't butt up against toolbar edges */ - if (details->size != GTK_ICON_SIZE_MENU) - { - requisition->width += 2; - requisition->height += 2; - } -} - -static void -e_spinner_map (GtkWidget *widget) -{ - ESpinner *spinner = E_SPINNER (widget); - ESpinnerDetails *details = spinner->details; - - GTK_WIDGET_CLASS (parent_class)->map (widget); - - if (details->spinning) - { - e_spinner_start (spinner); - } -} - -static void -e_spinner_unmap (GtkWidget *widget) -{ - ESpinner *spinner = E_SPINNER (widget); - - e_spinner_remove_update_callback (spinner); - - GTK_WIDGET_CLASS (parent_class)->unmap (widget); -} - -static void -e_spinner_dispose (GObject *object) -{ - ESpinner *spinner = E_SPINNER (object); - - if (spinner->details->icon_theme) - g_signal_handlers_disconnect_by_func - (spinner->details->icon_theme, - G_CALLBACK (icon_theme_changed_cb), spinner); - - G_OBJECT_CLASS (parent_class)->dispose (object); -} - -static void -e_spinner_finalize (GObject *object) -{ - ESpinner *spinner = E_SPINNER (object); - - e_spinner_remove_update_callback (spinner); - e_spinner_unload_images (spinner); - - g_object_unref (spinner->details->cache); - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - -static void -e_spinner_screen_changed (GtkWidget *widget, - GdkScreen *old_screen) -{ - ESpinner *spinner = E_SPINNER (widget); - ESpinnerDetails *details = spinner->details; - GdkScreen *screen; - - if (GTK_WIDGET_CLASS (parent_class)->screen_changed) - { - GTK_WIDGET_CLASS (parent_class)->screen_changed (widget, old_screen); - } - - screen = gtk_widget_get_screen (widget); - - /* FIXME: this seems to be happening when then spinner is destroyed!? */ - if (old_screen == screen) return; - - /* We'll get mapped again on the new screen, but not unmapped from - * the old screen, so remove timeout here. - */ - e_spinner_remove_update_callback (spinner); - - e_spinner_unload_images (spinner); - - if (old_screen != NULL) - { - g_signal_handlers_disconnect_by_func - (gtk_icon_theme_get_for_screen (old_screen), - G_CALLBACK (icon_theme_changed_cb), spinner); - } - - details->icon_theme = gtk_icon_theme_get_for_screen (screen); - g_signal_connect (details->icon_theme, "changed", - G_CALLBACK (icon_theme_changed_cb), spinner); -} - -static void -e_spinner_class_init (ESpinnerClass *class) -{ - GObjectClass *object_class = G_OBJECT_CLASS (class); - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class); - - parent_class = g_type_class_peek_parent (class); - - object_class->dispose = e_spinner_dispose; - object_class->finalize = e_spinner_finalize; - - widget_class->expose_event = e_spinner_expose; - widget_class->size_request = e_spinner_size_request; - widget_class->map = e_spinner_map; - widget_class->unmap = e_spinner_unmap; - widget_class->screen_changed = e_spinner_screen_changed; - - g_type_class_add_private (object_class, sizeof (ESpinnerDetails)); -} - -GtkWidget *e_spinner_new_spinning_small_shown (void) -{ - ESpinner *image; - image = E_SPINNER (g_object_new (E_TYPE_SPINNER, NULL)); - - e_spinner_set_size (image, GTK_ICON_SIZE_SMALL_TOOLBAR); - e_spinner_start (image); - gtk_widget_show (GTK_WIDGET(image)); - - return GTK_WIDGET (image); -} diff --git a/widgets/misc/e-spinner.h b/widgets/misc/e-spinner.h deleted file mode 100644 index 0fb97d945e..0000000000 --- a/widgets/misc/e-spinner.h +++ /dev/null @@ -1,39 +0,0 @@ -/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */ -/* - * Copyright © 2000 Eazel, Inc. - * Copyright © 2004, 2006 Christian Persch - * - * Nautilus is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * Nautilus is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - * - * Author: Andy Hertzfeld <andy@eazel.com> - * - * $Id: ephy-spinner.h 12639 2006-12-12 17:06:55Z chpe $ - */ - -/* - * From Nautilus ephy-spinner.h - */ -#ifndef E_SPINNER_H -#define E_SPINNER_H - -#include <gtk/gtk.h> - -G_BEGIN_DECLS - -GtkWidget *e_spinner_new_spinning_small_shown (void); - -G_END_DECLS - -#endif /* E_SPINNER_H */ diff --git a/widgets/misc/e-web-view-preview.c b/widgets/misc/e-web-view-preview.c new file mode 100644 index 0000000000..e268779827 --- /dev/null +++ b/widgets/misc/e-web-view-preview.c @@ -0,0 +1,481 @@ +/* + * e-web-view-preview.c + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the program; if not, see <http://www.gnu.org/licenses/> + * + * + * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) + * + */ + +#include "e-web-view-preview.h" + +#include <config.h> +#include <string.h> +#include <glib/gi18n-lib.h> + +#define E_WEB_VIEW_PREVIEW_GET_PRIVATE(obj) \ + (G_TYPE_INSTANCE_GET_PRIVATE \ + ((obj), E_TYPE_WEB_VIEW_PREVIEW, EWebViewPreviewPrivate)) + +struct _EWebViewPreviewPrivate { + gboolean escape_values; + GString *updating_content; /* is NULL when not between begin_update/end_update */ +}; + +enum { + PROP_0, + PROP_TREE_VIEW, + PROP_PREVIEW_WIDGET, + PROP_ESCAPE_VALUES +}; + +G_DEFINE_TYPE (EWebViewPreview, e_web_view_preview, GTK_TYPE_VPANED); + +static void +web_view_preview_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + switch (property_id) { + case PROP_ESCAPE_VALUES: + e_web_view_preview_set_escape_values ( + E_WEB_VIEW_PREVIEW (object), + g_value_get_boolean (value)); + return; + } + + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +} + +static void +web_view_preview_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + switch (property_id) { + case PROP_TREE_VIEW: + g_value_set_object ( + value, e_web_view_preview_get_tree_view ( + E_WEB_VIEW_PREVIEW (object))); + return; + + case PROP_PREVIEW_WIDGET: + g_value_set_object ( + value, e_web_view_preview_get_preview ( + E_WEB_VIEW_PREVIEW (object))); + return; + + case PROP_ESCAPE_VALUES: + g_value_set_boolean ( + value, e_web_view_preview_get_escape_values ( + E_WEB_VIEW_PREVIEW (object))); + return; + } + + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); +} + +static void +web_view_preview_dispose (GObject *object) +{ + EWebViewPreviewPrivate *priv; + + priv = E_WEB_VIEW_PREVIEW_GET_PRIVATE (object); + + if (priv->updating_content != NULL) { + g_string_free (priv->updating_content, TRUE); + priv->updating_content = NULL; + } + + /* Chain up to parent's dispose() method. */ + G_OBJECT_CLASS (e_web_view_preview_parent_class)->dispose (object); +} + +static void +e_web_view_preview_class_init (EWebViewPreviewClass *klass) +{ + GObjectClass *object_class; + + g_type_class_add_private (klass, sizeof (EWebViewPreviewPrivate)); + + object_class = G_OBJECT_CLASS (klass); + object_class->set_property = web_view_preview_set_property; + object_class->get_property = web_view_preview_get_property; + object_class->dispose = web_view_preview_dispose; + + g_object_class_install_property ( + object_class, + PROP_TREE_VIEW, + g_param_spec_object ( + "tree-view", + "Tree View", + NULL, + GTK_TYPE_TREE_VIEW, + G_PARAM_READABLE)); + + g_object_class_install_property ( + object_class, + PROP_PREVIEW_WIDGET, + g_param_spec_object ( + "preview-widget", + "Preview Widget", + NULL, + GTK_TYPE_WIDGET, + G_PARAM_READABLE)); + + g_object_class_install_property ( + object_class, + PROP_ESCAPE_VALUES, + g_param_spec_boolean ( + "escape-values", + "Whether escaping values automatically, when inserting", + NULL, + TRUE, + G_PARAM_READWRITE)); +} + +static GtkWidget * +in_scrolled_window (GtkWidget *widget) +{ + GtkWidget *sw; + + g_return_val_if_fail (widget != NULL, NULL); + + sw = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); + gtk_container_add (GTK_CONTAINER (sw), widget); + + gtk_widget_show (widget); + gtk_widget_show (sw); + + return sw; +} + +static void +e_web_view_preview_init (EWebViewPreview *preview) +{ + GtkWidget *tree_view_sw, *web_view_sw; + EWebViewPreviewPrivate *priv; + + priv = E_WEB_VIEW_PREVIEW_GET_PRIVATE (preview); + preview->priv = priv; + priv->escape_values = TRUE; + + tree_view_sw = in_scrolled_window (gtk_tree_view_new ()); + web_view_sw = in_scrolled_window (e_web_view_new ()); + + gtk_widget_hide (tree_view_sw); + gtk_widget_show (web_view_sw); + + gtk_paned_pack1 (GTK_PANED (preview), tree_view_sw, FALSE, TRUE); + gtk_paned_pack2 (GTK_PANED (preview), web_view_sw, TRUE, TRUE); + + /* rawly 3 lines of a text plus a little bit more */ + if (gtk_paned_get_position (GTK_PANED (preview)) < 85) + gtk_paned_set_position (GTK_PANED (preview), 85); +} + +GtkWidget * +e_web_view_preview_new (void) +{ + return g_object_new (E_TYPE_WEB_VIEW_PREVIEW, NULL); +} + +GtkTreeView * +e_web_view_preview_get_tree_view (EWebViewPreview *preview) +{ + g_return_val_if_fail (preview != NULL, NULL); + g_return_val_if_fail (E_IS_WEB_VIEW_PREVIEW (preview), NULL); + + return GTK_TREE_VIEW (gtk_bin_get_child (GTK_BIN (gtk_paned_get_child1 (GTK_PANED (preview))))); +} + +GtkWidget * +e_web_view_preview_get_preview (EWebViewPreview *preview) +{ + g_return_val_if_fail (preview != NULL, NULL); + g_return_val_if_fail (E_IS_WEB_VIEW_PREVIEW (preview), NULL); + + return gtk_bin_get_child (GTK_BIN (gtk_paned_get_child2 (GTK_PANED (preview)))); +} + +void +e_web_view_preview_set_preview (EWebViewPreview *preview, GtkWidget *preview_widget) +{ + GtkWidget *old_child; + + g_return_if_fail (preview != NULL); + g_return_if_fail (E_IS_WEB_VIEW_PREVIEW (preview)); + g_return_if_fail (preview_widget != NULL); + g_return_if_fail (GTK_IS_WIDGET (preview_widget)); + + old_child = gtk_bin_get_child (GTK_BIN (gtk_paned_get_child2 (GTK_PANED (preview)))); + if (old_child) { + g_return_if_fail (old_child != preview_widget); + gtk_widget_destroy (old_child); + } + + gtk_container_add (GTK_CONTAINER (gtk_paned_get_child2 (GTK_PANED (preview))), preview_widget); +} + +void +e_web_view_preview_show_tree_view (EWebViewPreview *preview) +{ + g_return_if_fail (preview != NULL); + g_return_if_fail (E_IS_WEB_VIEW_PREVIEW (preview)); + + gtk_widget_show (gtk_paned_get_child1 (GTK_PANED (preview))); +} + +void +e_web_view_preview_hide_tree_view(EWebViewPreview *preview) +{ + g_return_if_fail (preview != NULL); + g_return_if_fail (E_IS_WEB_VIEW_PREVIEW (preview)); + + gtk_widget_hide (gtk_paned_get_child1 (GTK_PANED (preview))); +} + +void +e_web_view_preview_set_escape_values (EWebViewPreview *preview, gboolean escape) +{ + g_return_if_fail (preview != NULL); + g_return_if_fail (E_IS_WEB_VIEW_PREVIEW (preview)); + g_return_if_fail (preview->priv != NULL); + + preview->priv->escape_values = escape; +} + +gboolean +e_web_view_preview_get_escape_values (EWebViewPreview *preview) +{ + g_return_val_if_fail (preview != NULL, FALSE); + g_return_val_if_fail (E_IS_WEB_VIEW_PREVIEW (preview), FALSE); + g_return_val_if_fail (preview->priv != NULL, FALSE); + + return preview->priv->escape_values; +} + +void +e_web_view_preview_begin_update (EWebViewPreview *preview) +{ + g_return_if_fail (preview != NULL); + g_return_if_fail (E_IS_WEB_VIEW_PREVIEW (preview)); + g_return_if_fail (preview->priv != NULL); + + if (preview->priv->updating_content) { + g_warning ("%s: Previous content update isn't finished with e_web_view_preview_end_update()", G_STRFUNC); + g_string_free (preview->priv->updating_content, TRUE); + } + + preview->priv->updating_content = g_string_new ("<TABLE width=\"100%\" border=\"0\" cols=\"2\">"); +} + +void +e_web_view_preview_end_update (EWebViewPreview *preview) +{ + GtkWidget *web_view; + + g_return_if_fail (preview != NULL); + g_return_if_fail (E_IS_WEB_VIEW_PREVIEW (preview)); + g_return_if_fail (preview->priv != NULL); + g_return_if_fail (preview->priv->updating_content != NULL); + + g_string_append (preview->priv->updating_content, "</TABLE>"); + + web_view = e_web_view_preview_get_preview (preview); + if (E_IS_WEB_VIEW (web_view)) + e_web_view_load_string (E_WEB_VIEW (web_view), preview->priv->updating_content->str); + + g_string_free (preview->priv->updating_content, TRUE); + preview->priv->updating_content = NULL; +} + +static gchar * +replace_string (const gchar *text, const gchar *find, const gchar *replace) +{ + const gchar *p, *next; + GString *str; + gint find_len; + + g_return_val_if_fail (text != NULL, NULL); + g_return_val_if_fail (find != NULL, NULL); + g_return_val_if_fail (*find, NULL); + + find_len = strlen (find); + str = g_string_new (""); + + p = text; + while (next = strstr (p, find), next) { + if (p + 1 < next) + g_string_append_len (str, p, next - p); + + if (replace && *replace) + g_string_append (str, replace); + + p = next + find_len; + } + + g_string_append (str, p); + + return g_string_free (str, FALSE); +} + +static gchar * +web_view_preview_escape_text (EWebViewPreview *preview, const gchar *text) +{ + gchar *utf8_valid, *res, *end; + + if (!e_web_view_preview_get_escape_values (preview)) + return NULL; + + g_return_val_if_fail (text != NULL, NULL); + + if (g_utf8_validate (text, -1, NULL)) { + res = g_markup_escape_text (text, -1); + } else { + utf8_valid = g_strdup (text); + while (end = NULL, !g_utf8_validate (utf8_valid, -1, (const gchar **) &end) && end && *end) + *end = '?'; + + res = g_markup_escape_text (utf8_valid, -1); + + g_free (utf8_valid); + } + + if (res && strchr (res, '\n')) { + /* replace line breaks with <BR> */ + if (strchr (res, '\r')) { + end = replace_string (res, "\r", ""); + g_free (res); + res = end; + } + + end = replace_string (res, "\n", "<BR>"); + g_free (res); + res = end; + } + + return res; +} + +void +e_web_view_preview_add_header (EWebViewPreview *preview, gint index, const gchar *header) +{ + gchar *escaped; + + g_return_if_fail (preview != NULL); + g_return_if_fail (E_IS_WEB_VIEW_PREVIEW (preview)); + g_return_if_fail (preview->priv != NULL); + g_return_if_fail (preview->priv->updating_content != NULL); + g_return_if_fail (header != NULL); + + if (index < 1) + index = 1; + else if (index > 6) + index = 6; + + escaped = web_view_preview_escape_text (preview, header); + if (escaped) + header = escaped; + + g_string_append_printf (preview->priv->updating_content, "<TR><TD colspan=2><H%d>%s</H%d></TD></TR>", index, header, index); + + g_free (escaped); +} + +void +e_web_view_preview_add_text (EWebViewPreview *preview, const gchar *text) +{ + gchar *escaped; + + g_return_if_fail (preview != NULL); + g_return_if_fail (E_IS_WEB_VIEW_PREVIEW (preview)); + g_return_if_fail (preview->priv != NULL); + g_return_if_fail (preview->priv->updating_content != NULL); + g_return_if_fail (text != NULL); + + escaped = web_view_preview_escape_text (preview, text); + if (escaped) + text = escaped; + + g_string_append_printf (preview->priv->updating_content, "<TR><TD colspan=2><FONT size=\"3\">%s</FONT></TD></TR>", text); + + g_free (escaped); +} + +void +e_web_view_preview_add_raw_html (EWebViewPreview *preview, const gchar *raw_html) +{ + g_return_if_fail (preview != NULL); + g_return_if_fail (E_IS_WEB_VIEW_PREVIEW (preview)); + g_return_if_fail (preview->priv != NULL); + g_return_if_fail (preview->priv->updating_content != NULL); + g_return_if_fail (raw_html != NULL); + + g_string_append_printf (preview->priv->updating_content, "<TR><TD colspan=2>%s</TD></TR>", raw_html); +} + +void +e_web_view_preview_add_separator (EWebViewPreview *preview) +{ + g_return_if_fail (preview != NULL); + g_return_if_fail (E_IS_WEB_VIEW_PREVIEW (preview)); + g_return_if_fail (preview->priv != NULL); + g_return_if_fail (preview->priv->updating_content != NULL); + + g_string_append (preview->priv->updating_content, "<TR><TD colspan=2><HR></TD></TR>"); +} + +void +e_web_view_preview_add_empty_line (EWebViewPreview *preview) +{ + g_return_if_fail (preview != NULL); + g_return_if_fail (E_IS_WEB_VIEW_PREVIEW (preview)); + g_return_if_fail (preview->priv != NULL); + g_return_if_fail (preview->priv->updating_content != NULL); + + g_string_append (preview->priv->updating_content, "<TR><TD colspan=2> </TD></TR>"); +} + +/* section can be NULL, but value cannot */ +void +e_web_view_preview_add_section (EWebViewPreview *preview, const gchar *section, const gchar *value) +{ + gchar *escaped_section = NULL, *escaped_value; + + g_return_if_fail (preview != NULL); + g_return_if_fail (E_IS_WEB_VIEW_PREVIEW (preview)); + g_return_if_fail (preview->priv != NULL); + g_return_if_fail (preview->priv->updating_content != NULL); + g_return_if_fail (value != NULL); + + if (section) { + escaped_section = web_view_preview_escape_text (preview, section); + if (escaped_section) + section = escaped_section; + } + + escaped_value = web_view_preview_escape_text (preview, value); + if (escaped_value) + value = escaped_value; + + g_string_append_printf (preview->priv->updating_content, "<TR><TD width=\"10%%\" valign=\"top\" nowrap><FONT size=\"3\"><B>%s</B></FONT></TD><TD width=\"90%%\"><FONT size=\"3\">%s</FONT></TD></TR>", section ? section : "", value); + + g_free (escaped_section); + g_free (escaped_value); +} diff --git a/widgets/misc/e-web-view-preview.h b/widgets/misc/e-web-view-preview.h new file mode 100644 index 0000000000..319f67ec82 --- /dev/null +++ b/widgets/misc/e-web-view-preview.h @@ -0,0 +1,101 @@ +/* + * e-web-view-preview.h + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with the program; if not, see <http://www.gnu.org/licenses/> + * + * + * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) + * + */ + +/* This is intended to serve as a common widget for previews before import. + * It contains a GtkTreeView at the top and an EWebView at the bottom. + * The tree view is not shown initially, it should be forced with + * e_web_view_preview_show_tree_view(). + * + * The internal default EWebView can be accessed by e_web_view_preview_get_preview() + * and it should be updated for each change of the selected item in the tree + * view, when it's shown. + * + * Updating an EWebView content through helper functions of an EWebViewPreview + * begins with call of e_web_view_preview_begin_update(), which starts an empty + * page construction, which is finished by e_web_view_preview_end_update(), + * and the content of the EWebView is updated. + */ + +#ifndef E_WEB_VIEW_PREVIEW_H +#define E_WEB_VIEW_PREVIEW_H + +#include <misc/e-web-view.h> + +/* Standard GObject macros */ +#define E_TYPE_WEB_VIEW_PREVIEW \ + (e_web_view_preview_get_type ()) +#define E_WEB_VIEW_PREVIEW(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST \ + ((obj), E_TYPE_WEB_VIEW_PREVIEW, EWebViewPreview)) +#define E_WEB_VIEW_PREVIEW_CLASS(cls) \ + (G_TYPE_CHECK_CLASS_CAST \ + ((cls), E_TYPE_WEB_VIEW_PREVIEW, EWebViewPreviewClass)) +#define E_IS_WEB_VIEW_PREVIEW(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE \ + ((obj), E_TYPE_WEB_VIEW_PREVIEW)) +#define E_IS_WEB_VIEW_PREVIEW_CLASS(cls) \ + (G_TYPE_CHECK_CLASS_TYPE \ + ((cls), E_TYPE_WEB_VIEW_PREVIEW)) +#define E_WEB_VIEW_PREVIEW_GET_CLASS(obj) \ + (G_TYPE_INSTANCE_GET_CLASS \ + ((obj), E_TYPE_WEB_VIEW_PREVIEW, EWebViewPreviewClass)) + +G_BEGIN_DECLS + +typedef struct _EWebViewPreview EWebViewPreview; +typedef struct _EWebViewPreviewClass EWebViewPreviewClass; +typedef struct _EWebViewPreviewPrivate EWebViewPreviewPrivate; + +struct _EWebViewPreview { + GtkVPaned parent; + EWebViewPreviewPrivate *priv; +}; + +struct _EWebViewPreviewClass { + GtkVPanedClass parent_class; +}; + +GType e_web_view_preview_get_type (void); +GtkWidget * e_web_view_preview_new (void); + +GtkTreeView * e_web_view_preview_get_tree_view(EWebViewPreview *preview); +GtkWidget * e_web_view_preview_get_preview (EWebViewPreview *preview); +void e_web_view_preview_set_preview (EWebViewPreview *preview, GtkWidget *preview_widget); + +void e_web_view_preview_show_tree_view(EWebViewPreview *preview); +void e_web_view_preview_hide_tree_view(EWebViewPreview *preview); + +void e_web_view_preview_set_escape_values(EWebViewPreview *preview, gboolean escape); +gboolean e_web_view_preview_get_escape_values(EWebViewPreview *preview); + +void e_web_view_preview_begin_update (EWebViewPreview *preview); +void e_web_view_preview_end_update (EWebViewPreview *preview); + +void e_web_view_preview_add_header (EWebViewPreview *preview, gint index, const gchar *header); +void e_web_view_preview_add_text (EWebViewPreview *preview, const gchar *text); +void e_web_view_preview_add_raw_html (EWebViewPreview *preview, const gchar *raw_html); +void e_web_view_preview_add_separator(EWebViewPreview *preview); +void e_web_view_preview_add_empty_line(EWebViewPreview *preview); +void e_web_view_preview_add_section (EWebViewPreview *preview, const gchar *section, const gchar *value); + +G_END_DECLS + +#endif /* E_WEB_VIEW_PREVIEW_H */ diff --git a/widgets/misc/e-web-view.c b/widgets/misc/e-web-view.c index beb865b98b..8e1878869e 100644 --- a/widgets/misc/e-web-view.c +++ b/widgets/misc/e-web-view.c @@ -25,8 +25,7 @@ #include <string.h> #include <glib/gi18n-lib.h> -#include <camel/camel-internet-address.h> -#include <camel/camel-url.h> +#include <camel/camel.h> #include <e-util/e-util.h> #include <e-util/e-binding.h> @@ -305,7 +304,7 @@ action_mailto_copy_cb (GtkAction *action, if (text == NULL || *text == '\0') text = g_strdup (uri + strlen ("mailto:")); - camel_object_unref (inet_addr); + g_object_unref (inet_addr); camel_url_free (curl); clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD); @@ -767,30 +766,71 @@ web_view_url_requested (GtkHTML *html, } static void -web_view_link_clicked (GtkHTML *html, - const gchar *uri) +web_view_gtkhtml_link_clicked (GtkHTML *html, + const gchar *uri) { - gpointer parent; + EWebViewClass *class; + EWebView *web_view; - parent = gtk_widget_get_toplevel (GTK_WIDGET (html)); - parent = gtk_widget_is_toplevel (parent) ? parent : NULL; + web_view = E_WEB_VIEW (html); - e_show_uri (parent, uri); + class = E_WEB_VIEW_GET_CLASS (web_view); + g_return_if_fail (class->link_clicked != NULL); + + class->link_clicked (web_view, uri); } static void web_view_on_url (GtkHTML *html, const gchar *uri) { + EWebViewClass *class; EWebView *web_view; + + web_view = E_WEB_VIEW (html); + + class = E_WEB_VIEW_GET_CLASS (web_view); + g_return_if_fail (class->hovering_over_link != NULL); + + /* XXX WebKit would supply a title here. */ + class->hovering_over_link (web_view, NULL, uri); +} + +static void +web_view_iframe_created (GtkHTML *html, + GtkHTML *iframe) +{ + g_signal_connect_swapped ( + iframe, "button-press-event", + G_CALLBACK (web_view_button_press_event_cb), html); +} + +static gchar * +web_view_extract_uri (EWebView *web_view, + GdkEventButton *event, + GtkHTML *html) +{ + gchar *uri; + + if (event != NULL) + uri = gtk_html_get_url_at (html, event->x, event->y); + else + uri = gtk_html_get_cursor_url (html); + + return uri; +} + +static void +web_view_hovering_over_link (EWebView *web_view, + const gchar *title, + const gchar *uri) +{ CamelInternetAddress *address; CamelURL *curl; const gchar *format = NULL; gchar *message = NULL; gchar *who; - web_view = E_WEB_VIEW (html); - if (uri == NULL || *uri == '\0') goto exit; @@ -816,7 +856,7 @@ web_view_on_url (GtkHTML *html, address = camel_internet_address_new (); camel_address_decode (CAMEL_ADDRESS (address), curl->path); who = camel_address_format (CAMEL_ADDRESS (address)); - camel_object_unref (address); + g_object_unref (address); camel_url_free (curl); if (who == NULL) @@ -833,27 +873,25 @@ exit: } static void -web_view_iframe_created (GtkHTML *html, - GtkHTML *iframe) +web_view_link_clicked (EWebView *web_view, + const gchar *uri) { - g_signal_connect_swapped ( - iframe, "button-press-event", - G_CALLBACK (web_view_button_press_event_cb), html); + gpointer parent; + + parent = gtk_widget_get_toplevel (GTK_WIDGET (web_view)); + parent = gtk_widget_is_toplevel (parent) ? parent : NULL; + + e_show_uri (parent, uri); } -static gchar * -web_view_extract_uri (EWebView *web_view, - GdkEventButton *event, - GtkHTML *html) +static void +web_view_load_string (EWebView *web_view, + const gchar *string) { - gchar *uri; - - if (event != NULL) - uri = gtk_html_get_url_at (html, event->x, event->y); + if (string != NULL && *string != '\0') + gtk_html_load_from_string (GTK_HTML (web_view), string, -1); else - uri = gtk_html_get_cursor_url (html); - - return uri; + e_web_view_clear (web_view); } static void @@ -1083,11 +1121,13 @@ e_web_view_class_init (EWebViewClass *class) html_class = GTK_HTML_CLASS (class); html_class->url_requested = web_view_url_requested; - html_class->link_clicked = web_view_link_clicked; + html_class->link_clicked = web_view_gtkhtml_link_clicked; html_class->on_url = web_view_on_url; html_class->iframe_created = web_view_iframe_created; class->extract_uri = web_view_extract_uri; + class->hovering_over_link = web_view_hovering_over_link; + class->link_clicked = web_view_link_clicked; class->load_string = web_view_load_string; class->copy_clipboard = web_view_copy_clipboard; class->cut_clipboard = web_view_cut_clipboard; @@ -1122,7 +1162,6 @@ e_web_view_class_init (EWebViewClass *class) PROP_COPY_TARGET_LIST, "copy-target-list"); -#ifndef G_OS_WIN32 g_object_class_install_property ( object_class, PROP_DISABLE_PRINTING, @@ -1144,7 +1183,6 @@ e_web_view_class_init (EWebViewClass *class) FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); -#endif g_object_class_install_property ( object_class, diff --git a/widgets/misc/e-web-view.h b/widgets/misc/e-web-view.h index 7d8eb4c8d0..56477ef257 100644 --- a/widgets/misc/e-web-view.h +++ b/widgets/misc/e-web-view.h @@ -69,6 +69,11 @@ struct _EWebViewClass { gchar * (*extract_uri) (EWebView *web_view, GdkEventButton *event, GtkHTML *frame); + void (*hovering_over_link) (EWebView *web_view, + const gchar *title, + const gchar *uri); + void (*link_clicked) (EWebView *web_view, + const gchar *uri); void (*load_string) (EWebView *web_view, const gchar *load_string); diff --git a/widgets/table/ChangeLog b/widgets/table/ChangeLog deleted file mode 100644 index 7d556367a8..0000000000 --- a/widgets/table/ChangeLog +++ /dev/null @@ -1,10156 +0,0 @@ -2009-04-24 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #572348 - - * e-table-header-item.c: - * e-cell-combo.h: - * e-cell-combo.c: - Remove deprecated Gtk+ symbols. - -2009-03-26 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #576694 - - * e-cell-text.c (build_layout): - Handle absolute font sizes correctly. - -2009-02-26 Chenthill Palanisamy <pchenthill@novell.com> - - ** Part of fix for bug #573198 - - * e-cell-date.c (ecd_get_text): Initialize the timezone settings - before making any timezone conversion calls. - -2009-02-19 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #572348 - - * e-table-example-1.c (main): - gtk_widget_push_visual() is a no-op. Remove it. - -2009-02-19 Andre Klapper <a9016009@gmx.de> - - * e-table-field-chooser-dialog.c: - Migrate from deprecated gtk_window_set_policy to gtk_window_set_resizable - -2009-02-16 Milan Crha <mcrha@redhat.com> - - ** Part of fix for bug #550114 - - * e-table-group.h: - * e-table-group.c: - * e-table-group-container.c: - * e-table-group-leaf.c: - Replaced 'compute_mouse_over' with 'get_mouse_over', now works - with cached values 'motion_row', 'motion_col'. - * e-table.c: (e_table_get_mouse_over_cell): - Mouse position not required anymore, remove it too then. - -2008-12-15 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #557176 - - * e-table-state.c: (e_table_state_load_from_node): - Ensure the 'sort_info' member is never NULL. - -2008-11-28 Felix Riemann <friemann@svn.gnome.org> - - ** Part of fix for bug #554464 - - * e-cell-text.c: (build_layout): Let Pango handle the ellipsizing, - which should be faster. - -2008-10-17 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes bug #560882 - - * e-table-defines.h: - * e-table-header-utils.c (e_table_header_draw_button): - Left-align header labels instead of centering them, and adjust - the header padding so they look purdy. - -2008-10-17 Sankar P <psankar@novell.com> - -License Changes - - * e-cell-tree.c: - * e-cell-tree.h: - -2008-10-08 Sankar P <psankar@novell.com> - -License Changes - - * e-table-header-item.c: - -2008-10-06 Sankar P <psankar@novell.com> - - * e-cell-float.c: - * e-cell-float.h: - Remove obsolete files - -2008-10-03 Sankar P <psankar@novell.com> - -License Changes And: - - * e-table-item.c (eti_event): remove obsolete check for - buttons 4/5 in 2BUTTON_PRESS; cf. gdk_event_translate / - _gdk_event_button_generate that turn this into a scroll - event these days. - -2008-10-03 Sankar P <psankar@novell.com> - - * widgets/table/e-cell-progress.c: - * widgets/table/e-cell-progress.h: - Removed obsolete files - -2008-10-03 Sankar P <psankar@novell.com> - -License Changes - - * table-test.c: - * test-table.c: - -2008-09-30 Sankar P <psankar@novell.com> - -License Changes - - * e-table.c: - -2008-09-29 Sankar P <psankar@novell.com> - - ** Remove unused files - - * widgets/table/Makefile.am: - * widgets/table/e-cell-spin-button.c: - * widgets/table/e-cell-spin-button.h: - -2008-09-29 Sankar P <psankar@novell.com> - -License Changes - - * e-cell-float.c: - * e-cell-float.h: - * e-cell-spin-button.c: - * e-cell-spin-button.h: - * e-table-col.c: - -2008-09-24 Sankar P <psankar@novell.com> - -License Changes - * e-cell-text.c: - -2008-09-16 Sankar P <psankar@novell.com> - -License Changes - - * e-table-field-chooser-item.c: - * e-table-field-chooser.c: - * e-tree-selection-model.c: - -2008-09-12 Sankar P <psankar@novell.com> - -License Changes - - * e-table-scrolled.c: - * e-table-sorting-utils.c: - * e-tree-model.c: - * e-tree.c: - -2008-09-04 Sankar P <psankar@novell.com> - -License Changes - - * e-cell-pixbuf.c: - * e-cell-size.c: - * e-table-group-container.c: - * e-table-header-utils.c: - * e-table-sorted.c: - -2008-09-02 Sankar P <psankar@novell.com> - -License Changes - - * e-cell-combo.c: - * e-cell-date.c: - * e-cell-hbox.c: - * e-cell-number.c: - * e-cell-pixbuf.h: - * e-cell-popup.c: - * e-cell-size.h: - * e-cell-text.h: - * e-cell-toggle.c: - * e-cell-vbox.c: - * e-cell.h: - * e-table-click-to-add.c: - * e-table-click-to-add.h: - * e-table-column-specification.c: - * e-table-column-specification.h: - * e-table-column.c: - * e-table-config-field.c: - * e-table-config-field.h: - * e-table-config.c: - * e-table-config.h: - * e-table-example-1.c: - * e-table-example-2.c: - * e-table-extras.c: - * e-table-field-chooser-dialog.h: - * e-table-group.c: - * e-table-header-item.h: - * e-table-header.c: - * e-table-memory-callbacks.h: - * e-table-memory-store.c: - * e-table-memory.c: - * e-table-memory.h: - * e-table-one.h: - * e-table-search.c: - * e-table-selection-model.c: - * e-table-size-test.c: - * e-table-sort-info.c: - * e-table-sort-info.h: - * e-table-sorted-variable.c: - * e-table-sorter.c: - * e-table-sorter.h: - * e-table-sorting-utils.h: - * e-table-specification.c: - * e-table-state.c: - * e-table-state.h: - * e-table-subset-variable.c: - * e-table-subset-variable.h: - * e-table-tooltip.h: - * e-table.h: - * e-tree-memory-callbacks.h: - * e-tree-memory.c: - * e-tree-selection-model.h: - * e-tree-sorted-variable.c: - * e-tree-sorted.c: - * e-tree-table-adapter.c: - * e-tree-table-adapter.h: - * e-tree.h: - -2008-08-27 Sankar P <psankar@novell.com> - -License Changes - - * e-cell-checkbox.c: - * e-cell-checkbox.h: - * e-cell-combo.h: - * e-cell-date.h: - * e-cell-hbox.h: - * e-cell-number.h: - * e-cell-popup.h: - * e-cell-toggle.h: - * e-cell-vbox.h: - * e-cell.c: - * e-table-col-dnd.h: - * e-table-col.h: - * e-table-defines.h: - * e-table-extras.h: - * e-table-field-chooser-dialog.c: - * e-table-field-chooser-item.h: - * e-table-field-chooser.h: - * e-table-group-container.h: - * e-table-group-leaf.c: - * e-table-group-leaf.h: - * e-table-group.h: - * e-table-header-utils.h: - * e-table-header.h: - * e-table-item.h: - * e-table-memory-callbacks.c: - * e-table-memory-store.h: - * e-table-model.c: - * e-table-model.h: - * e-table-one.c: - * e-table-scrolled.h: - * e-table-search.h: - * e-table-selection-model.h: - * e-table-simple.c: - * e-table-simple.h: - * e-table-sorted-variable.h: - * e-table-sorted.h: - * e-table-specification.h: - * e-table-subset.c: - * e-table-subset.h: - * e-table-tree.h: - * e-table-utils.c: - * e-table-utils.h: - * e-table-without.c: - * e-table-without.h: - * e-tree-memory-callbacks.c: - * e-tree-memory.h: - * e-tree-model.h: - * e-tree-scrolled.c: - * e-tree-scrolled.h: - * e-tree-simple.c: - * e-tree-simple.h: - * e-tree-sorted-variable.h: - * e-tree-sorted.h: - * table-test.h: - * test-check.c: - * test-cols.c: - -2008-08-11 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #352695 - - * e-tree-table-adapter.c: (e_tree_table_adapter_load_expanded_state), - (e_tree_table_adapter_load_expanded_state_xml): - Call the e_table_model_changed in the proper function, to prevent - lock of the model caused by previous commit to this bug. - -2008-08-11 Milan Crha <mcrha@redhat.com> - - ** Part of fix for bug #519292 - - * e-tree.h: (e_tree_load_all_expanded_state): - * e-tree.c: (e_tree_load_all_expanded_state): - * e-tree-table-adapter.h: - (e_tree_table_adapter_load_all_expanded_state): - * e-tree-table-adapter.c: - (e_tree_table_adapter_load_all_expanded_state), - (set_expanded_state_func), (set_collapsed_state_func): - Drop functions in favor of new functions. - * e-tree.h: (e_tree_force_expanded_state): - * e-tree.c: (e_tree_force_expanded_state): - * e-tree-table-adapter.h: (e_tree_table_adapter_force_expanded_state): - * e-tree-table-adapter.c: (e_tree_table_adapter_force_expanded_state), - (struct ETreeTableAdapterPriv), (create_gnode), (etta_init): - Use either default value of the model to expanded state of new node or - use the one which has been set (forced) by new functions. - -2008-08-11 Milan Crha <mcrha@redhat.com> - - ** Part of fix for bug #352695 - - * e-tree-table-adapter.h: - (e_tree_table_adapter_save_expanded_state_xml), - (e_tree_table_adapter_load_expanded_state_xml): - * e-tree-table-adapter.c: - (e_tree_table_adapter_save_expanded_state_xml), - (e_tree_table_adapter_save_expanded_state), - (e_tree_table_adapter_load_expanded_state_xml), - (e_tree_table_adapter_load_expanded_state): - * e-tree.h: (e_tree_save_expanded_state_xml), - (e_tree_load_expanded_state_xml): - * e-tree.c: (e_tree_save_expanded_state_xml), - (e_tree_load_expanded_state_xml): - Be able to store expanded state also in memory, not only on the disk. - -2008-07-15 Milan Crha <mcrha@redhat.com> - - ** Part of fix for bug #329821 - - * e-table-item.c: (find_cell): Do not consider last row's height - till the bottom. - * e-table-item.h: (e_table_item_compute_mouse_over): - * e-table-item.c: (e_table_item_compute_mouse_over): - * e-table-group-container.c: (etgc_compute_mouse_over), - (etgc_class_init): - * e-table-group-leaf.c: (etgl_compute_mouse_over), (etgl_class_init): - * e-table.h: (e_table_get_mouse_over_cell): - * e-table.c: (e_table_get_mouse_over_cell): - * e-table-group.h: (struct ETableGroupClass), - (e_table_group_compute_mouse_over): - * e-table-group.c: (e_table_group_compute_mouse_over), - (etg_class_init): Be able to calculate mouse-over position correctly, - relatively to the ETableItem. - -2008-06-03 Kjartan Maraas <kmaraas@gnome.org> - - * e-table-example-1.c: (main): - * e-table-example-2.c: (main): - * e-table-size-test.c: (main): - * test-check.c: (check_test): - * test-cols.c: (multi_cols_test): - gdk_rgb_get_cmap -> gdk_rgb_get_colormap - -2008-06-03 Kjartan Maraas <kmaraas@gnome.org> - - * test-check.c: (check_test): - * test-cols.c: (multi_cols_test): - gdk_pixbuf_unref() -> g_object_unref() - -2008-06-03 Kjartan Maraas <kmaraas@gnome.org> - - * e-cell-combo.c: (e_cell_combo_init): - gtk_window_set_policy -> gtk_window_set_resizable - -2008-05-22 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #534360 - - * e-table-memory-callbacks.c: - * e-table-memory-store.c: - * e-table-model.c: - * e-table-simple.c: - * e-tree-memory-callbacks.c: - * e-tree-model.c: - * e-tree-simple.c: - Migrate from deprecated GtkObject symbols to GObject equivalents. - -2008-04-30 Milan Crha <mcrha@redhat.com> - - ** Part of fix for bug #528288 - - * e-tree.h: (e_tree_set_info_message): - * e-tree.c: (struct ETreePriv), (et_dispose), (e_tree_init), - (tree_size_allocate), (e_tree_set_info_message): - Allow setting info message into the tree. It doesn't check - whether the tree is empty or not, so take care of that. - -2008-04-25 Danny Baumann <dannybaumann@web.de> - - ** Fix for bug #529893 - - * e-table-header-item.c: (make_shaped_window_from_xpm): - * e-cell-combo.c: (e_cell_combo_init): - * e-cell-text.c: (ect_show_tooltip): - Properly set type hints for popup windows. - -2008-03-27 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #519292 - - * e-tree-table-adapter.c: (set_expanded_state_func), - (set_collapsed_state_func): Use rather recurse function. - -2008-02-19 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #209353 - - * e-table-item.c: (eti_event): - Pass Home/End keys to cell when editing. - -2008-02-01 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #512623 - - * e-tree.c: (item_key_press): - Check only if Ctrl/Alt/Shift is pressed when required Shift only. - * e-table.c: (group_key_press): Ignore/consider GDK_MODEx_MASK states. - -2008-01-28 Srinivasa Ragavan <sragavan@novell.com> - - * e-table-item.c: (eti_draw): Fix some gradient issues. - -2008-01-24 Srinivasa Ragavan <sragavan@novell.com> - - * e-cell-pixbuf.c: (pixbuf_draw), (pixbuf_height), (pixbuf_print), - (pixbuf_print_height), (pixbuf_max_width): Cairfy pixbuf renderer for - settings window. - -2008-01-22 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #511105 - - * e-tree-table-adapter.c: (e_tree_table_adapter_load_expanded_state): - * e-table-item.c: (eti_draw): - * e-table-column-specification.c: (free_strings): - Free allocated memory properly. - -2008-01-22 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #511094 - - * e-cell-text.c: (ect_draw): Set proper foreground color based - on focused/non-focused canvas. - -2008-01-20 Srinivasa Ragavan <sragavan@novell.com> - - * e-table-item.c: (eti_draw): Draw the cursor only for multiselection. - -2008-01-20 Srinivasa Ragavan <sragavan@novell.com> - - * e-cell-toggle.c: (etog_new_view), (etog_kill_view), (etog_draw), - (etog_print), (e_cell_toggle_class_init), - (e_cell_toggle_construct): Removed the pixmap cache. It wasn't giving - alpha for the cairo rendered message list row. - * e-table-item.c: (eti_draw): Render the rows with Cairo. It looks - same as GtkTreeView and seems nice. - -2007-12-05 David Turner <cillian64@googlemail.com> - - ** Fix for bug #408170 - - * e-table-header-item.c: (ethi_header_context_menu): Added - mnemonics to the "Custom" and "Sort By" menu options - -2007-12-04 David Turner <cillian64@googlemail.com> - - ** Fix for bug #458824 - - * e-table-config.glade: Added mnemonics to the "Group" dialog - -2007-11-05 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #255051 - - * e-cell-combo.c: (e_cell_combo_key_press): - * e-cell-text.c: (ect_event): - Pass Escape event to parent, if there is no action to do with it. - * e-table-click-to-add.c: (etcta_event): Drop changes when pressed - Escape and go back to default line with text "Click to add...". - -2007-11-02 Damien Carbery <damien.carbery@sun.com> - - ** Fixes bug #492058 - - * e-table-header-item.h: - * e-table-header-item.c: Name the anonymous unions to build - with the Sun Studio compiler. - -2007-11-02 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #463946 - - * e-table-header-item.c: (ethi_popup_field_chooser): - Fix of critical warning and misused variable. - -2007-11-01 Matthew Barnes <mbarnes@redhat.com> - - * e-table-click-to-add.c (etcta_add_message): - Fix a const warning. - -2007-10-26 Kjartan Maraas <kmaraas@gnome.org> - - * e-cell-text.c: (ect_event), (_blink_scroll_timeout): - * e-table-config.c: (do_sort_and_group_config_dialog), - (do_fields_config_dialog): - * e-table-group-container.c: (etgc_add_array), - (etgc_get_focus_column), (etgc_get_cell_geometry), - (etgc_set_property), (etgc_get_property), (etgc_class_init), - (etgc_reflow), (etgc_init), (e_table_group_container_print_page), - (e_table_group_container_height): - * e-table-group.c: (e_table_group_get_focus_column): - * e-table-header.c: (e_table_header_get_columns), (eth_set_size): - * e-table-item.c: (eti_tree_unfreeze), (eti_draw), (find_cell), - (_do_tooltip), (eti_event), (e_table_item_height): - * e-table-memory-store.c: (etms_initialize_value), - (etms_value_is_empty): - * e-tree-model.c: (e_tree_model_new), (e_tree_model_node_find): - Warning fixes: - - NULL vs. 0 vs. FALSE - - Mark som code static - -2007-10-09 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #437579 - - * e-table-field-chooser-item.c: - * e-table-header-item.c: - * e-table-header-item.h: - * e-table-header-utils.c: - * e-table.c: - Fix various compiler warnings. Patch from Milan Crha. - -2007-10-02 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #469657 - - * e-table-extras.c: - * e-table-selection-model.c: - Use destroy functions in GHashTables to simplify memory management. - -2007-10-01 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #470837 - - * e-table-header-item.c: (sort_by_id), (popup_custom), - (ethi_header_context_menu), (ethi_change_sort_state): - Improved "Sort by" submenu behavior. - -2007-10-01 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #474557 - - * e-table-group-container.c: (etgc_reflow): - Choose right widget and use PANGO_PIXELS to calculate height. - -2007-09-27 Hiroyuki Ikezoe <poincare@ikezoe.net> - - ** Fix for bug #461195 - - * e-table-header-item.c: - * e-table-item.c: - * e-tree.c: - * e-table-click-to-add.c: - * e-table.c: - * e-table-group.c: Use GObject's marshalers. - -2007-09-27 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #478871 - - * e-table-config.c: (config_fields_info_update): - Shows proper 'Fields shown' description for all tables. - -2007-09-27 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #479716 - - * e-table-config.c: (setup_gui): - * Makefile.am: Get rid of e-table-config-no-group.glade and - keep consistent with behavior and appearence. - -2007-09-26 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #340748 - - * e-table.c: (e_table_set_state_object): - Notifies others about change. - -2007-09-07 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #473903 - - * e-tree.c: (et_real_construct): - Fixes serious compiler warning. - -2007-08-31 Srinivasa Ragavan <sragavan@novell.com> - - ** Move away from g_assert to g_return* critical warnings to debug - them better. - - * e-cell-text.c: (ect_edit_select_all), (_get_position): - * e-table-config.c: (configure_combo_box_add), - (configure_combo_box_set_active), - (update_sort_and_group_config_dialog): - * e-table-group.c: (e_table_group_add), (e_table_group_add_array), - (e_table_group_add_all), (e_table_group_remove), - (e_table_group_increment), (e_table_group_decrement), - (e_table_group_row_count), (e_table_group_set_focus), - (e_table_group_get_focus), (e_table_group_get_focus_column), - (e_table_group_get_printable), (e_table_group_compute_location), - (e_table_group_get_cell_geometry): - * e-table-header-utils.c: (e_table_header_compute_height), - (make_composite_pixmap), (e_table_header_draw_button): - * e-table-item.c: (eti_attach_cell_views), (eti_row_height_real), - (eti_add_table_model), (eti_add_selection_model), - (eti_header_structure_changed), (eti_add_header_model): - * e-tree-table-adapter.c: (generate_tree): - -2007-08-24 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #239441 - - * e-tree-table-adapter.c: (struct ETreeTableAdapterPriv), - (etta_finalize), (etta_init), (resort_model), - (etta_proxy_node_changed): - Remember resort_idle_id and remove it from g_source when - finalizing structure, so it will not be called when the - structure itself is already freed. - -2007-08-23 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes bug #303877. - - * e-cell-text.c: (update_im_cursor_locations): New function. - Set the cursor location to IMContext for candidate window. - (e_cell_text_get_cursor_locations): New function. - Get the current cursor locations in root canvas. - (e_cell_text_preedit_changed_cb): set the preedit cursor position to - preedit_pos. - (layout_with_preedit): call update_im_cursor_locations in the tail. - Patch by Hiroyuki Ikezone. - -2007-08-07 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #419690 - - * e-tree-table-adapter.c: - (e_tree_table_adapter_root_node_set_visible): Add protection around - etta. - -2007-08-07 Milan Crha <mcrha@redhat.com> - - ** Fix for bug #463946 - - * e-table-header-item.c: (ethi_dispose), (ethi_popup_field_chooser): - Fixes compiler warnings and weak pointer references. - -2007-07-27 Hiroyuki Ikezoe <poincare@ikezoe.net> - - * e-cell-tree.c: - * e-cell-hbox.c: - * e-cell-popup.c: - * e-tree-simple.c: - * e-cell-date.c: - * e-tree-table-adapter.c: - * e-tree-scrolled.c: - * e-table-field-chooser.c: - * e-table-header-item.c: - * e-cell-pixbuf.c: - * e-table-subset-variable.c: - * e-tree-selection-model.c: - * e-tree-sorted-variable.c: - * e-tree-memory-callbacks.c: - * e-table-sorted.c: - * e-table-subset.c: - * e-table-search.c: - * e-table-extras.c: - * e-table-one.c: - * e-table-config-field.c: - * e-cell-combo.c: - * e-table-item.c: - * e-cell-toggle.c: - * e-tree.c: - * e-table-col.c: - * e-table-field-chooser-item.c: - * e-table-sort-info.c: - * e-table-simple.c: - * e-table-column.c: - * e-table-scrolled.c: - * e-tree-model.c: - * e-table-column-specification.c: - * e-table-group-container.c: - * e-cell-text.c: - * e-table-specification.c: - * e-cell-number.c: - * e-table-sorted-variable.c: - * e-table-selection-model.c: - * e-table-memory-callbacks.c: - * e-cell.c: - * e-table-click-to-add.c: - * e-cell-float.c: - * e-table-field-chooser-dialog.c: - * e-tree-memory.c: - * e-cell-progress.c: - * e-table-group-leaf.c: - * e-table.c: - * e-table-sorter.c: - * e-table-header.c: - * e-table-group.c: - * e-table-model.c: - * e-cell-size.c: - * e-table-without.c: - * e-table-config.c: - * e-cell-vbox.c: - * e-tree-sorted.c: - * e-table-state.c: - * e-table-memory-store.c: - * e-table-memory.c: - * e-cell-spin-button.c: - * e-cell-checkbox.c: Use G_DEFINE_TYPE instead of E_MAKE_TYPE. - -2007-07-27 Matthew Barnes <mbarnes@redhat.com> - - * Makefile.am: - Rename EXTRA_GNOME_CFLAGS to GNOME_PLATFORM_CFLAGS. - Similarly for EXTRA_GNOME_LIBS. - -2007-07-27 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #323522 - - * e-table-item.c: (eti_unfreeze): - -2007-06-15 Matthew Barnes <mbarnes@redhat.com> - - * e-cell-vbox.c (ecv_finalize): - Free the model_cols array when the instance is destroyed (#447742). - -2007-06-02 Gilles Dartiguelongue <dartigug@esiee.fr> - - ** Fixes part of bug #441014 - - * e-cell-text.c: (build_layout), (ect_print): - * e-cell-tree.c: (ect_realize): - * e-table-column-specification.c: - (e_table_column_specification_load_from_node), - (e_table_column_specification_save_to_node): - * e-table-field-chooser-item.c: (etfci_drag_data_get): - * e-table-group-container.c: - * e-table-header-item.c: (ethi_drag_data_received), - (ethi_drag_data_get), (ethi_popup_field_chooser), - (ethi_header_context_menu): - * e-table-sort-info.c: (e_table_sort_info_load_from_node), - (e_table_sort_info_save_to_node): - * e-table-specification.c: (e_table_specification_load_from_node), - (e_table_specification_save_to_file), - (e_table_specification_save_to_string), - (e_table_specification_save_to_node): - * e-table-state.c: (e_table_state_load_from_node), - (e_table_state_save_to_file), (e_table_state_save_to_string), - (e_table_state_save_to_node): - * e-table-subset-variable.c: (e_table_subset_variable_clear): - * e-table-subset.c: (e_table_subset_construct): - * e-tree-table-adapter.c: (save_expanded_state_func), - (e_tree_table_adapter_save_expanded_state), (open_file), - (e_tree_table_adapter_load_expanded_state): various - compilation warning cleanups - -2007-05-31 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #333707 from David Moore - - * e-tree.c: (et_disconnect_from_etta), (e_tree_init), - (et_table_rows_deleted), (et_connect_to_etta): Thread message - selection improvements, while deleting messages in thread. - -2007-05-25 Matthew Barnes <mbarnes@redhat.com> - - * e-table-config.c: - * e-table-config.h: - Replace GalComboText with a GtkComboBox/GtkListStore (#441010). - -2007-05-17 Srinivasa Ragavan <sragavan@novell.com> - - ** Add more support for GMail like sorting. - - * e-table-sorting-utils.c: (e_table_sorting_utils_tree_sort): - * e-tree-memory-callbacks.c: (etmc_sort_value_at), - (e_tree_memory_callbacks_class_init), - (e_tree_memory_callbacks_new): - * e-tree-memory-callbacks.h: - * e-tree-model.c: (e_tree_model_class_init), - (e_tree_model_sort_value_at): - * e-tree-model.h: - -2007-05-16 Srinivasa Ragavan <sragavan@novell.com> - - * e-tree-table-adapter.c: - (e_tree_table_adapter_load_expanded_state): Add support for retaining - default tree expand state - -2007-05-14 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #378441 from Ebby Wiselyn - - * e-table-header-item.c: Added mnemonics - -2007-05-12 simon.zheng <simon.zheng@sun.com> - - * Fix for bug #355919 - - * e-table-header-utils.c: (make_composite_pixmap): - gdk_rgb_get_visual()->depth always returns preferred visual - depth, which isn't always equal to the that of current - window. Whereas, using -1 will match the depth of the pixmap window - to what we have in drawable window, which is the first - argument of gdk_pixmap_new(). So use -1 instead. - -2007-04-20 Matthew Barnes <mbarnes@redhat.com> - - * e-cell.h: - * e-cell-pixbuf.c: - * e-cell-text.c: - * e-printable.h: - * e-table-group-container.c: - Refactor the printing infrastructure. (#426816) - -2007-04-19 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #429422 - - * e-table-size-test.c (create_table): - * test-table.c (main): - * e-cell-combo.c (e_cell_combo_show_popup): - * e-table-example-1.c (create_table): - * e-tree.c (header_canvas_size_allocate), (e_tree_setup_header): - * e-cell-text.c (ect_show_tooltip): - * e-table-example-2.c (create_table): - * e-table.c (header_canvas_size_allocate): - Use gtk_widget_set_size_request() or g_object_set() instead of - gtk_widget_set_usize(). - - * e-cell-tree.c (e_cell_tree_construct): - * e-table-header-item.c (ethi_header_context_menu), (ethi_event): - * e-table-extras.c (e_table_extras_add_cell): - Use g_object_ref_sink() instead of gtk_object_sink(). - - * e-cell-date.c (ecd_get_text): - e_strdup_strip() is dead; just do it manually. - - * e-table-header-item.c (ethi_header_context_menu): - Use gtk_radio_menu_item_get_group() instead of - gtk_radio_menu_item_group(). - - * e-table-search.c (e_table_search_class_init): - * e-table-sort-info.c (e_table_sort_info_class_init): - * e-tree-model.c (e_tree_model_class_init): - * e-tree-memory.c (e_tree_memory_class_init): - * e-table-header.c (e_table_header_class_init): - * e-table-model.c (e_table_model_class_init): - * e-table-config.c (config_class_init): - * e-tree-sorted.c (e_tree_sorted_class_init): - Use G_TYPE_FROM_CLASS() instead of E_OBJECT_CLASS_TYPE(). - - * e-table-item.c (eti_dispose), (eti_unrealize), (eti_event): - Use g_source_remove() instead of gtk_timeout_remove(). - - * e-table-item.c (eti_event): - Use g_timeout_add() instead of gtk_timeout_add(). - - * e-tree.c (et_dispose): - e_free_string_list() is dead; just do it manually. - - * e-tree-memory.c (e_tree_memory_sort_node): - * e-table-sorting-utils.c (e_table_sorting_utils_sort): - Use g_qsort_with_data() instead of e_sort(). - -2007-03-29 Matthew Barnes <mbarnes@redhat.com> - - * e-table-header-utils.c: - * e-table-item.c: - * e-tree-header-item.c: - * e-tree-table-adapter.c: - Fix "incompatible pointer type" warnings (#360619). - -2007-03-20 Matthew Barnes <mbarnes@redhat.com> - - * e-cell-checkbox.c: - * e-table-header-item.c: - Don't mix declarations and code (#405495). - -2007-03-20 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #419524 - - * Include <glib/gi18n.h> instead of <libgnome/gnome-i18n.h>. - -2007-03-16 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes part of bug #360240 - - * e-cell-text.c (ect_free_color): - Remove unused variable. - -2007-03-01 Kjartan Maraas <kmaraas@gnome.org> - - * e-cell-hbox.c: (ecv_new_view), (ecv_kill_view): - * e-cell-pixbuf.c: (pixbuf_new_view), (pixbuf_kill_view): - * e-cell-popup.c: (ecp_new_view), (ecp_kill_view): - * e-cell-progress.c: (eprog_new_view), (eprog_kill_view): - * e-cell-spin-button.c: (ecsb_new_view): - * e-cell-text.c: (ect_new_view), (ect_kill_view): - * e-cell-toggle.c: (etog_new_view), (etog_kill_view): - * e-cell-tree.c: (ect_new_view), (ect_kill_view): - * e-cell-vbox.c: (ecv_new_view), (ecv_kill_view): - * e-cell.h: Rest of the workaround patch for the crash - in bug #330728. Patch from Caolan McNamara. - -2007-02-12 Srinivasa Ragavan <sragavan@novell.com> - - ** Print migration updates from Ebby Wiselyn - - * e-cell-toggle.c: - * e-cell-text.c: - -2007-02-08 Matthew Barnes <mbarnes@redhat.com> - - ** Fixes bug #357216 - - * e-table-field-chooser-item.c: - * e-table-field-chooser-item.h: - * e-table-group-container.c: - * e-table-group-container.h: - Replace deprecated GdkFont with PangoFontDescription. - - * e-table-header-item.c: - * e-table-header-item.h: - Replace deprecated GdkFont with PangoFontDescription. - Rename "fontset" property to "font-desc", and change the property - type to a boxed PangoFontDescription. - -2007-01-22 Srinivasa Ragavan <sragavan@novell.com> - - ** GtkPrint api migration from Ebby Wiselyn. - - * e-cell-checkbox.c: (ecc_print), (e_cell_checkbox_class_init): - * e-cell-pixbuf.c: (gnome_print_pixbuf), (pixbuf_print), - (pixbuf_print_height): - * e-cell-popup.c: (ecp_print), (ecp_print_height): - * e-cell-text.c: (ect_print), (ect_print_height): - * e-cell-toggle.c: (etog_print), (etog_print_height): - * e-cell.c: (e_cell_print), (e_cell_print_height): - * e-cell.h: - * e-table-group-container.c: (gp_draw_rect), - (e_table_group_container_print_page), - (e_table_group_container_height), - (e_table_group_container_will_fit): - * e-table-item.c: (eti_realize_cell_views), (eti_draw), - (eti_event), (eti_printed_row_height), (gp_draw_rect), - (e_table_item_print_page), (e_table_item_height), - (e_table_item_will_fit): - -2006-12-04 Matthew Barnes <mbarnes@redhat.com> - - Fixes bug #357970 - - * e-cell-pixbuf.c: - * e-cell-progress.c: - * e-cell-text.c: - * e-cell-toggle.c: - * e-cell-tree.c: - * e-table-col.c: - * e-table-extras.c: - * e-table-header-item.c: - * e-table-header-utils.c: - * e-table-item.c: - * e-table-memory-store.c: - Don't call deprecated GLib / GDK functions. - -2006-12-04 Harish Krishnaswamy <kharish@novell.com> - - * e-table.c: (canvas_vbox_event), (click_to_add_event): - Fixes bug #381642. - -2006-08-24 Hiroyuki Ikezoe <poincare@ikezoe.net> - - ** Fixes bug #337582 - * e-cell-text.c: Use GtkClipboard instead of GtkInvisible. - -2006-08-21 Andre Klapper <a9016009@gmx.de> - - * e-table-config.glade: - changed window focus. Fixes bug #266802. - -2006-08-21 Srinivasa Ragavan <sragavan@novell.com> - - * e-cell-text.c: (ect_event): Add a null check and remove code for a - possible crash which is really useless. - -2006-08-20 Srinivasa Ragavan <sragavan@novell.com> - - ** Patch from Pavel Roskin. - - * e-cell-text.c: Added missing headers. - * e-table-utils.c: Added missing headers. - -2006-08-19 Srinivasa Ragavan <sragavan@novell.com> - - ** Fix for bug #350884 - - * e-tree-table-adapter.c: (resort_model), - (etta_proxy_node_changed): Sort the model after for gmail like - display. - -2006-07-05 Rajeev ramanathan <rajeevramanathan_2004@yaoo.co.in> - - * e-cell-text.c: (ect_unrealize), (build_layout), (ect_draw): Added - code to render ECell text items with antialiasing, hinting - and sub-pixel ordering with cairo. - -2006-07-18 Benoît Dejean <benoit@placenet.org> - - ** Fixes bug #333041 - * e-table-group-container.c: add gettext support to some strings. - -2006-06-12 simon.zheng <simon.zheng@sun.com> - - **Fixes bug #338295 - * e-cell-text.c: (get_font_description_for_size), (get_font_size), - (ect_print), (ect_print_height): Use pango to handle text when - printing tasks - -2006-06-12 Ed Catmur <ed@catmur.co.uk> - - ** Fixes bug #343764 now entirely - * e-table-header-utils.c: (e_table_header_draw_button): - Adding a weak reference to avoid crashing. - -2006-06-12 Srinivasa Ragavan <sragavan@novell.com> - - Committing a fix for sorting in the vertical view. - - * e-table-column-specification.c: - (e_table_column_specification_load_from_node): - * e-table-column-specification.h: - * e-table-header-item.c: (ethi_popup_sort_ascending), - (ethi_popup_sort_descending), (ethi_header_context_menu), - (ethi_change_sort_state): - * e-table-utils.c: (et_col_spec_to_col): - -2006-06-08 Carlos Garcia Campos <carlosgc@gnome.org> - - ** Fixes bug #343764 - * e-table-header-utils.c: (e_table_header_draw_button): - Ensure g_label points to the right widget before accessing to its - style. - -2006-06-05 Hiroyuki Ikezoe <poincare@ikezoe.net> - - * Makefile.am: Remove extra tabs. Fixes #343734. - -2006-05-12 Hiroyuki Ikezoe <poincare@ikezoe.net> - - ** Fixes bug #341530. - * e-table.h: - Removed duplicate delcaration of e_table_commi_click_to_add. - -2006-04-10 Jeff Cai <jeff.cai@sun.com> - - ** Fixes bug #327035 - * e-table-header-item.c: (ethi_event): - Grab focus only from widgets which can have focus on. - -2006-03-02 Srinivasa Ragavan <sragavan@novell.com> - - ** Fixes bug #328283 - - * e-table-item.c: (eti_tree_unfreeze): Use the right widget to - unfreeze the tree. - -2006-03-01 Simon Zheng <simon.zheng@sun.com> - - ** Fixes bug #331400 - - * e-cell-text.c: (ect_print_height): Table item height is decided - by the max cell height in item. And cell-text is just one of cells. - As done by ect_print(), to leave some margin for text, 2 for footer, - 2 for header, actual print height should be 16 + 4. - -2006-02-24 Srinivasa Ragavan <sragavan@novell.com> - - ** Fixes bug #332408 - - * e-table-config.c: (e_table_proxy_etable_shown_new), - (e_table_proxy_etable_available_new): Reverting the patch that fixes - some compiler warning. The function is referred from the glade file, - which was removed. - -2006-02-14 Srinivasa Ragavan <sragavan@novell.com> - - ** Fixes bug #328283 - - * e-table-item.c: (eti_tree_unfreeze): Added the return value for - scroll-event handler which causes a crash - -2006-01-27 Andre Klapper <a9016009@gmx.de> - * e-table-config-no-group.glade: - * e-table-config.glade: - removed string "dialog1" from translation. Fixes bug 306118. - -2006-01-13 Srinivasa Ragavan <sragavan@novell.com> - - * e-table-item.c: (adjustment_changed), (eti_tree_unfreeze), - (eti_realize): Fixes the scroll issue with e-tree. - -2005-12-21 Chenthill Palanisamy <pchenthill@novell.com> - - committing for Akira TAGOH <tagoh@gnome-db.org> - - Fixes #303876 - * table/e-cell-text.c: (ect_event): Check if its a keep press - event when the Return key is pressed. - -2005-12-18 Tor Lillqvist <tml@novell.com> - - * e-table-config.c (find_model_column_by_name): Use - g_ascii_strcasecmp() instead of g_strcasecmp(). This function - handles the English column names. - - * e-table-specification.c (e_table_specification_load_from_file) - * e-table-state.c (e_table_state_load_from_file): - Use e_xml_parse_file(). - -2005-12-17 Tor Lillqvist <tml@novell.com> - - * Makefile.am: Link with bootstrap libs on Win32. Use - E_WIDGETS_CFLAGS instead of GNOME_BONOBO_CFLAGS, GNOME_INCLUDEDIR, - ICONV_CFLAGS and GNOME_FULL_CFLAGS. Link with all required - libraries. Use -no-undefined on Win32. - -2005-12-09 Harish Krishnaswamy <kharish@novell.com> - - * e-table-example-2.c (create_table): - * e-table-extras.c (ete_init): - * e-table-size-test.c (create_table): - * test-check.c (check_test): - * test-cols.c (multi_cols_test): - * test-table.c (table_browser_test): - s/g_*_compare/e_*_compare. - -2005-12-07 Boby Wang <boby.wang@sun.com> - - Fixes #322740. - * e-tree.c: (item_key_press): change the condition - expression for GDK_RIGHT and GDK_LEFT. - -2005-12-06 Li Yuan <li.yuan@sun.com> - - * e-tree.c: (table_canvas_focus_event_cb): - Fixes bug #322776. - When focus come into e-tree, it is possible that the focused_item - is not NULL and there is no focused item in e-tree. So test - e_selection_model_cursor_row also. - -2005-10-14 Kaushal Kumar <kakumar@novell.com> - - * table/e-table-group-container.c - (e_table_group_container_print_page): Use gnome_font_find_closest - instead of gnome_font_find since Helvetica is not always present. - - Fixes bug #246803. - Patch by: Mubeen Jukaku. - -2005-10-04 Devashish Sharma <sdevashish@novell.com> - - * e-table-extras.c (ete_init): Added compare type "stringcase" to - ETableExtras to comapre hash table for case insensitive strings. The - corresponding function g_str_case_compare has been added to e-util.c. - See #207110. - -2005-09-29 Tor Lillqvist <tml@novell.com> - - * e-table.c (e_table_load_specification) - * e-table-specification.c (e_table_specification_load_from_file) - * e-tree-table-adapter.c (open_file): Use - g_win32_locale_filename_from_utf8() from GLib 2.8 instead of - gnome_win32_locale_filename_from_utf8() which was temporarily in - libgnome. - -2005-09-28 Tor Lillqvist <tml@novell.com> - - * e-table-specification.c (e_table_specification_load_from_node): - Use g_ascii_strcasecmp() instead of strcasecmp(). We are comparing - to literal ASCII strings, just casefolding ASCII is enough. Also - better for portability. - -2005-08-24 Li Yuan <li.yuan@sun.com> - - Fixes #314352. - * e-table-item.c: (eti_event): - if accessibility is enabled, we enable horizontal cusor - movement for line selection. - -2005-08-23 Not Zed <NotZed@Ximian.com> - - * e-table-config.c (setup_fields): fix some missing casts. - -2005-08-10 Not Zed <NotZed@Ximian.com> - - ** See bug #313063. - - * e-tree.c (e_tree_class_init): fix the set_scroll_adjustments - signal to take object, not pointer arguments. Since glib's - anality doesn't accept an object pointer as a pointer. go figure. - -2005-07-25 Srinivasa Ragavan <sragavan@novell.com> - - * e-table-config.glade: Added code to use stock icons instead of - -> and <- - -2005-06-23 Kaushal Kumar <kakumar@novell.com> - - * Makefile.am: Set libetableincludedir to table to match - source directory name and fix evolution-exchange build - without GAL. - -2005-06-01 Kaushal Kumar <kakumar@novell.com> - - * e-table-item.c (eti_dispose): Don't hide the tooltip if we don't - have a canvas anymore. - Patch by: Not Zed - -2005-05-20 Li Yuan <li.yuan@sun.com> - - * e-table-header-item.c: - * e-table-header-item.h: - export ethi_change_sort_state, so we can call it in a11y part. - * e-tree.c: (e_tree_get_header_item): - * e-tree.h: - return the header item of e-tree. - - Fix for #302154. - -2005-03-14 Theppitak Karoonboonyanan <theppitak@gmail.com> - - * e-cell-text.c (e_cell_text_retrieve_surrounding_cb) - (e_cell_text_delete_surrounding_cb): selecion fixes for im's. - -2005-02-25 Li Yuan <li.yuan@sun.com> - - Fix for #73009. - * e-table-config-no-group.glade: - * e-table-config.glade: - -2005-01-27 Harry Lu <harry.lu@sun.com> - - Some code clean work. - - * e-table-click-to-add.c: (etcta_class_init): move a11y registry - call to a11y code. - * e-table.c: (e_table_class_init): ditto. - * e-tree.c: (e_tree_class_init): ditto. - -2005-01-27 Li Yuan <li.yuan@sun.com> - - * e-cell-combo.c: (e_cell_combo_init), (e_cell_combo_do_popup), - (e_cell_combo_list_button_press), (e_cell_combo_button_press), - (e_cell_combo_button_release), (e_cell_combo_key_press): - add an a11y name for the popup list. - make shortcut key ALT+Arrow work. - Fixes #70261 - * e-cell-text.c: (e_cell_text_class_init), (_delete_selection), - (_insert): - add "text_inserted" and "text_deleted" signals to notify the - text has been changed. - (e_cell_text_get_text_by_view): - new helper function to get the text being editted. - * e-cell-text.h: - add signal declaration. - * e-cell-toggle.c: (etog_draw): - add range check for negative values. - * e-cell-vbox.c: (e_cell_vbox_class_init): - * e-cell-vbox.h: - make ECellVboxView public since it will be used in a11y part. - * e-table-click-to-add.c: (etcta_style_set), - (create_rect_and_text), (etcta_realize), (etcta_class_init), - (e_table_click_to_add_commit): - add "style_set" signal to click_to_add and implement - the style_set function. - (etcta_init): - add a11y name to click to add. - * e-table-click-to-add.h: - add "style_set" signal to click_to_add and implement - the style_set function. - * e-table-config.c: (config_button_up), (config_button_down): - check whether the columns are empty. - * e-table-group-container.c: - * e-table-group-container.h: - make ETableGroupContainerChildNode public since it - will be used in a11y part. - * e-table-item.c: (eti_init): - init eti->cols. - (eti_event): - at GDK_KEY_PRESS event and GDK_Down key pressed, we check - view_col value before we pass it to eti_e_cell_event. - (eti_class_init): - call the new initialize function - * e-table.c: (table_canvas_focus_event_cb): - if canvas has a focused item but the etable does not - have a cursor row, just focus the first item after check - whether the click_to_add should get the focus. - -2005-01-26 JP Rosevear <jpr@novell.com> - - Fixes #38195 - - * e-cell-combo.c (e_cell_combo_set_popdown_strings): don't convert - to the locale for gtk widgets now - -2004-12-21 JP Rosevear <jpr@novell.com> - - Fixes #29309 - - * e-table-header-item.h: add field chooser dialog data member - - * e-table-header-item.c: remove weak pointer ref - (ethi_popup_field_chooser): if we already have a dialog, just - present it, otherwise create a new one and listen for its - destruction - -2004-11-24 Li Yuan <li.yuan@sun.com> - - * e-table.c: (e_table_get_cell_geometry): - check whether header_canvas and table_canvas is NULL. - -2004-11-04 Li Yuan <li.yuan@sun.com> - - * gal/e-table/e-table.c: (table_canvas_focus_event_cb): - if canvas has a focused item but the etable does not have a cursor row, - just focus the first item. - -2004-10-19 JP Rosevear <jpr@novell.com> - - * e-table.c (table_canvas_focus_event_cb): return FALSE so we - don't kill the focus event chain - -2004-08-09 Not Zed <NotZed@Ximian.com> - - * e-cell-combo.c (e_cell_combo_get_popup_pos): include scrollbar - offset in vertical calculation. don't ask me i just work here. - see #61932. - -2004-08-02 Radek Doulik <rodo@ximian.com> - - * e-table-config.c (e_table_config_construct): do not set - position, it's already done in .glade, call set_transient_for - always (passing NULL is valid as well) - - * e-table-config.glade: * e-table-config-no-group.glade: center - window on parent, don't let it resize and most importan make it - dialog window so that set_transient_for works against define views - dialog - - Fixes #61936 - -2004-07-07 Radek Doulik <rodo@ximian.com> - - * e-table-sorted-variable.c (etsv_add): added - e_table_model_pre_change because we call - e_table_model_row_inserted later. It fixes freeze/unfreeze for - ETableItem assert warning which I run into when fixing #56271 - -2004-06-22 Rodney Dawes <dobey@novell.com> - - * e-table-config.c (do_fields_config_dialog, e_table_config_new): - Fix some spacing and border width properties on the dialog's widgets - to make the dialog compliant with the HIG - -2004-06-22 Christopher James Lahey <clahey@ximian.com> - - * e-table-model.[ch]: Added e_table_model_freeze and e_table_model_thaw - - * e-table-config.c (setup_fields): Use e_table_model_freeze and - e_table_model_thaw - - Fixes #54785 - -2004-06-11 Radek Doulik <rodo@ximian.com> - - * e-table-config.c (e_table_config_construct): set dialog window - position, glade doesn't do that for us anymore as the window is - first hidden, extended and later shown - - * e-table-config-no-group.glade: as below - - * e-table-config.glade: set visibility to false, it will keep the - dialog hidden until we call gtk_widget_show and thus no resizing - is visible while we are extending the dialog content - - Fixes #57825 - -2004-06-10 Radek Doulik <rodo@ximian.com> - - * e-cell-text.c (layout_with_preedit): removed unused variable - - * e-tree.c (e_tree_get_item): added cast - added #include <atk/atkregistry.h> - - * e-table-one.c (one_finalize): removed unused variable - - * e-table-item.c: added #include - "gal/a11y/e-table/gal-a11y-e-table-item.h" for - gal_a11y_e_table_item_factory_get_type prototype - - * e-table-header-utils.c (e_table_header_draw_button): removed - unused variable - - * e-table-config.c (get_source_model_col_index): removed unused - variable - - * e-table-click-to-add.c (finish_editing): added cast - (etcta_event): ditto - - * e-cell-toggle.c: added #include - "gal/a11y/e-table/gal-a11y-e-cell-registry.h" to have - gal_a11y_e_cell_registry_add_cell_type prototype - - * e-cell-text.c (layout_with_preedit): removed unused variable - (build_layout): ditto - (ect_event): ditto - (e_cell_text_commit_cb): ditto - - * e-cell-popup.c: added #include - "gal/a11y/e-table/gal-a11y-e-cell-registry.h" to have - gal_a11y_e_cell_registry_add_cell_type prototype - -2004-06-10 Not Zed <NotZed@Ximian.com> - - * e-tree-selection-model.c (e_tree_selection_model_select_paths): - add new api for setting the whole selection in one go. See - #59546. - -2004-06-09 Radek Doulik <rodo@ximian.com> - - * e-table-field-chooser.c (ensure_nonzero_step_increments): new - helper function to set step_increments - (allocate_callback): call ensure_nonzero_step_increments - (resize): ditto - (ensure_nonzero_step_increments): set step increments always to 16 - - Fixes #48275 - -2004-05-10 Bruce Tao <bruce.tao@sun.com> - - Fixes #51626 - - * e-table-click-to-add.c: (etcta_event): - Add an entry for focus_in event, do the same thing as button_press event. - - * e-table-item.c: (eti_event): - Mask the Ctrl+Tab processing routine. - - * e-table.c: (table_canvas_focus_event_cb), (canvas_vbox_event), - (click_to_add_event), (e_table_setup_table): - Enable you to navigate between click_to_add and the existing tasks by - pressing Ctrl+Tab. However, if there is no existing task, you can still jump - out of click_to_add by this way. - -2004-05-04 Jeffrey Stedfast <fejj@ximian.com> - - * e-tree.c (e_tree_find_next): Don't necessarily set row to 0 if - the root node has the cursor (otherwise message_list_select() - first unread will actually select the second unread if the first - unread is the first in the list). Fixes a bug that's been pissing - me off for years. - -2004-05-04 Not Zed <NotZed@Ximian.com> - - * e-table-item.c (eti_event): revert last patch. - (eti_attach_cell_views): add some code to reset drags and other - things as if the model changed, so we don't keep trying to run - things we shouldn't be on the view which might be changing. This - may break other things but should fix 57222 and related. - -2004-05-04 Not Zed <NotZed@Ximian.com> - - * e-table-item.c (eti_event): if motion column is beyond our known - columns, just ignore it and don't generate a LEAVE_NOTIFY. uh, - seems to work, and fixes #57222. - -2004-04-30 Jeffrey Stedfast <fejj@ximian.com> - - * e-cell-text.c (e_cell_text_class_init): Changed the int param - specs to take a min value of -1 and also defautl to -1 (-1 means - off and they should all default to the same value that they - default to in the init() function). Needed to fix bug #57304. - -2004-03-10 Hao Sheng <hao.sheng@sun.com> - - Fixes #55198 - - * e-table-config.glade : Make the access key Alt+O work - -2004-02-26 Not Zed <NotZed@Ximian.com> - - * e-table-item.c (eti_table_model_pre_change): reset - motion_row/motion_col if the model changes. See bug #54757. - -2004-02-12 Rodney Dawes <dobey@ximian.com> - - * e-cell-popup.c (ecp_draw): - * e-cell-spin-button.c (ecsb_draw): - * e-table-header-utils.c (e_table_header_draw_button): Change the - shadow type for the arrows here, so that themes that do handle the - use of shadow types with arrows, draw things correctly, instead of - following what the old default gtk+ did in 1.x - -2004-01-27 Radek Doulik <rodo@ximian.com> - - * e-cell-text.c (ect_print): print strikeout/underline - - Fixes #32240 - -2003-11-19 Bolian Yin <bolian.yin@sun.com> - - Fixes #51139 - - * e-table-item.c : change the place of emitting - "selection_model_removed" signal. - -2003-11-17 Mike Kestner <mkestner@ximian.com> - - * e-table-config.c : use new gal_combo_* namespace. - -2003-11-11 Bolian Yin <bolian.yin@sun.com> - - Fixes # 50480 - - * e-table-item: add two signals: "selection_model_removed" and - "selection_model_added" - -2003-10-13 Charles Zhang <charles.zhang@sun.com> - - * e-table-config.c (e_table_config_new): disable apply button - when initial dialog. - * e-table-header-item.c (apply_changes): disable apply button - after applying changes. - -2003-10-23 Hans Petter Jansson <hpj@ximian.com> - - * e-table-item.c (eti_get_cell_background_color): Allocate - colors using gdk_colormap_alloc_color(). - -2003-09-28 Charles Zhang <charles.zhang@sun.com> - - * e-table-config.c (do_sort_and_group_config_dialog): process - GTK_RESPONSE_DELETE_EVENT signal correctly. - * e-table-config.c (do_fields_config_dialog): the same as above - [#48815] - -2003-09-11 Mike Kestner <mkestner@ximian.com> - - * e-table-config.c (get_source_model_col_index): new method to - get the source model column for a specified available_model idx. - (create_global_store): save the source model index in a new col. - (config_button_add): use the new index lookup function [48153]. - -2003-09-11 Mike Kestner <mkestner@ximian.com> - - * e-table-sort-info.c (e_table_sort_info_load_from_node): - move scnt and gcnt initialization outside the for loop [43156]. - -2003-08-25 Harry Lu <harry.lu@sun.com> - - ** For bug #47874. - - * e-table-specification.c (e_table_specification_load_from_file): - check whether file exists before call xmlParseFile(). - * e-table-state.c (e_table_state_load_from_file): ditto. - * e-tree-table-adapter.c (open_file): ditto. - -2003-08-19 Mike Kestner <mkestner@ximian.com> - - * e-cell-tree.c (draw_expander): add an expander_style param - (ect_draw): pass expander_style to draw_expander - (animate_expander): new timeout handler for expander animation - (ect_event): on !retro clicks, draw a "semi" expander and start - an animation handler to finish the animation. - -2003-08-15 Mike Kestner <mkestner@ximian.com> - - * e-cell-tree.c (draw_retro_expander): extracted from ect_draw - (draw_expander): new gtktreeview-like expander drawing - (ect_draw): draw lines and expanders based on retro_look style prop - (adjust_event_position): extracted method from ect_event - (event_in_expander): new checks for motion/clicks in expander - (ect_event): handle prelight for new expanders - * e-table-item.c (eti_init): init new motion col/row - (eti_event): synthesize leave_notify events for cells and propogate - existing motion events to the cells. - * e-tree.c (e_tree_class_init): add retro_look and expander_size - style props. - -2003-08-12 Larry Ewing <lewing@ximian.com> - - * e-cell-toggle.c (check_cache): actually chose the right color to - composite over when caching the pixmap. - -2003-08-08 Stanislav Brabec <sbrabec@suse.cz> - - * Makefile.am: Removed trailing backslash on last line. - -2003-07-28 Mike Kestner <mkestner@ximian.com> - - * e-table-config (setup_fields): map model_column to available - model row by ignoring disabled columns. - -2003-06-30 Dan Winship <danw@ximian.com> - - * e-tree.c (e_tree_init): Initialize some missing fields. Fixes - "no handler with id" warnings at evo shutdown - (ETreePriv): remove unused table_rows_{inserted,deleted}_id - (et_disconnect_from_etta): remove refs to them - - * e-table.c (e_table_drag_source_unset): free site->target_list if - it's set. - -2003-06-22 Hans Petter Jansson <hpj@ximian.com> - - * e-cell-text.c (get_font_for_size): Implement. - (ect_print): Use same font heuristics as evo calendar, pick a font - that fits. Correct baseline calculation. - -2003-06-19 Larry Ewing <lewing@ximian.com> - - * e-table-specification.c (e_table_specification_load_from_node): - remove extra ref, the count starts at one. - - * e-table-utils.c (e_table_spec_to_full_header): add_column adds a - reference, so drop the intial reference. - - * e-table.c (et_real_construct):remove extra ref, count starts at - one. - -2003-06-13 Mike Kestner <mkestner@ximian.com> - - * e-tree.c (et_search_search): don't do the CURSOR_FIRST - checks if cursor is NULL [43523] - -2003-06-13 Mike Kestner <mkestner@ximian.com> - - * e-table-item.c (eti_get_cell_background_color): update to - an alt row color more consistent with gtktreeview. [44610] - -2003-06-12 Mike Kestner <mkestner@ximian.com> - - * e-cell-text.c (generate_layout): guard against NULL strings - * e-table-config.c (create_global_store): don't add disabled - column titles to the store. [44258] - * e-tree-table-adapter.c (e_t_t_a_node_set_expanded): don't - warn if we're trying to collapse a node that's not visible. - * e-tree.c (et_connect_to_etta): don't connect to row_inserted - and row_deleted. [43893] - -2003-05-28 Mike Kestner <mkestner@ximian.com> - - * e-cell-date.c (ecd_get_text): use e_utf8_strftime_fix_am_pm - and remove locale to utf8 conversion at end. [43485] - -2003-05-20 Ettore Perazzoli <ettore@ximian.com> - - * e-tree.c (tree_canvas_size_allocate): to really fix 42952 - use e_table_item_get_cell_geometry. Also a couple valgrind - and g_warning fixes related to this change from Mike. - -2003-05-19 Mike Kestner <mkestner@ximian.com> - - * e-cell-text.c (build_layout): don't call any line breaking - or justification code if the width <= 0 since it's pointless - and apparently pango likes to crash when you do. [43199] - -2003-05-16 Mike Kestner <mkestner@ximian.com> - - * e-cell-text.c (invisible_finalize): kill - (ect_stop_editing): destroy the invisible, not weak_unref - (e_cell_text_view_get_invisible): don't weak_ref the invisible - since we own its ref. - -2003-05-16 Mike Kestner <mkestner@ximian.com> - - * e-table-item.c (eti_event): fix a couple timer checks - * e-tree-table-adapter.c (update_node): Traverse POST order - so that the parent nodes are at the head of the prepended list. - Don't restore expanded state to nodes that aren't in the tree - any longer. Hopefully fixes #42856. - -2003-05-15 Ettore Perazzoli <ettore@ximian.com> - - * e-tree.c (tree_canvas_size_allocate): Call - tree_canvas_reflow_idle() before deciding whether to move the - adjustment, not afterwards. [#42952] - -2003-05-14 Mike Kestner <mkestner@ximian.com> - - * e-tree-c (context_connect): use weak refs not datasets. - (e_tree_dispose): weak_unref the context. - Hopefully fixes 42617. - -2003-05-13 Mike Kestner <mkestner@ximian.com> - - * e-table-item.c (eti_event): gross hack to work around a - post dispose event emission by gtk2.0/canvas2.0 [#42622] - -2003-05-09 Mike Kestner <mkestner@ximian.com> - - * e-tree.c (find_next_in_range): add null check for paths - (find_prev_in_range): add null check for paths - -2003-05-09 Mike Kestner <mkestner@ximian.com> - - * e-table-item.c (eti_cursor_change): don't return on col == -1. - * e-tree.c (tree_canvas_size_allocate): update the adjustment - to center the cursor. - (hover_timeout): remove unused variable to fix warning - -2003-05-06 Mike Kestner <mkestner@ximian.com> - - * e-tree-table-adapter.c (insert_node): add missing model_changed - (etta_proxy_node_inserted): add missing model_changed - (etta_proxy_node_removed): add missing model_changed - -2003-05-05 Jeremy Katz <katzj@redhat.com> - - * e-table-config.c (setup_fields): Use correct macro for int->pointer - -2003-05-01 Mike Kestner <mkestner@ximian.com> - - * e-cell-combo.c (e_cell_combo_selection_changed): new - (e_cell_combo_init): connect to selection_changed on popup_list - (e_cell_combo_do_popup): block selection_changed while popping up - [bug #40996] - -2003-05-01 JP Rosevear <jpr@ximian.com> - - * e-table.c (et_real_construct): remove gratuitous ref - -2003-04-29 Mike Kestner <mkestner@ximian.com> - - * e-cell-text.c (build_layout): don't use unicode ellipsis so - that we don't break on broken font setups. - -2003-04-29 Mike Kestner <mkestner@ximian.com> - - * e-cell-text.c (generate_layout): don't set width on the layout - during edit - -2003-04-28 Mike Kestner <mkestner@ximian.com> - - * e-cell-text.c (build_layout): don't do wrapping during edit - -2003-04-21 Mike Kestner <mkestner@ximian.com> - - * e-cell-text.c (build_layout): use unicode ellipsis char for - breaking lines. Use g_utf8_find_prev_char and check for failure - so that we don't tight loop for small cells that can't display - any chars. - -2003-04-21 Mike Kestner <mkestner@ximian.com> - - * e-cell-tree.c (ect_draw): use e_tree_table_adapter_node_get_next - to determine how to draw sibling lines. - (ect_print): ditto - * e-tree-table-adapter.c (e_t_t_a_node_get_next): new - -2003-04-19 Chris Toshok <toshok@ximian.com> - - [ fixes evolution bug #40464 ] - * e-table.c (e_table_class_init): use G_SIGNAL_TYPE_STATIC_SCOPE - for the GtkSelectionData args of table_drag_data_get and - table_drag_data_received. - -2003-04-18 Mike Kestner <mkestner@ximian.com> - - * e-cell-text.c (build_layout): if the layout splits into more - than one line, shorten it to a single line with elipses. - (generate_layout): don't ref NULL layouts - (ect_enter_edit): use g_new0 for the CellEdit - (get_position_from_xy): use generate_layout since edit->layout - isn't necessarily set here. - -2003-04-17 JP Rosevear <jpr@ximian.com> - - * e-table-subset.c : add guarding for row indexing (Bug# 41497) - -2003-04-16 Mike Kestner <mkestner@ximian.com> - - * e-cell-text.c (build_layout): set width and alignment of layout. - (generate_layout): set width on existing layout and pass new width - param to build_layout. - (ect_draw): pass width to generate_layout - (ect_height): pass width to generate_layout - (ect_enter_edit): pass width to generate_layout - (ect_max_width): pass width to generate_layout - (ect_max_width_by_row): pass width to generate_layout - (ect_show_tooltip): pass width to generate_layout - (e_cell_text_view_command): pass width to generate_layout (Bug #37894) - -2003-04-15 Hans Petter Jansson <hpj@ximian.com> - - * e-table-header-utils.c (e_table_draw_elided_string): Don't unref - the layout that was passed in. - (e_table_header_draw_button): Always unref the layout when we're - done with it. - - * e-tree-table-adapter.c (e_tree_table_adapter_load_expanded_state): - Free the id when we're done with it. - -2003-04-11 JP Rosevear <jpr@ximian.com> - - * e-table-one.c (one_dispose): free data here since we don't have - source in finalize - -2003-04-08 Mike Kestner <mkestner@ximian.com> - - * e-table-config-no-group.glade : add response ids to buttons - -2003-04-08 Mike Kestner <mkestner@ximian.com> - - * e-cell-text.c : break e-font dependency - -2003-04-08 Mike Kestner <mkestner@ximian.com> - - * e-table-config.glade : swap button order - * e-table-config-no-group.glade : swap button order - -2003-04-08 Mike Kestner <mkestner@ximian.com> - - * e-cell-popup.c : remove debugging g_print calls - * e-table-group-container.c : fix length_threshold prop range - * e-table-group-leaf.c : fix length_threshold prop range - * e-table-item.c : fix length_threshold prop range - -2003-04-04 Mike Kestner <mkestner@ximian.com> - - * e-tree-table-adapter.c (etta_sort_info_changed): guard against - root == NULL. Bug #39491. - -2003-04-02 Ettore Perazzoli <ettore@ximian.com> - - * e-tree.c (e_tree_class_init): Add a G_SIGNAL_TYPE_STATIC_SCOPE - for the GTK_TYPE_SELECTION_DATA arg. - -2003-04-02 Mike Kestner <mkestner@ximian.com> - - * e-tree-table-adapter.c (update_node): restore expanded - state of node and all children. Fixes Ximian bug #40393. - (check_expanded): new traverser function - -2003-03-31 Mike Kestner <mkestner@ximian.com> - - * e-tree-table-adapter.c (kill_gnode): if killing the root - node, set it to NULL in the priv data. Bug #39441. - -2003-03-24 Mike Kestner <mkestner@ximian.com> - - * e-table-sort-info.c (e_table_sort_info_load_from_node): - properly parse nodes that include whitespace. bug #39896 - -2003-03-24 Mike Kestner <mkestner@ximian.com> - - * e-tree-table-adapter.c (update_node): don't call delete_node - on the root node since generate_tree already does that. Thanks - to Antonio Xu <antonio.xu@sun.com> for identifying the cause of - the bug and providing a candidate patch. Bug #38320. - -2003-03-23 Chris Toshok <toshok@ximian.com> - - * e-table.c (do_drag_motion): fix UMR. - -2003-03-18 Chris Toshok <toshok@ximian.com> - - * e-cell-text.h: add underline_column field. - - * e-cell-date.c: add underline_column to the comment. - - * e-cell-size.c: add underline_column to the comment. - - * e-cell-text.c (build_layout): handle underline column. - (ect_show_tooltip): same. - (ect_set_property): same. - (ect_get_property): same. - (e_cell_text_class_init): same. - (e_cell_text_init): same. - (e_cell_text_new): add underline_column to the comment. - -2003-03-18 Chris Toshok <toshok@ximian.com> - - * e-table-item.h (ETableItem): add cursor_idle_id. - - * e-table-item.c (eti_idle_maybe_show_cursor): save off the - cursor_idle_id. - (eti_idle_show_cursor_cb): reset the cursor_idle_id to 0. - (eti_dispose): remove the cursor_idle_id. Fixes a crash in the - evolution select-names dialog. - -2003-03-18 Mike Kestner <mkestner@ximian.com> - - * e-table-header-item.c (ethi_draw): mimic Gtk's sort arrows - (ethi_start_drag): mimic Gtk's sort arrows - -2003-03-18 Mike Kestner <mkestner@ximian.com> - - * e-tree-selection-model.c (select_single_path): null start_path - (etsm_invert_selection): null start_path - (etsm_toggle_single_row): null start_path - (etsm_real_move_selection_end): start at start_path, not cursor - (etsm_set_selection_end): set start_path - (e_tree_selection_model_init): null start_path - -2003-03-14 Mike Kestner <mkestner@ximian.com> - - * e-tree-table-adapter.c (update_node): save and restore expanded - state so parents don't collapse when children are added to them. - (e_tree_table_adapter_node_is_expanded): guard against null nodes. - -2003-03-05 Mike Kestner <mkestner@ximian.com> - - * e-tree-model.c : fix a couple ==TRUE uses pointed out by - Morten Welinder <terra@diku.dk>. - -2003-03-04 Dmitry Mastrukov <dmitry@taurussoft.org> - - * e-cell-date.c (ecd_get_text): i18n fix - * e-table.c (et_real_construct): i18n fix - * e-table-config.c (create_global_store): i18n fix - * e-table-utils.c (et_col_spec_to_col): i18n fix - -2003-03-04 Mike Kestner <mkestner@ximian.com> - - * e-tree-selection-model.c : some cursor fixes - -2003-03-04 Mike Kestner <mkestner@ximian.com> - - * e-tree-selection-model.c : rewrite to store selected paths in a - hashtable instead of a tree. - * e-tree-table-adapter.c : lose the hacky orig_position api since - etsm doesn't need it anymore. - -2003-02-26 Rodney Dawes <dobey@ximian.com> - - * e-tree.c (et_canvas_style_set): Add style_set to update list properly - (et_canvas_realize): Remove this as it's no longer needed with support - for the style_set implementation - -2003-02-28 Mike Kestner <mkestner@ximian.com> - - * e-table.c (et_drag_motion): remove alloc-based transform - (et_drag_data_received): ditto - (et_drag_drop): ditto - (do_drag_motion): ditto - -2003-02-28 Mike Kestner <mkestner@ximian.com> - - * e-tree.c (et_drag_motion): remove alloc-based transform - (et_drag_data_received): ditto - (et_drag_drop): ditto - (et_hover_timeout): ditto - (do_drag_motion): ditto - -2003-02-20 Mike Kestner <mkestner@ximian.com> - - * e-table-item.c (eti_table_model_rows_deleted): fix overzealous - g_asserts to avoid crashes when eti->rows is already updated. - -2003-02-20 Mike Kestner <mkestner@ximian.com> - - * e-tree-selection-model.c (etsm_orig_position): kill - (etsm_find_node_unless_equals): use new etta_orig_position - (update_parents): use new etta_orig_position - (etsm_recurse_is_path_selected): use new etta_orig_position - * e-tree-table-adapter.c (e_tree_table_adapter_orig_position): new - (resort_node): populate orig_pos, fix sorting_map bound bug - (create_gnode): initialize orig_pos - (delete_node): call resort_node so orig_pos gets updated - (insert_node): always call resort_node let it decide whether to sort - -2003-02-18 Mike Kestner <mkestner@ximian.com> - - * e-tree-table-adapter.c (move_map_elements): set remap_needed - -2003-02-17 Chris Toshok <toshok@ximian.com> - - * e-cell-text.c (build_layout): make sure the row >= 0 before - calling value_at to calc "strikeout". - -2003-02-17 Chris Toshok <toshok@ximian.com> - - * e-tree-table-adapter.c (etta_proxy_node_data_changed): return - after the e_table_model_no_change call. - (etta_proxy_node_col_changed): same. - -2003-02-13 Mike Kestner <mkestner@ximian.com> - - * e-tree-table-adapter.c (*_load_expanded_state): guard for - null paths if save_id lookup fails. - -2003-02-13 Mike Kestner <mkestner@ximian.com> - - * e-table-header-item.c (ethi_drag_motion): don't transform - based on allocation position. Position isn't absolute now. - -2003-02-13 Mike Kestner <mkestner@ximian.com> - - * e-table-header-utils.c (e_table_header_draw_button): kill - a double unref on the pango_layout. - -2003-02-12 Hans Petter Jansson <hpj@ximian.com> - - * e-table-click-to-add.c (etcta_realize): Request a reflow on - realization, so size and placement will be correct initially. - -2003-02-12 Mike Kestner <mkestner@ximian.com> - - * e-tree.c (e_tree_find_next): handle reverse searches - (find_prev_in_range): reverse search impl - (et_real_construct): kill warnings - -2003-02-12 Mike Kestner <mkestner@ximian.com> - - * e-tree-table-adapter.c (insert_node): work around broken models - that insert children before parents. bad models. - (e_tree_table_adapter_load_expanded_state): don't update_node - (e_tree_table_adapter_node_set_expanded): recursively expand - parent if the node is not visible yet. - (e_tree_table_adapter_set_sort_info): don't resort empty trees - -2003-02-10 Mike Kestner <mkestner@ximian.com> - - * e-tree.c (e_tree_find_next): rewrite to use etta - (find_next_in_range): helper func to search a range of rows - (find_next_callback): kill - -2003-02-06 Mike Kestner <mkestner@ximian.com> - - * e-tree-table-adapter.c (resort_node): index bound bug - (insert_children): prepend/reverse for now - (generate_tree): resize old map to zero before filling it again - (insert_node): fix assumption that root parent node has an index - -2003-02-06 Not Zed <NotZed@Ximian.com> - - * e-tree-table-adapter.c (delete_node): use the parent path to - find the parent node rather than the row, which is not valid for - the root node, which still needs its visible child count updated. - -2003-02-05 Dan Winship <danw@ximian.com> - - * e-table-config.c (config_class_init): Replace deprecated - glade_gnome_init() call with glade_init(). - - * e-table-field-chooser.c (e_table_field_chooser_class_init): - Likewise. - -2003-02-03 Mike Kestner <mkestner@ximian.com> - - * e-tree-selection-model.c : remove e-tree-sorted usage - * e-tree-table-adapter.* : rewrite to perform sorting - * e-tree.c : remove e-tree-sorted usage - -2003-01-27 Jody Goldberg <jody@gnome.org> - - * Release 1.99.1 - -2003-01-23 Larry Ewing <lewing@ximian.com> - - * e-table-click-to-add.c (e_table_click_to_add_commit): destroy - canvas items to removing them, simply unrefing them is not - sufficient. - -2003-01-22 Ettore Perazzoli <ettore@ximian.com> - - * e-tree-table-adapter.c - (e_tree_table_adapter_load_expanded_state): Call - e_table_model_pre_changed() only once so we dont' get the table in - a frozen state after returning from here. - -2003-01-15 Jeffrey Stedfast <fejj@ximian.com> - - * e-tree-table-adapter.c - (e_tree_table_adapter_save_expanded_state): Same here. - - * e-table-state.c (e_table_state_save_to_file): Same as below. - - * e-table-specification.c (e_table_specification_save_to_file): - Back to using e_xml_save_file(). Not sure we can really trust - xmlSaveFile (sure as hell couldn't in the libxml-1.x days), - besides, e_xml_save_file protects against corruption due to not - enough disk space. - -2003-01-15 Not Zed <NotZed@Ximian.com> - - * e-cell-tree.c (ect_draw): If we set a clip rectangle, clear it - after we've finished. - -2002-01-10 Mike Kestner <mkestner@ximian.com> - - * e-table-item.c (eti_table_model_rows_deleted): revert broken fix - -2002-12-18 Chris Toshok <toshok@ximian.com> - - * e-table-group-container.c (etgc_dispose): free the children - before we free and dispose of our ecol, since - e_table_group_container_child_node_free depends on it. Fixes a - crash. - -2002-12-18 Chris Toshok <toshok@ximian.com> - - * e-table-header-item.c (ethi_popup_customize_view): pass NULL for - parent_window for e_table_config_new. - - * e-table-config.glade, e-table-config-no-group.glade: switch from - GnomePropertyBox to GtkDialog, remove the extra notebook widget - from the heirarchy, and set all the subdialogs modal. - - * e-table-config.h: add parent_window arg to - e_table_config_{new,construct}. - - * e-table-config.c (config_dialog_changed): new function, not - really needed yet since the apply/ok buttons are never - insensitive. - (config_get_property): handle the "state" read-only property. - (config_class_init): put back in the "state" property that was - deleted during the merge from the gal-2 branch (it looks like). - (do_sort_and_group_config_dialog): set the sort/group dialog - transient for the e-table-config dialog, and - gnome_property_box_changed -> config_dialog_changed. - (do_fields_config_dialog): same, but with the fields dialog. - (dialog_response): response handler for the e-table-config dialog. - (setup_gui): remote the hide button/notebook code, since neither - of those widgets exist anymore in this dialog, and remove the - "apply" signal and connect to "response", since we're a GtkDialog - dialog instead of a GnomePropertyBox. - (e_table_config_construct): take a parent_window arg, and - set_transient_for if it's non-NULL. - (e_table_config_new): take parent_window arg and pass to - construct. - -2002-12-16 Chris Toshok <toshok@ximian.com> - - * e-cell-text.c (_get_tep): edit->tep isn't a GtkObject anymore. - -2002-12-16 Chris Toshok <toshok@ximian.com> - - * e-table-header-utils.c (e_table_draw_elided_string): pass in the - pango layout so we don't have to create another one here. Also, - elide the string properly (same method that e-clipped-label uses) - and simplify the extent operations. - (e_table_header_compute_height): just use - pango_layout_get_pixel_size here. - (e_table_header_draw_button): make sure the clip rectangle is - NULL'ed on our gc, since random gtk calls seem to install one, - which sucks. Also, simplify the pango layout stuff a little. - -2002-12-16 Chris Toshok <toshok@ximian.com> - - * e-table.c (et_real_construct): remove obvious double g_strdup. - - * e-table-header-item.c (ethi_header_context_menu): ref/sink the - popup. - - * e-table-field-chooser.c (e_table_field_chooser_init): use - gtk_widget_show_all so our custom widget gets displayed. - -2002-12-13 Mike Kestner <mkestner@ximian.com> - - * e-table-item.c (eti_table_model_rows_deleted): valgrindage - -2002-12-05 Jeffrey Stedfast <fejj@ximian.com> - - * e-table-extras.c (ete_init): Add a "collate" sort callback that - uses the new g_collate_compare(). - -2002-12-03 Hans Petter Jansson <hpj@ximian.com> - - * e-table.c (e_table_get_state_object): Don't leak old sort info. - -2002-12-03 Not Zed <NotZed@Ximian.com> - - * e-tree-memory.c (etmm_dispose): make this a dispose rather than - finalise. Crashes on finalise otherwise. - -2002-11-26 Ettore Perazzoli <ettore@ximian.com> - - * e-table-memory-store.c (etms_finalize): Call - e_table_memory_store_clear(). - (e_table_memory_store_clear): Free the values. - (e_table_memory_store_remove): Likewise. - -2002-11-18 Chris Toshok <toshok@ximian.com> - - * e-table-config.c (connect_button): take GCallback, not - GtkSignalFunc. - (configure_sort_dialog): show the custom widget. - (configure_group_dialog): same. - (configure_fields_dialog): same, also pass G_CALLBACK (func), - instead of GTK_SIGNAL_FUNC (func), to connect_button. - (setup_gui): pass G_CALLBACK (func), instead of GTK_SIGNAL_FUNC - (func), to connect_button. - - * Makefile.am (glade_DATA): remove e-table-group.glade, since we - don't use it anyplace. - -2002-11-16 Chris Toshok <toshok@ximian.com> - - * e-table.c (set_scroll_adjustments): check for - table->table_canvas == NULL. - - * e-table-item.c (eti_dispose): guard eti->tooltip. - -2002-11-16 Chris Toshok <toshok@ximian.com> - - * e-cell-checkbox.[ch]: GObject port work. - - * e-cell-combo.[ch]: same. - - * e-cell-date.[ch]: same. - - * e-cell-float.[ch]: same. - - * e-cell-number.[ch]: same. - - * e-cell-pixbuf.[ch]: same. - - * e-cell-popup.[ch]: same. - - * e-cell-progress.[ch]: same. - - * e-cell-size.[ch]: same. - - * e-cell-spin-button.[ch]: same. - - * e-cell-text.[ch]: same. - - * e-cell-toggle.[ch]: same. - - * e-cell-tree.[ch]: same. - - * e-cell-vbox.[ch]: same. - - * e-cell.[ch]: same. - - * e-table-col.c: same. - - * e-table-column.c: same. - - * e-table-config-field.[ch]: same. - - * e-table-config.c: same. - - * e-table-config.glade: same. - - * e-table-field-chooser-dialog.[ch]: same. - - * e-table-field-chooser-item.[ch]: same. - - * e-table-field-chooser.[ch]: same. - - * e-table-group-container.[ch]: same. - - * e-table-group-leaf.[ch]: same. - - * e-table-group.[ch]: same. - - * e-table-header-item.[ch]: same. - - * e-table-header-utils.[ch]: same. - - * e-table-header.c: same. - - * e-table-item.[ch]: same. - - * e-table-scrolled.[ch]: same. - - * e-table-utils.c: same. - - * e-table.[ch]: same. - - * e-tree-memory-callbacks.h: same. - - * e-tree-scrolled.[ch]: same. - - * e-tree-sorted-variable.c: same. - - * e-tree.[ch]: same. - - * test-check.c: same. - - * test-cols.c: same. - - * test-table.c: same. - -2002-11-14 Chris Toshok <toshok@ximian.com> - - * e-table-header-item.c (ethi_popup_customize_view): fix typo. - -2002-11-14 Chris Toshok <toshok@ximian.com> - - * e-table-header-item.c (ethi_popup_customize_view): ETableConfig - derives from GObject (fix warnings). - - * e-table.c: deal with ESorter deriving from GObject. - - * e-table-sorter.[ch]: this derives from GObject now. - -2002-11-14 Chris Toshok <toshok@ximian.com> - - * e-table-item.c: deal with ESelectionModel no longer deriving - from GtkObject. - - * e-table.c: same. - - * e-tree.c: same. - - * e-table-config.c (do_fields_config_dialog): use GtkDialog's - reponse instead of GnomeDialog's button. - - * e-table-click-to-add.[ch]: GObjectify this. - - * e-table-selection-model.[ch]: this derives from GObject now. - - * e-tree-selection-model.[ch]: same. - -2002-11-14 Chris Toshok <toshok@ximian.com> - - * e-table-without.[ch]: this subclasses from GObject now, not - GtkObject. don't use GtkObject (especially casts to it) inside - the code. - - * e-table-config-no-group.glade: libglade-convert. - - * e-table-config.glade: same. - - * e-table-field-chooser.glade: same. - - * e-table-group.glade: same. - -2002-11-13 Chris Toshok <toshok@ximian.com> - - * e-table.c (e_table_class_init): register the signals with - g_signal_new. - -2002-11-08 Chris Toshok <toshok@ximian.com> - - * e-table-memory-store.h: correct the GET_CLASS macro. - - * e-table-one.h: same. - - * e-table-sorted.h: same. - - * e-table-subset.h: same. - - * e-tree-sorted-variable.h: same. - - * e-tree-table-adapter.h: same. - -2002-11-05 Mike Kestner <mkestner@ximian.com> - - * e-table-sorted-variable.[ch] : GObjectify - * e-tree-sorted-variable.[ch] : GObjectify - -2002-11-05 Mike Kestner <mkestner@ximian.com> - - * e-cell-text.c : remove ref/unref G_OBJECT masks - * e-table-extras.c : ditto - * e-table-header-item.c : ditto - * e-table-item.c : ditto - * e-table-memory-store.c : ditto - * e-table-one.c : ditto - * e-tree-sorted.c : ditto - * e-tree-table-adapter.c : ditto - * e-tree.c : ditto - -2002-11-05 Mike Kestner <mkestner@ximian.com> - - * e-table-col.[ch] : GObjectify - * e-table-column-specification.[ch] : GObjectify - * e-table-config.[ch] : GObjectify - * e-table-group-leaf.c : use GObject api for models - * e-table-group.c : use GObject api for models - * e-table-header-item.c : use GObject api for models - * e-table-header.c : use GObject api for models - * e-table-selection-model.c : use GObject api for models - * e-table-sort-info.[ch] : GObjectify - * e-table-sorted.[ch] : GObjectify - * e-table-sorter.c : use GObject api for models - * e-table-specification.c : use GObject api for models - * e-table-state.[ch] : GObjectify - * e-table-subset-variable.[ch] : GObjectify - * e-table-subset.[ch] : GObjectify - * e-table.c : use GObject api for models - -2002-11-05 Mike Kestner <mkestner@ximian.com> - - * e-table-item.c : use GObject api for models - * e-table-memory-callbacks.[ch] : GObjectify - * e-table-memory-store.[ch] : GObjectify - * e-table-memory.[ch] : GObjectify - * e-table-model.[ch] : GObjectify - * e-table-one.[ch] : GObjectify - * e-table-simple.[ch] : GObjectify - * e-tree-memory.[ch] : GObjectify - * e-tree-model.[ch] : GObjectify - * e-tree-selection-model.c : use GObject api for models - * e-tree-simple.[ch] : GObjectify - * e-tree-sorted.[ch] : GObjectify - * e-tree-table-adapter.[ch] : GObjectify - * e-tree.c : use GObject api for models - -2002-11-04 Mike Kestner <mkestner@ximian.com> - - * e-table-group.c : use GObject api for ETableHeader - * e-table-header-item.c : use GObject api on ETableHeader - * e-table-header.[ch] : GObjectify - * e-table-item.c : use GObject api on ETableHeader - * e-table-search.[ch] : GObjectify - * e-table-sorted.c : use GObject api for ETableHeader - * e-table-sorter.c : use GObject api for ETableHeader - * e-table-specification.[ch] : GObjectify - * e-table-utils.c : use GObject api for ETableHeader - * e-tree-sorted.c : use GObject api for ETableHeader - * e-tree.c : use GObject api on Header, Spec, and Search - -2002-11-01 Mike Kestner <mkestner@ximian.com> - - * e-table-extras : gobjectify - * e-tree.c (et_real_construct): ETableExtra is now a GObject - (e_tree_class_init): remove duplicated signals - -2002-10-26 Jody Goldberg <jody@gnome.org> - - * Release 2.0.0.7 - -2002-10-24 Mike Kestner <mkestner@ximian.com> - - * e-tree.c (e_tree_set_state_object): call e_tree_state_change - -2002-10-24 Chris Toshok <toshok@ximian.com> - - * e-table-memory-store.h: add prototypes for the _change* - functions. - - * e-table-memory-store.c (e_table_memory_store_change_array): new - function, mostly c&p from _insert_array. - (e_table_memory_store_change): new function, mostly c&p from - _insert. - (e_table_memory_store_change_adopt_array): new function, mostly - c&p from _insert_adopt_array. - (e_table_memory_store_change_adopt): new function, mostly c&p from - _insert_adopt. - -2002-10-18 JP Rosevear <jpr@ximian.com> - - * e-table-item.c (eti_cursor_activated): don't emit a signal if we - couldn't find the view row - -2002-10-02 Mike Kestner <mkestner@ximian.com> - - * e-table-search.c (e_table_search_destroy): call drop_timeout - -2002-09-27 Mike Kestner <mkestner@ximian.com> - - * e-table-item.c (eti_get_cell_foreground_color): use the fg color - array in style, not text color. Change requested by Chris Lahey. - -2002-09-24 Mike Kestner <mkestner@ximian.com> - - * e-tree.c (e_tree_set_search_column): New api to set the search - column on a tree without having to set a sort column. - -2002-09-18 Mike Kestner <mkestner@ximian.com> - - * e-tree-model.c (e_tree_model_is_expandable): guard against NULL - nodes. - -2002-09-18 Dan Winship <danw@ximian.com> - - * e-table.c (et_real_construct): Set the selection model's - selection_mode after setting the table model, or things will break - in the GTK_SELECTION_SINGLE case if the table doesn't start out - empty. - -2002-09-17 Mike Kestner <mkestner@ximian.com> - - * gal/e-table/e-table-item.c (eti_event): exit editing on dblclick. - ungrab based on grabbed_count. unset grabbed_col and grabbed_row - on ungrab. - -2002-09-13 Jody Goldberg <jody@gnome.org> - - * Release 2.0.0.6 - -2002-09-10 Mike Kestner <mkestner@ximian.com> - - * gal/e-table/e-table-item.c (eti_event): allow keypress handling - for cursor_col==-1 as long as cursor_row isn't -1 also so that e-tree - searching works without click focusing an item. - -2002-08-29 Morten Welinder <terra@diku.dk> - - * e-table.c (et_destroy): Protect against double destroy. - - * e-cell-text.c (generate_layout): Handle row==-1 brutally. - (build_layout): Handle row==-1 and constify. - - * e-table-search.c (e_table_search_class_init): Use INT, not ENUM - signal argument. - -2002-08-06 Jody Goldberg <jody@gnome.org> - - * Release 2.0.0.5 - -2002-08-06 Jeffrey Stedfast <fejj@ximian.com> - - * e-tree-table-adapter.c - (e_tree_table_adapter_save_expanded_state): And finally here. - - * e-table-state.c (e_table_state_save_to_file): Same here. - - * e-table-specification.c (e_table_specification_save_to_file): No - need to save to a temp file first here either since - e_xml_save_file now does that for us. - - * e-table.c (e_table_save_specification): No need to handle - writing to a temp file first anymore, since I've updated - e_xml_save_file() to handle that for us. - -2002-08-06 Jeffrey Stedfast <fejj@ximian.com> - - * e-cell-progress.c: #include <string.h> for memset - - * e-table.c (e_table_save_specification): Updated to use - e_xml_save_file() instead of xmlSaveFile(). Also fixed to save to - a tmp file first. - - * e-table-specification.c (e_table_specification_save_to_file): - Same as above. - - * e-table-state.c (e_table_state_save_to_file): Same here. - - * e-tree-table-adapter.c - (e_tree_table_adapter_save_expanded_state): And here too. - -2002-07-23 Ettore Perazzoli <ettore@ximian.com> - - * e-tree.c (item_key_press): In the case of '-' and '=', check - that no non-Shift modifier is pressed. - -2002-07-19 Christopher James Lahey <clahey@ximian.com> - - * e-tree-table-adapter.c (find_next_node, find_first_child_node): - Made these able to find the potential row for a new node which - will be the last row. - (find_row_num): Made this handle find_next_node and - find_first_child_node returning n_map. - -2002-06-18 JP Rosevear <jpr@ximian.com> - - Patch by clahey. - - * e-table.c (et_get_arg): get the use_click_to_add value - (et_set_arg): set the use_click_to_add_value, and either display - the item or destroy it - (e_table_class_init): add the use_click_to_add arg - -2002-06-18 Christopher James Lahey <clahey@ximian.com> - - * e-cell-text.c: Major change. Ported this to pango. - -2002-06-14 Christopher James Lahey <clahey@ximian.com> - - * e-table.c, e-table.h: Removed the drag_get_data_row and - drag_get_data_col fields since they're not used any longer. - (e_table_construct): If specification loading fails, return a NULL - ETable instead of just ignoring it. - (e_table_drag_highlight): Only destroy table->drop_highlight if it - exists. - - * e-cell-popup.c (ecp_draw, ecp_event): Don't draw or interact - with the popup button if a cell isn't editable (based on a patch - by JPR.) - - * e-table-col.c, e-table-col.h: Added the compare_col field to - this structure. Added a GtkArg to set it. - - * e-table-column-specification.c, e-table-column-specification.h: - Added the compare_col field here. Made it load properly from xml. - - * e-table-sorting-utils.c: Sort based on the compare_col in the - ETableCol instead of the col_idx. - - * e-table-utils.c (et_col_spec_to_col): Set the compare_col field - in the ETableCol properly. - -2002-06-05 Christopher James Lahey <clahey@ximian.com> - - * e-table-field-chooser-item.c: Added debugging printfs. - - * e-table-header-item.c: Added debugging printfs. - (ethi_drag_motion): Don't subtract widget->allocation.* here. It - seems that this value is affected by whether the table is using a - click to add field. Not sure why. - - * e-table-item.c (eti_realize): Check for NULL selection here. - -2002-06-05 Christopher James Lahey <clahey@ximian.com> - - * e-tree-model.c (d): Added debugging printfs. - - * e-tree-sorted.c (ets_proxy_node_changed, - ets_proxy_node_data_changed, ets_proxy_node_col_changed, - ets_proxy_node_inserted): Added a bunch of e_tree_model_no_change - signals where appropriate. - - * e-tree-table-adapter.c (etta_proxy_node_changed): Added an - e_table_model_no_change signal where appropriate. - -2002-06-05 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_realize): Made it so that on realize we grab - focus if we have the cursor, since otherwise, we'll change our - selection on focus in. - -2002-06-04 Christopher James Lahey <clahey@ximian.com> - - * e-table-header.c, e-table-header.h - (e_table_header_prioritized_column_selected): Added this function. - - * e-table-utils.c, e-table-utils.h - (e_table_util_calculate_current_search_col): Added this function. - - * e-table.c, e-table.h, e-tree.c: Added a "always_search" - argument. If this is off, then searches only occur if there's - sort. If it's on, sort takes precendence in doing searches, - followed by the highest priority column shown. - -2002-06-04 Christopher James Lahey <clahey@ximian.com> - - * e-cell-text.c: Use g_getenv instead of getenv. - - * e-table-item.c (eti_event): Reenable tooltips if the - GAL_DO_TOOLTIPS environment variable is set. - -2002-06-03 Christopher James Lahey <clahey@ximian.com> - - * e-cell-text.c (ect_style_set): Get the font from the style again - when the style changes. - (init): Checks for the environment variable GAL_ELLIPSIS and uses - that instead of ... if it is set. - - * e-table-click-to-add.c (finish_editing): e_table_item_leave_edit - before committing. - (etcta_event): Added a missing break; here. - - * e-table-item.c (eti_style_set): On style set, free the height - cache, request a reflow and a redraw, and call - eti_idle_maybe_show_cursor. - (e_table_item_compute_location): Don't call eti_get_height here, - just use the cached value. - - * e-tree.c, e-tree.h (e_tree_get_table_adapter): Added this simple - accessor function. - -2002-05-29 Jody Goldberg <jody@gnome.org> - - * Release 2.0.0.4 - -2002-05-24 Christopher James Lahey <clahey@ximian.com> - - * e-tree-table-adapter.c - (e_tree_table_adapter_node_would_be_expanded, - e_tree_table_adapter_node_is_expanded): Added would_be_expanded - refactoring code out of is_expanded. - (find_first_child_node_maybe_deleted): Use the new function. - -2002-05-21 Christopher James Lahey <clahey@ximian.com> - - * e-tree-sorted.c (ets_proxy_node_request_collapse): Check for - path being NULL. - - * e-tree-table-adapter.c - (e_tree_table_adapter_load_expanded_state): Rebuild the tree after - loading the state. - -2002-05-13 Christopher James Lahey <clahey@ximian.com> - - * e-tree-table-adapter.c: Changed a lot of direct uses in this - file of node->is_expanded to call the function - e_tree_table_adapter_node_is_expanded instead. - (e_tree_table_adapter_node_is_expanded): Improved this function to - know if the root node is visible and always return it as being - expanded if it's not. It also doesn't bother creating nodes if - they don't exist yet, and instead figures out whether they would - be expanded if they were to be created and returns that value - instead. - -2002-05-10 Christopher James Lahey <clahey@ximian.com> - - * e-table-search.c: Include string.h here. - -2002-05-09 Dan Winship <danw@ximian.com> - - * e-tree-table-adapter.c - (e_tree_table_adapter_save_expanded_state): Bump file version to 2. - (This will make older versions of gal ignore the file, fixing the - problem where going from evo HEAD to evo 1.0.x makes the folder - tree disappear.) Store the default expanded state in the file now - to prevent this from happening again in the future. - (e_tree_table_adapter_load_expanded_state): Deal with version 2. - If the model's default expansion state doesn't match the saved - state, ignore the save file. - -2002-05-09 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c, e-table-item.h: Switched from - gnome_canvas_item_grab to e_canvas_item_grab. - -2002-05-02 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c - (etsm_selected_count_recurse): Moved the check for - any_children_selected_down so that a selected node with no - selected children will still get counted. - (etsm_select_all): When setting all_children_selected and - any_children_selected to TRUE, don't bother creating arrays for - them since that's unnecessary. - -2002-05-02 Christopher James Lahey <clahey@ximian.com> - - * e-table-click-to-add.c (finish_editing): Add horizontal dividers - here too. - - * e-table-config.c (create_global_store): Translate column headers - here. - - * e-table-header-item.c (ethi_header_context_menu): Use - e_popup_menu_create_with_domain here. - - * e-table-header-utils.c (e_table_header_draw_button): Translate - from utf8 here before drawing. - - * e-table-memory-store.c, e-table-memory-store.h - (e_table_memory_store_insert_adopt_array): Changed the name of - this function from e_table_memory_store_insert_adopt. - (e_table_memory_store_insert_adopt): Added this function which - takes a ... list. - - * e-table-utils.c (et_col_spec_to_col): Translate column titles to - utf8 here. - -2002-05-02 Christopher James Lahey <clahey@ximian.com> - - * e-table-click-to-add.c: Added horizontal dividers to this item - when in table mode. - - * e-table.c, e-tree.c: Made the background be an - e-canvas-background instead of a - - * e-tree.c, e-tree.h: Added a white_space_event for feature parity - with ETable. - -2002-05-01 Christopher James Lahey <clahey@ximian.com> - - * e-table-config.c, e-table-config.h, e-table-specification.c, - e-table-specification.h, e-table-utils.c, e-table-utils.h, - e-table.c, e-table.h: Made these pay attention to the - gettext-domain in the etspec. - - * e-table-config.c: Set the gettext-domain in the etspec here. - -2002-04-29 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_cursor_change): Redraw a row that is no - longer the cursor even if this item isn't getting the new cursor. - -2002-04-29 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c, e-tree.h (e_tree_path_foreach): Added this function - which recurses over all nodes, regardless of selection. - -2002-04-26 Christopher James Lahey <clahey@ximian.com> - - * e-table-field-chooser-item.c (etfci_maybe_start_drag): Take an - int instead of a double. From a patch by jody@ximian.com. - -2002-04-26 Christopher James Lahey <clahey@ximian.com> - - * e-table-state.c (etst_destroy): Only unref etst->sort_info once. - -2002-04-26 Christopher James Lahey <clahey@ximian.com> - - * e-table-model.c (e_table_model_value_at), e-tree-model.c - (e_tree_model_value_at): Documented the life cycle requirements of - the return value of these functions. - -2002-04-26 Christopher James Lahey <clahey@ximian.com> - - * e-table-memory-store.c (e_table_memory_store_adopt_value_at, - etms_set_value_at): Added calls to e_table_model_pre_change here - so that the ETableItem doesn't unfreeze more times than it - freezes. - -2002-04-25 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c (etsm_selected_count_recurse, - etsm_foreach_recurse): Made these handle the case where - all_children_selected_array has a bit set, but the children of - that node aren't filled in. - -2002-04-25 Christopher James Lahey <clahey@ximian.com> - - * e-cell-checkbox.c, e-cell-combo.c, e-cell-date.c, - e-cell-float.c, e-cell-number.c, e-cell-pixbuf.c, e-cell-popup.c, - e-cell-size.c, e-cell-spin-button.c, e-cell-text.c, - e-cell-toggle.c, e-cell-tree.c, e-cell.c, e-cell.h, - e-table-click-to-add.c, e-table-col.c, - e-table-column-specification.c, e-table-config-field.c, - e-table-config.c, e-table-extras.c, - e-table-field-chooser-dialog.c, e-table-field-chooser-item.c, - e-table-field-chooser.c, e-table-group-container.c, - e-table-group-leaf.c, e-table-group.c, e-table-header-item.c, - e-table-header.c, e-table-item.c, e-table-memory-callbacks.c, - e-table-model.c, e-table-scrolled.c, e-table-selection-model.c, - e-table-sort-info.c, e-table-sorted-variable.c, e-table-sorted.c, - e-table-sorter.c, e-table-specification.c, e-table-state.c, - e-table-subset-variable.c, e-table-subset.c, e-table-without.c, - e-table.c, e-table.h, e-tree-scrolled.c, e-tree-selection-model.c, - e-tree-sorted-variable.c, e-tree-sorted.c, e-tree-table-adapter.c, - e-tree.c: Ansification patch from danw. - -2002-04-24 JP Rosevear <jpr@ximian.com> - - * e-cell-pixbuf.c (pixbuf_print): implement printing - (pixbuf_print_height): implement print height - (e_cell_pixbuf_class_init): set printing virtual methods - - * e-cell-toggle.c (etog_print): remove clipping, default clipping - is done by the table, scale based on toggle height - - * e-table-item.c (e_table_item_calculate_print_widths): make the - scale 1:1 - -2002-04-24 Christopher James Lahey <clahey@ximian.com> - - * e-table-config.c (create_global_store): Changed this to match - the new e_table_memory_store_insert function prototype. - -2002-04-22 Christopher James Lahey <clahey@ximian.com> - - * e-table-memory-store.c, e-table-memory-store.h: Renamed the - insert functions in this class to make a bit more sense. - -2002-04-19 Jeffrey Stedfast <fejj@ximian.com> - - * e-table-state.c (etst_destroy): Unref the sort_info. - - * e-cell-toggle.c (etog_kill_view): After unreffing all the - pixmaps, free the toggle_view->pixmap_cache. - - * e-table-search.c (e_table_search_destroy): Free the - priv->search_string and priv itself. More memory leak fixage. - - * e-tree.c (e_tree_drag_source_unset): Unref site->taget_list so - we don't leak memory. - -2002-04-19 JP Rosevear <jpr@ximian.com> - - * e-cell-toggle.c (etog_print): print the cell in the allotted - area - (etog_print_height): return the print height - -2002-04-17 Christopher James Lahey <clahey@ximian.com> - - * e-table-header-item.c: Updated this to match the new EPopupMenu. - -2002-04-11 Christopher James Lahey <clahey@ximian.com> - - * e-table-header-item.c (ethi_header_context_menu): Fixed a memory - leak here by using the "selection-done" signal. - - * e-table.c, e-table.h (white_item_event): Added the - "white_space_event" signal. - -2002-03-26 Chris Toshok <toshok@ximian.com> - - * Makefile.am: remove comment about adding .lo's to the parent - directory's Makefile.am. - -2002-03-25 Christopher James Lahey <clahey@ximian.com> - - * e-table-memory-store.c (e_table_memory_store_insert, - e_table_memory_store_insert_adopt, e_table_memory_store_remove): - Call the parent function after doing all the internal work so that - when the changed signal goes out, our work is already done. - -2002-03-20 Christopher James Lahey <clahey@ximian.com> - - * e-table-header-item.c: Adjust this to handle the new EPopupMenu - API. - -2002-03-15 Christopher James Lahey <clahey@ximian.com> - - * e-cell-toggle.c: Clear the pixmap cache in e_cell_style_set. - - * e-cell.c, e-cell.h (e_cell_style_set): Added this virtual - method. - - * e-table-item.c, e-table-item.h: Call e_cell_style_set in out - style_set signal. - -2002-03-15 Christopher James Lahey <clahey@ximian.com> - - * e-cell-toggle.c: Add a GdkPixmap * cache of rendered toggle - images. This should considerably speed up over the wire - performance of ECellToggle. - -2002-03-15 Christopher James Lahey <clahey@ximian.com> - - * e-table-header.c, e-table-header.h (e_table_header_min_width): - New function that returns the total minimum width of all the - columns. - - * e-table.c, e-table.h (set_header_width): Call - e_table_header_min_width here instead of total_width. - (et_size_request): Override the size_request method instead of - doing set_usize. - -2002-03-14 Ettore Perazzoli <ettore@ximian.com> - - * e-tree.c (item_key_press): Don't search if any modifier but - SHIFT or LOCK is pressed. - - * e-table.c (group_key_press): Don't search if any modifier but - SHIFT or LOCK is pressed. - -2002-03-14 Christopher James Lahey <clahey@ximian.com> - - * e-cell-text.c: Implemented capitalization keybindings. - - * e-tree.c (item_key_press): Added parentheses to the default case - here. - -2002-03-14 Christopher James Lahey <clahey@ximian.com> - - * e-table-search.c, e-table-search.h (e_table_search_backspace): - Made this return a boolean that returns whether the ETableSearch - used the backspace at all. - - * e-table.c (group_key_press), e-tree.c (item_key_press): Used the - new return value from e_table_search_backspace. - -2002-03-13 Christopher James Lahey <clahey@ximian.com> - - * e-cell-pixbuf.c, e-cell-pixbuf.h (pixbuf_draw): Added - selected_column, focused_column, and unselected_column. - -2002-03-13 Christopher James Lahey <clahey@ximian.com> - - * e-table-search.c, e-table-search.h (e_table_search_backspace): - Added this function. - - * e-table.c, e-tree.c: Call the new function on backspace. - -2002-03-13 Christopher James Lahey <clahey@ximian.com> - - * e-table-extras.c (e_string_search): Check for a NULL haystack - here. - - * e-table-search.c, e-table-search.h: Added a parameter to the - search signal here to pass in flags. Specifically, added the - E_TABLE_SEARCH_FLAGS_CHECK_CURSOR_FIRST flag. Improved the search - behavior here. - - * e-table.c, e-tree.c: Handle the new signature for the search - signal here. - -2002-03-13 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c: Added ETableSearch support. - -2002-03-12 Christopher James Lahey <clahey@ximian.com> - - * e-table-memory-store.c, e-table-memory-store.h: Added support - for E_TABLE_MEMORY_STORE_OBJECT which represents a column storing - a GtkObject. - -2002-03-12 Christopher James Lahey <clahey@ximian.com> - - * e-cell-vbox.c (ecv_draw): Give the correct height to the - subcells instead of overlapping them. - - * e-table-header.c, e-table-header.h (e_table_header_move, - eth_calc_widths): Emit the dimension_changed signal with the width - of the header. - - * e-table-memory-store.c (duplicate_value, etms_free_value): - Handle NULL pixbufs here. - - * e-table.c, e-table.h: Connect to the dimension_changed signal - and call set_header_width. Did a bit of refactoring here. - -2002-03-12 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am (libetable_la_SOURCES): Added e-table-search.c. - (libetableinclude_HEADERS): Added e-table-search.h. - - * e-cell.h: Added ETableSearchFun here. - - * e-table-column-specification.c, e-table-column-specification.h: - Added search here. - - * e-table-col.h: Added search here. - - * e-table-extras.c, e-table-extras.h (e_table_extras_add_search): - Added ETableSearchFuncs here. - - * e-table-memory-store.c (e_table_memory_store_insert, - e_table_memory_store_insert_adopt): Handle row == -1 here. - - * e-table-search.c, e-table-search.h: New class to reusably handle - the semantics of searching for a string. - - * e-table-simple.c, e-table-simple.h: Added a bunch of simple - functions here for if your table is all strings. Should be - reusable. - - * e-table-utils.c (et_col_spec_to_col): Added support for searches - here. - - * e-table.c, e-table.h: Added an ETableSearch here. - -2002-03-11 Christopher James Lahey <clahey@ximian.com> - - * e-tree-sorted.c (ets_proxy_node_request_collapse): Proxy - request_collapse signals. - -2002-03-11 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am (libetable_la_SOURCES): Added e-cell-vbox.c. - (libetableinclude_HEADERS): Added e-cell-vbox.h. - - * e-cell-vbox.c, e-cell-vbox.h: New ECell to take multiple other - ECells and use them all in a vertical series. - -2002-03-11 Christopher James Lahey <clahey@ximian.com> - - * e-table-memory-store.c (e_table_memory_store_insert_list): Added - this function to take a ... list of column data. The expected - number of parameters in the ... is the number of columns in the - table. - -2002-03-11 Christopher James Lahey <clahey@ximian.com> - - * e-table-memory-store.c, e-table-memory-store.h - (E_TABLE_MEMORY_STORE_PIXBUF): Added a pixbuf column type. - - * e-table-specification.c, e-table-specification.h: Added - horizontal-resize attribute. - - * e-table.c, e-table.h: Handle horizontal_resize. - -2002-03-08 Christopher James Lahey <clahey@ximian.com> - - * e-tree-memory.c (etmm_node_request_collapse): Handle a collapse - request by marking all descendents of that node as needing their - children recomputed. - - * e-tree-model.c, e-tree-model.h - (e_tree_model_node_request_collapse): Added this signal to request - that the view of your tree collapse this node. - - * e-tree-selection-model.c (etsm_selected_count): Pass the root of - the sorted model here instead of the root of the base model. - - * e-tree-table-adapter.c (etta_proxy_node_request_collapse): - Handle a collapse request by collapsing the node in the tree. - -2002-03-08 Christopher James Lahey <clahey@ximian.com> - - * e-tree-memory.c, e-tree-memory.h (check_children): Added a - fill_in_children signal. - -2002-03-05 Dan Winship <danw@ximian.com> - - * e-table-item.c: Re-disable tooltips since they're (still) - fantastically obnoxious with focus-follows-mouse. (OKed by Ettore). - -2002-03-04 Damon Chaplin <damon@ximian.com> - - * e-cell.c (e_cell_print): only call the cell's print method if it has - one. Avoids crashing for unimplemented print methods. - -2002-02-21 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am (libetable_la_SOURCES): Added - e-table-memory-store.c. - (libetableinclude_HEADERS): Added e-table-memory-store.h. - - * e-table-config-no-group.glade, e-table-config.glade: Updated - these. - - * e-table-config.c, e-table-config.h: Updated this to have a - working field list editor. - - * e-table-memory-store.c, e-table-memory-store.h: New ETableModel - that is a complete store of all the data in your table. No - callbacks at all. - - * e-table-subset-variable.c, e-table-subset-variable.h - (e_table_subset_variable_clear): Added this simple function - - * e-table-subset.c (etss_get_save_id): Made this return the row - number g_strdup_printfed if the source model doesn't support save - ids. - -2002-02-20 Christopher James Lahey <clahey@ximian.com> - - * e-table-sorter.c, e-table-sorter.h: Connect to the - model_rows_inserted, model_rows_deleted, and group_info_changed - here. - -2002-02-19 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c (e_tree_selection_model_init): - Initialize frozen_count to 0. - -2002-02-13 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_event): Make the defalut for tooltips be on. - -2002-02-12 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_unrealize): Cancel tooltip timeouts here. - -2002-02-08 Christopher James Lahey <clahey@ximian.com> - - * e-table.c (et_unrealize), e-tree.c (et_unrealize): Call - scroll_off and in e-tree.c hover_off. - -2002-02-07 Christopher James Lahey <clahey@ximian.com> - - * e-cell-text.c: Added empty case for E_TEP_CAPS. Needs to be - filled in for M-l, M-c, and M-u to work in ETable. - - * e-table-header.c, e-table-header.h (expansion_change): New - signal that gets emitted whenever the expansions change. Used in - state_changed for ETable and ETree. - - * e-table.c, e-table.h, e-tree.c, e-tree.h (state_change): New - signal that gets emitted whenever the ETableState that would be - generated here changes. - -2002-01-31 Christopher James Lahey <clahey@ximian.com> - - * e-tree-model.c (e_tree_model_node_find): Made this function much - more readable. Got rid of all the gotos. Fixed a case where - going backwards during a root search checked the root node first. - (e_tree_model_node_real_traverse): Made backwards traversals be - postorder, as they should be, instead of preorder. - - * e-tree.c (find_next_callback): Use an extra callback function - here to go from sorted path to model path. - -2002-01-31 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c, e-tree.h (e_tree_find_next): Make this function take a - bitfield of parameters instead of two bools. - -2002-01-31 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c, e-tree-selection-model.h - (e_tree_selection_model_get_cursor): Added this simple accessor - function. - - * e-tree.c, e-tree.h (e_tree_find_next): Searches from the cursor - given the search parameters and moves the cursor if it ever - matches. - -2002-01-31 Christopher James Lahey <clahey@ximian.com> - - * e-tree-model.c, e-tree-model.h (e_tree_model_node_find): New - function to do a search through a tree in one direction or the - other. - -2002-01-21 Christopher James Lahey <clahey@ximian.com> - - * e-cell-text.c: Implement max_width_by_row. - - * e-cell-tree.c: Use max_width_by_row in max_width function. - - * e-cell.c, e-cell.h (e_cell_max_width_by_row): Added this new - method to ECell. - -2002-01-16 Krisztian Pifko <monsta@users.sourceforge.net> - - * e-cell-progress.c, e-cell-progress.h: new file, implements the - ECellProgress object. - - * Makefile.am (libetable_la_SOURCES, libetableinclude_HEADERS): - added e-cell-progress.c and e-cell-progress.h. - -2002-01-16 Christopher James Lahey <clahey@ximian.com> - - * e-cell-checkbox.h, e-cell-date.h, e-cell-float.h, - e-cell-number.h, e-cell-size.h, e-cell-text.h, e-cell-toggle.h, - e-cell-tree.h, e-cell.h, e-table-click-to-add.h, - e-table-col-dnd.h, e-table-config-field.h, e-table-extras.h, - e-table-field-chooser-item.h, e-table-group-container.h, - e-table-group-leaf.h, e-table-group.h, e-table-header-item.h, - e-table-item.h, e-table-scrolled.h, e-table-sorter.h, - e-table-tooltip.h, e-table-tree.h, e-table-utils.h, e-table.h, - e-tree-scrolled.h, e-tree-sorted-variable.h, e-tree.h: Added - #include <libgnome/gnome-defs.h>. - -2002-01-15 Christopher James Lahey <clahey@ximian.com> - - * e-cell.c, e-cell.h (e_cell_save_state, e_cell_load_state, - e_cell_free_state): New functions for saving selection state and - such. - - * e-cell-text.c (ect_save_state): Implemented the new state - functions. - - * e-table-item.c, e-table-item.h: Use the new cell state functions - when focusing in or out. Fixes Ximian bug #14968. - -2002-01-09 Christopher James Lahey <clahey@ximian.com> - - * e-table-header-item.c, e-table-header-item.h (scroll_timeout): - Made the header item here handle horizontal scrolling when adding - a column. Fixes Ximian bug #7078. - -2002-01-09 Christopher James Lahey <clahey@ximian.com> - - * e-table.c, e-table.h (scroll_timeout), e-tree.c - (scroll_timeout): Made these handle horizontal scrolling during - drags. - -2002-01-09 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c (collapse_drag): Collapse nodes that were opened during - a drag, unless the drop site is a child node. Fixes Ximian bug - #4965. - -2001-12-17 Christopher James Lahey <clahey@ximian.com> - - * e-cell-toggle.c (etog_set_value): Don't queue a redraw here. - the value changed signal will do that automatically. - -2001-12-12 Christopher James Lahey <clahey@ximian.com> - - * e-cell-text.c (ect_stop_editing): Change to not editing before - committing values. Then commit the values. - -2001-12-11 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c: Turn off idle handling in the unrealize function - instead of the destroy function. - -2001-12-06 Christopher James Lahey <clahey@ximian.com> - - * e-table-config.c, e-table-config.h (setup_gui): Set the title of - the window here. - - * e-table-header-item.c (ethi_popup_customize_view): Use a useful - string for the header here. - -2001-12-06 Christopher James Lahey <clahey@ximian.com> - - * e-table-subset.c (etss_get_view_row): Removed incorrect calls to - e_table_model_row_changed here. - -2001-12-05 Christopher James Lahey <clahey@ximian.com> - - * e-table-header-item.c (ethi_find_col_by_x, - ethi_find_col_by_x_nearest): Made these return 0 to the left of - all columns and ethi_find_col_by_x return cols - 1 if to the right - of all columns. Fixes Ximian bug #14414. - -2001-12-04 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c (e_tree_selection_model_change_cursor): - Unset selection->old_selection here. - -2001-11-28 Christopher James Lahey <clahey@ximian.com> - - * e-table.c (context_destroyed), e-tree.c (context_destroyed): - Check for et being destroyed here before doing anything. Fixes - Ximian bug #15728. - -2001-11-21 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c, e-table-item.h: Handle selection_row_changed - signal. Keep track of the old cursor row so that we only redraw - two rows when the cursor changes. - - * e-table.c, e-tree.c: Handle selection_row_changed signal. - - * e-tree-selection-model.c: Properly send selection_row_changed - signals if changing from a single row selected to a single other - row selected or if moving the selection_end by a single row. - -2001-12-04 Christopher James Lahey <clahey@ximian.com> - - * e-table-group.c, e-table.c, e-tree.c: Changed some comments. - Added a bunch of documentation here. - -2001-11-14 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_event): Ungrab and set maybe_in_grab to - FALSE before sending the double click signal. - -2001-11-10 Christopher James Lahey <clahey@ximian.com> - - * e-table.c (group_key_press), e-tree.c (item_key_press): Handle - the case where page up or page down goes off the end of the table - or tree. - -2001-11-08 Christopher James Lahey <clahey@ximian.com> - - * e-table-sorter.c (ets_sort_info_changed): Make a printout here - be conditionally compiled (and compiled out by default.) - - -2001-11-07 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c (etsm_select_all): Don't select all if - the source model doesn't have a root node (it used to crash.) - Fixes Ximian bug #14542. - -2001-11-03 Christopher James Lahey <clahey@ximian.com> - - * e-cell-popup.c, e-cell-popup.h (e_cell_popup_set_shown, - e_cell_popup_queue_cell_redraw): New functions here. - - * e-cell-combo.c: Use e_cell_popup_set_shown to set the - popup_shown variable so that ECellPopup can properly request a - redraw. - -2001-11-03 Christopher James Lahey <clahey@ximian.com> - - * e-tree-memory.c (e_tree_memory_freeze): We should only - pre_change here if frozen = 0, otherwise we'll leak pre_changes. - Helps fix Ximian bug #14422. - - * e-tree-sorted.c (ets_proxy_node_data_changed, - ets_proxy_node_col_changed): Send a no_change signal here if given - a NULL path. Helps fix Ximian bug #14422. - -2001-11-02 Christopher James Lahey <clahey@ximian.com> - - * e-cell-popup.c, e-cell-popup.h (e_cell_popup_do_popup): Make - ECellPopup not display multiple arrows while the popup is up and - the table is in grouped mode. Fixes Ximian bug #14207. - -2001-10-31 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c (etsm_node_deleted): Fixed the - signature of this function. - -2001-10-31 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_unfreeze): Check for unfreezing past 0 here - and give a warning. - (eti_add_table_model): Call eti_freeze here since - eti_table_model_changed will call unfreeze. - - * e-tree-memory.c (e_tree_memory_node_remove): Send deleted signal - after freeing the child. - - * e-tree-model.c, e-tree-model.h: Added node_deleted signal. - removed/deleted signals will always come in pairs in that order - with a single pre_change for both of them. - - * e-tree-selection-model.c (etsm_node_deleted): Clear the tree on - deleted here instead of on removed. - - * e-tree-sorted.c (ets_proxy_node_deleted): Chain deleted here. - Chains to NULL node which is fine for now. - -2001-10-31 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c, e-table-item.h: Added frozen_count variable to - know not to show the cursor while a change is going on. - - * e-table-model.c, e-table-model.h, e-tree-model.c, - e-tree-model.h: Added a model_no_change signal to pair with a - pre_change if there's no change. - - * e-table-selection-model.h: Removed an unused frozen field here. - - * e-table-sorted.c, e-table-subset.c, e-table-subset.h, - e-table-without.c, e-tree-memory.c, e-tree-sorted.c, - e-tree-table-adapter.c: Made sure pre_changes were all matched by - some change. Proxy no_change signal where appropriate. - - * e-tree-selection-model.c: Keep track of the frozen_count - variable to know whether a change is going on. - -2001-10-30 Christopher James Lahey <clahey@ximian.com> - - * e-table.c (e_table_commit_click_to_add): Leave edit if commit is - called. - -2001-10-30 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_show_cursor, eti_check_cursor_bounds): - Request the right regions here. The range given is inclusive, not - inclusive/exclusive. - -2001-10-30 Christopher James Lahey <clahey@ximian.com> - - * e-table-click-to-add.c (etcta_class_init): Remove point handler - and just let GnomeCanvasGroup handle it. - - * e-table.c (e_table_commit_click_to_add): Don't commit the - click_to_add if there's no click_to_add to commit. - -2001-10-30 Christopher James Lahey <clahey@ximian.com> - - * e-table.c (e_table_commit_click_to_add): Added this new function - to allow the user to specify a commit. - -2001-10-30 Christopher James Lahey <clahey@ximian.com> - - * e-tree-sorted.c (check_last_access): Fix this to check from - initial instead of initial + 1. - -2001-10-30 Christopher James Lahey <clahey@ximian.com> - - * e-cell-combo.c: Adapt to the changed popup signature. - - * e-cell-popup.c, e-cell-popup.h: Changed the behavior here to - draw the button whenever we have the cursor. Changed the popup - virtual method to pass in the row and column popping up. - - * e-cell.h: Added an E_CELL_CURSOR flag. - - * e-table-item.c: Pass in the E_CELL_CURSOR flag to event and draw - calls as appropriate. - -2001-10-29 Christopher James Lahey <clahey@ximian.com> - - * e-table.c (et_canvas_root_event), e-tree.c - (et_canvas_root_event): Ignore buttons 4 and 5 here. Fixes Ximian - bug #13853. - -2001-10-29 Christopher James Lahey <clahey@ximian.com> - - * e-table-config.c (setup_gui): Hide the Help button here since - there's nothing connected to it. - - * e-tree-sorted.c (ets_sort_idle): Don't nest ets_sort_idle calls. - Fixes Ximian bug #13929. - -2001-10-29 Christopher James Lahey <clahey@ximian.com> - - * e-table-subset.c (etss_get_view_row), e-tree-sorted.c - (check_last_access), e-tree-table-adapter.c (find_row_num): Don't - go outside the table looking for matches when doing the - last_access search. - -2001-10-28 Christopher James Lahey <clahey@ximian.com> - - * e-table.c (table_canvas_focus_event_cb): Fix crash here. - -2001-10-28 Christopher James Lahey <clahey@ximian.com> - - * e-cell-text.c: Removed erroneous comment about needing to handle - selection better. - -2001-10-26 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_cursor_activated): Chain the - cursor_activated signal even if the row is -1. - - * e-tree.c (item_cursor_activated): Don't error out here if path - is NULL. - -2001-10-26 Christopher James Lahey <clahey@ximian.com> - - * e-cell-float.c, e-cell-float.h: Changed the license announcement - at the top of these files. - -2001-10-26 Christopher James Lahey <clahey@ximian.com> - - * e-cell-checkbox.c, e-cell-checkbox.h, e-cell-combo.c, - e-cell-combo.h, e-cell-date.c, e-cell-date.h, e-cell-number.c, - e-cell-number.h, e-cell-pixbuf.c, e-cell-pixbuf.h, e-cell-popup.c, - e-cell-popup.h, e-cell-size.c, e-cell-size.h, - e-cell-spin-button.c, e-cell-spin-button.h, e-cell-string.c, - e-cell-text.c, e-cell-text.h, e-cell-toggle.c, e-cell-toggle.h, - e-cell-tree.c, e-cell-tree.h, e-cell.c, e-cell.h, - e-table-click-to-add.c, e-table-click-to-add.h, e-table-col-dnd.h, - e-table-col.c, e-table-col.h, e-table-column-specification.c, - e-table-column-specification.h, e-table-column.c, - e-table-config-field.c, e-table-config-field.h, e-table-config.c, - e-table-config.h, e-table-defines.h, e-table-example-1.c, - e-table-example-2.c, e-table-extras.c, e-table-extras.h, - 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.h, - 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-header-item.c, e-table-header-item.h, - e-table-header-utils.c, e-table-header-utils.h, e-table-header.c, - e-table-header.h, e-table-item.c, e-table-item.h, - e-table-memory-callbacks.c, e-table-memory-callbacks.h, - e-table-memory.c, e-table-memory.h, e-table-model.c, - e-table-model.h, e-table-one.c, e-table-one.h, e-table-scrolled.c, - e-table-scrolled.h, e-table-selection-model.c, - e-table-selection-model.h, e-table-simple.c, e-table-simple.h, - e-table-size-test.c, e-table-sort-info.c, e-table-sort-info.h, - e-table-sorted-variable.c, e-table-sorted-variable.h, - e-table-sorted.c, e-table-sorted.h, e-table-sorter.c, - e-table-sorter.h, e-table-sorting-utils.c, - e-table-sorting-utils.h, e-table-specification.c, - e-table-specification.h, e-table-state.c, e-table-state.h, - e-table-subset-variable.c, e-table-subset-variable.h, - e-table-subset.c, e-table-subset.h, e-table-tooltip.h, - e-table-tree.h, e-table-utils.c, e-table-utils.h, - e-table-without.c, e-table-without.h, e-table.c, e-table.h, - e-tree-memory-callbacks.c, e-tree-memory-callbacks.h, - e-tree-memory.c, e-tree-memory.h, e-tree-model.c, e-tree-model.h, - e-tree-scrolled.c, e-tree-scrolled.h, e-tree-selection-model.c, - e-tree-selection-model.h, e-tree-simple.c, e-tree-simple.h, - e-tree-sorted-variable.c, e-tree-sorted-variable.h, - e-tree-sorted.c, e-tree-sorted.h, e-tree-table-adapter.c, - e-tree-table-adapter.h, e-tree.c, e-tree.h, table-test.c, - table-test.h, test-check.c, test-cols.c, test-table.c: Changed the - license announcement at the top of these files. - - * e-cell-string.c: Removed unused file. - -2001-10-26 Christopher James Lahey <clahey@ximian.com> - - * e-table-config.c (config_group_info_update, - config_fields_info_update): Added some checks for NULL labels - here. - - * e-table-specification.c, e-table-specification.h: Added - allow_grouping field. Fixes Ximian bug #13412. - - * e-table.c, e-table.h: Added allow_grouping field. Set this - field for the sort infos from state objects. - -2001-10-26 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c (etsm_selected_count): If the root node - is hidden and selected, don't count it in the selected path count. - Fixes Ximian bug #13419. - - * e-tree.c (et_canvas_root_event): Attach to the event handler on - the root canvas item instead of the canvas itself when making the - ETree leave editing state. - -2001-10-25 Federico Mena Quintero <federico@ximian.com> - - Fixes Ximian bug #6832. - - * e-table.c (e_table_setup_table): Use a callback instead of - gtk_widget_queue_draw() for focus events, as the latter does not - have the correct prototype for an event handler. - (group_start_drag): Emit START_DRAG, not KEY_PRESS! - (focus_first_etable_item): Focus the first row in the first - ETableItem if there is no focused item. - - * e-tree.c (e_tree_setup_table): Same change as in - e_table_setup_table(). - (table_canvas_focus_event_cb): Focus the first row in the tree - item if there is no focused item. - -2001-10-24 Christopher James Lahey <clahey@ximian.com> - - * e-cell-combo.c: Added #include "gal/widgets/e-unicode.h". - - * e-cell-text.c: Added lots of deactivated debugging printfs here. - (ect_event): Fixed the flags check here. Set edit->actions to 0 - before calling e_text_event_processor_handle_event. - - * e-table-item.c, e-table-item.h: Use eti_grab and eti_ungrab all - over the place. Added lots and lots of deactivated debugging - printfs here. - (eti_grab, eti_ungrab): New functions to encapsulate grabbing and - ungrabbing the cursor and to allow for recursive grabs - (refcounting style.) - - * e-table.c: Added deactivated debugging printfs here. - (et_canvas_root_event): Attach to the event handler on the root - canvas item instead of the canvas itself when making the ETable - leave editing state. Fixes Ximian bug #9737. - -2001-10-24 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am (INCLUDES): Added $(ICONV_CFLAGS). - -2001-10-23 Damon Chaplin <damon@ximian.com> - - * e-cell-combo.c (e_cell_combo_set_popdown_strings): save the UTF-8 - strings inside the listitem widgets, but convert to the locale to use - in the label. - (e_cell_combo_select_matching_item): - (e_cell_combo_update_cell): use the UTF-8 strings instead of the - listitem labels. Hopefully fixes bug #7037. - -2001-10-23 Christopher James Lahey <clahey@ximian.com> - - * e-table-field-chooser-item.c: Got rid of the gc argument to - e_table_header_draw_button. - (etfci_font_load): Just use the style font here. - - * e-table-group-container.c (e_table_group_container_construct): - Changed this to just use the font from the style. Fixes Ximian - bug #11882. - - * e-table-header-item.c: Got rid of the gc argument to - e_table_header_draw_button. - (ethi_font_load): Changed this to just fallback on the font from - the style if the fontname is NULL or doesn't load to a font. - Fixes Ximian bug #11882. - - * e-table-header-utils.c, e-table-header-utils.h - (e_table_header_draw_button): Got rid of the gc parameter here and - changed to use the gc from the style of a button created for this - purpose, but not shown. Fixes Ximian bug #13251. - -2001-10-23 Christopher James Lahey <clahey@ximian.com> - - * e-table-header-item.c, e-table-header-item.h: Got rid of the gc - field here and just use the fg_gc from the style for drawing the - buttons. - -2001-10-22 Damon Chaplin <damon@ximian.com> - - * e-cell-text.[hc]: added set_value() class method, which sets the - model value based on the text. In ECellText itself it assumes the model - value is a char* and passes the text directly. Subclasses may parse - the text into some other datatype. - Also made the calls the e_cell_text_get_text(), e_cell_text_free_text() - and e_cell_text_set_value() public, since we need them in ECellCombo. - - * e-cell-combo.c (e_cell_combo_select_matching_item): - (e_cell_combo_update_cell): use e_cell_text_get_text()/free_text()/ - set_value() so it can handle subclasses of ECellText as the child. - -2001-10-22 Christopher James Lahey <clahey@ximian.com> - - * e-table-col.c, e-table-col.h, e-table-column-specification.c, - e-table-column-specification.h: Added a disabled field here. - - * e-table-config.c, e-table-field-chooser-item.c: Pay attention to - the disabled field here. Fixes Ximian bug #12416. - - * e-table-utils.c: Copy the disabled field from the column - specification to the col. - -2001-10-22 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_idle_maybe_show_cursor): Make this check - immediately for whether to show the cursor, instead of in the idle - handler. Fixes Ximian bug #11807. - - * e-tree-table-adapter.c (e_tree_table_adapter_node_set_expanded): - Added a pre_change here since we send two changes. - -2001-10-22 Christopher James Lahey <clahey@ximian.com> - - * e-tree-memory.c (e_tree_memory_sort_node): Call - e_tree_model_pre_change here where appropriate. - -2001-10-22 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_cancel_drag_due_to_model_change): Cancel the - drag or maybe drag if you have the mouse button down when the - pre_change signal comes in. Fixes Ximian bug #11309. - - * e-table-without.c (add_row, remove_row, - e_table_without_show_all): Call e_table_model_pre_change where - appropriate here. - -2001-10-20 Christopher James Lahey <clahey@ximian.com> - - * e-table-group-container.c (compute_text): Don't convert to - locale here since EText takes UTF8 strings. Fixes Ximian bug - #8906. - -2001-10-20 Christopher James Lahey <clahey@ximian.com> - - * e-tree-sorted.c (e_tree_sorted_node_num_children): Check for - num_children == -1 here and generate the children if they haven't - been. Fixes Ximian bug #12464. - -2001-10-16 Christopher James Lahey <clahey@ximian.com> - - * e-tree-table-adapter.c (find_next_node_maybe_deleted, - find_first_child_node_maybe_deleted, find_next_node, - find_first_child_node, find_row_num): Added bounds checking in a - number of places. Fixes Ximian bug #7245. - (etta_init): Initialize all the fields here. - -2001-10-12 Christopher James Lahey <clahey@ximian.com> - - * e-table-click-to-add.c (set_initial_selection): Use new - e_table_header_prioritized_column field. - - * e-table-header.c, e-table-header.h - (e_table_header_prioritized_column): New function. Refactors the - code from ETableClickToAdd to find the column with the highest - priority. - - * e-table-selection-model.c, e-table-selection-model.h - (model_changed_idle): Changed this function to use the - e_table_header_prioritized_column function. Added an argument to - set the "header" on this selection model. Fixes Ximian bug #1301. - - * e-table-utils.h: Indentation cleanup. - - * e-table.c (et_real_construct): Set the "header" argument on the - selection model here. - - * e-table.h: #include <gal/e-table/e-table-sorter.h> - -2001-10-12 Christopher James Lahey <clahey@ximian.com> - - * e-table-state.c (e_table_state_duplicate): Copy the can group - state on the sort info here. Fixes Ximian bug #8655. - -2001-10-10 Christopher James Lahey <clahey@ximian.com> - - * e-cell-popup.c (ecp_get_bg_color), e-cell-tree.c - (ect_get_bg_color): Implement these functions as pass through to - the child cell. - - * e-cell-text.c, e-cell-text.h (ect_get_bg_color): Implemented - this using a bg_color_column which can be set through the argument - of the same string. - - * e-cell.c, e-cell.h (e_cell_get_bg_color): Added this function to - allow background color to change by cell. - - * e-table-item.c (eti_get_cell_background_color): Call - e_cell_get_bg_color to allow background color to change by cell. - -2001-10-10 Christopher James Lahey <clahey@ximian.com> - - * e-table.c, e-table.h (e_table_get_selection_model): Added this - function. - -2001-10-06 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_show_cursor, eti_check_cursor_bounds): Check - that cell views are realized before doing anything here. Fixes - Ximian bug #11919. - (eti_check_cursor_on_screen): If the cursor values are all set to - -1, don't do anything. - -2001-10-06 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_table_model_row_changed, - eti_table_model_cell_changed): Handle row and cell changes - properly in the uniform_row_height case. Fixes Ximian bug #11879. - -2001-10-06 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c (context_destroyed), e-table.c (context_destroyed): Use - g_dataset_set_data_full to find out when the context is destroyed. - Fixes Ximian bug #8502 and Ximian bug #11691. - -2001-10-05 Jon Trowbridge <trow@ximian.com> - - * e-table-without.c (e_table_without_show_all): We need to take - the row count from the source model, not from the ETableWithout. - This typo is why contacts kept disappearing in the SelectNames - dialog. (Bugs 9326, 10916) - -2001-10-05 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_set_arg): Fixed the uniform_row_height + - confirm_row_hieght_cache crash. - -2001-10-05 Christopher James Lahey <clahey@ximian.com> - - * e-cell-text, e-cell-pixbuf: Adapted height method to deal with a - row of -1. - - * e-table-group-container.c, e-table-group-container.h, - e-table-group-leaf.c, e-table-group-leaf.h, e-table-item.c, - e-table-item.h, e-table.c, e-table.h, e-tree.c: Added - "uniform_row_height" argument. - -2001-10-05 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_event): Got rid of the misused button - variable here. - -2001-10-04 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_idle_maybe_show_cursor): Sometimes put off - maybe showing the cursor until an idle callback. - - * e-tree-selection-model.c (add_model): Use connect_after to - connect to all the signals. This means we can assume the sorted - tree and table adapters are both done. This also means that those - objects cannot assume that the selection is already changed. - Fixes Ximian bug #10667. - -2001-10-03 Christopher James Lahey <clahey@ximian.com> - - * e-table-selection-model.c (e_table_selection_model_init): - Initialize the hash field. - (model_changed_idle): Send cursor changed and selection changed signals. - (model_pre_change): If there's no cursor here, make sure to set - the cursor_id to NULL. - -2001-10-03 Christopher James Lahey <clahey@ximian.com> - - * e-table-click-to-add.c (set_initial_selection): Pick which field - of the row to select based on priority. Fixes Ximian bug #9345. - - * e-table-col.c, e-table-col.h: Added the priority field to this - class. Adapted the _new functions appropriately. - - * e-table-column-specification.c, e-table-column-specification.h: - Added the priority field to this class. - - * e-table-utils.c (et_col_spec_to_col): Handle the priority field here. - -2001-10-02 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c, e-table-item.h: Only show the cursor during - changes if it was already shown. Fixes Ximian bug #9810 and - Ximian bug #4048. - -2001-09-28 Christopher James Lahey <clahey@ximian.com> - - * e-tree-sorted.c (ets_proxy_node_changed): Stop the sort idle if - the root node gets changed. - -2001-09-26 Christopher James Lahey <clahey@ximian.com> - - * e-table.c, e-tree.c: Set the step_increment on the horizontal - scrollbars here to 20. - -2001-09-26 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c (etsm_node_changed, etsm_destroy): Set - cursor_path = NULL here. - -2001-09-25 Ettore Perazzoli <ettore@ximian.com> - - * e-table-item.c (eti_unrealize): Remove the grab if ->grabbed. - -2001-09-25 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_event): Instead of - e_selection_model_maybe_do_something and - e_selection_model_do_something, call e_selection_right_click_down - and e_selection_right_click_up here for right clicks. - - * e-table.c, e-table.h (e_table_right_click_up), e-tree.c, - e-tree.h (e_tree_right_click_up): Added these functions for - someone who handles the right click signal by popping up a menu - call right_click_up when they're down handling the menu. - -2001-09-24 Federico Mena Quintero <federico@ximian.com> - - * e-table.c (et_canvas_button_press): Use the correct prototype - for the signal handler. - - * e-tree.c (et_canvas_button_press): Likewise. - -2001-09-24 Federico Mena Quintero <federico@ximian.com> - - * e-table-group.c (e_table_group_add): Assert that the virtual - method is implemented instead of being forgiving. - (e_table_group_add_array): Likewise. - (e_table_group_add_all): Likewise. - (e_table_group_remove): Likewise. - (e_table_group_increment): Likewise. - (e_table_group_decrement): Likewise. - (e_table_group_row_count): Likewise. - (e_table_group_set_focus): Likewise. - (e_table_group_get_focus): Likewise. - (e_table_group_get_focus_column): Likewise. - (e_table_group_get_printable): Likewise. - (e_table_group_compute_location): Likewise. - (e_table_group_get_cell_geometry): Likewise. - (etg_destroy): Clear the fields after we unref them. - - * e-table-group-leaf.c (etgl_destroy): Clear the fields after we - unref them. - (e_table_group_leaf_construct): Subsets should not be sunk. Do - not ref/sink the subset. - - * e-table-header.c (e_table_header_add_column): Document the fact - that the header assumes ownership of the column. - -2001-09-24 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c (etsm_sorted_node_resorted): Attach to - the resorted signal instead of the changed signal on the sorted - model. Fixes Ximian bug #6532. - - * e-tree-sorted.c, e-tree-sorted.h (e_tree_sorted_node_resorted): - Added this signal. - -2001-09-22 Christopher James Lahey <clahey@ximian.com> - - From a patch by Damian Ivereigh <damian@cisco.com>: - - * e-cell-date.c: Made this use e_strftime_fix_am_pm instead of - strftime. - -2001-09-19 Christopher James Lahey <clahey@ximian.com> - - * e-table-selection-model.c (add_model): Confirm row count here. - (etsm_get_row_count): Make sure etsm->model isn't NULL here. - If it is, it's not an error. Return 0 in this case. - -2001-09-16 Christopher James Lahey <clahey@ximian.com> - - * e-table-model.c, e-table-model.h (e_table_model_class_init): - Rearranged order of has_save_id and get_save_id to be more - consistent with ETree. - - * e-table-selection-model.c, e-table-selection-model.h: Turned on - the code to maintain selection and cursor across changes if the - model supports get_save_id. - - * e-table-simple.c, e-table-simple.h: Changed this interface to - take all of the ETableModel functions in the _new function. - - * e-table-subset.c (etss_has_save_id, etss_get_save_id): Added - these to properly proxy the save_id functionality. - - * e-tree-memory-callbacks.c, e-tree-memory-callbacks.h, - e-tree-model.c, e-tree-model.h, e-tree-sorted.c: Made the save_id - parameter to get_node_by_id be const char * instead of char *. - - * e-tree-table-adapter.c (etta_class_init): Rearranged some - assignments here to be more consistent. - -2001-09-13 Christopher James Lahey <clahey@ximian.com> - - * e-cell-toggle.c (etog_event): Changed this to change state on - button down, even if we aren't editing. - -2001-09-10 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c (e_tree_setup_table): Changed which widget to connect - signals to to watch for drag & drop. Fixes Ximian bugs #7450 & - #8732. - -2001-09-07 Jon Trowbridge <trow@ximian.com> - - * e-table-without.c (e_table_without_show_all): Fixed a silly - little obvious bug. - -2001-09-07 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_event): Added GDK_BUTTON_PRESS_MASK to our - button mask. Fixes Ximian bug #8241. - -2001-09-07 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c, e-table-item.h (eti_event): Don't do_something - on button_release if we did something on button_press. Fixes - Ximian bug #8260. - -2001-09-07 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am: Added e-table-config-no-group.glade. - - * e-table-config-no-group.glade, e-table-config.c, - e-table-config.glade: Removed the fields bit of ETableConfig. - -2001-09-07 Christopher James Lahey <clahey@ximian.com> - - * e-table-without.c, e-table-without.h (e_table_without_show_all): - Added this function. - -2001-09-04 Ettore Perazzoli <ettore@ximian.com> - - * e-tree.c (e_tree_drag_unhighlight): Remove debugging message. - -2001-09-02 Christopher James Lahey <clahey@ximian.com> - - * e-cell-date.c (ecd_get_text): Strip spaces at the beginning or - end as well as changing " " to " ". Fixes Ximian bug #7683. - -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. - -2001-08-31 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_table_model_rows_deleted): Fix this memmove. - We've already subtracted the count from eti->rows. - -2001-08-27 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_table_model_rows_deleted): Fixed this - memmove to subtract the count as well as the row for the number of - rows to move. - -2001-08-25 Zbigniew Chyla <cyba@gnome.pl> - - * e-table-group-container.c (compute_text): - Convert UTF-8 strings to locale's encoding before putting them in - canvas item. - -2001-08-25 Zbigniew Chyla <cyba@gnome.pl> - - * e-table.c (e_table_init): Fixed typo. - -2001-08-24 Christopher James Lahey <clahey@ximian.com> - - * e-table-group-container.c, e-table-group-leaf.c, - e-table-group-leaf.h, e-table-group.c, e-table-group.h: Added - start_drag signals. - - * e-table-item.c, e-table-item.h (eti_event): Send the start_drag - signal. Fixes Ximian bug #807. - - * e-table.c, e-table.h, e-tree.c, e-tree.h: Added start_drag - signal. Made default handler start drag & drop if we're set to - automatically handle dnd. Ripped out the code to handle watching - events for dnd since start_drag does this now. - -2001-08-20 Jon Trowbridge <trow@ximian.com> - - * e-table-without.c (check_with_key): We need to - free_gotten_key_func key2, not key! - (e_table_without_show): Renamed, used to be - e_table_without_remove. Double-negative function names - are confusing! - (e_table_without_hide_adopt): Renamed, used to be - e_table_without_add_adopt. - (e_table_without_hide): Renamed, used to be e_table_without_add. - -2001-08-20 Christopher James Lahey <clahey@ximian.com> - - * e-table-subset.c, e-table-subset.h - (e_table_subset_model_to_view_row, - e_table_subset_view_to_model_row): Added these functions. - -2001-08-20 Christopher James Lahey <clahey@ximian.com> - - * e-table-without.c: Made this object handle NULLs for all the - handler functions. - -2001-08-20 Christopher James Lahey <clahey@ximian.com> - - * e-table-without.c (etw_proxy_model_rows_inserted, - etw_proxy_model_changed): Changed the used parity of the return - value of check here. - -2001-08-18 Federico Mena Quintero <federico@ximian.com> - - * e-table-without.c (etw_destroy): Chain to the destroy handler in - the parent class. Hey, I'm getting used to this :) - -2001-08-17 Christopher James Lahey <clahey@ximian.com> - - * e-table-without.c (etw_destroy): Destroy the hash table and all - objects in it, as well as the priv structure. - -2001-08-16 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am: Added e-table-without.c and e-table-without.h. - - * e-table-without.c, e-table-without.h: Got this to compile. - Finished the first version of it. - -2001-08-16 Christopher James Lahey <clahey@ximian.com> - - * e-table-without.c, e-table-without.h: Adding the first versions - of these files. Doesn't work yet. - -2001-08-14 Peter Williams <peterw@ximian.com> - - * e-tree-selection-model.c (etsm_selected_count_recurse): - Workaround for Ximian bug #6795. Will prevent a crash and - doesn't seem to cause any problems, but the underlying problem - still exists. - -2001-08-14 Federico Mena Quintero <federico@ximian.com> - - * e-cell-combo.c (e_cell_combo_destroy): Destroy, do not unref, - the popup_window. - -2001-08-14 Christopher James Lahey <clahey@ximian.com> - - * e-table.c (group_key_press), e-tree.c (item_key_press): Handle - GDK_KP_Page_Up, GDK_KP_Page_Down, GDK_KP_Right, and GDK_KP_Left - here. Fixes Ximian bug #4491. - -2001-08-14 Christopher James Lahey <clahey@ximian.com> - - * e-table-click-to-add.c (etcta_event): Got rid of event - forwarding for double clicks and releases and such and for single - clicks except when first creating the row object. Fixes Ximian - bug #2661. - -2001-08-10 JP Rosevear <jpr@ximian.com> - - * e-table.c (et_build_groups): add the items to the start or end - based on where the click to add should be - (e_table_setup_table): ditto - (et_real_construct): read additional spec flag - - * e-table.h: new flag - - * e-table-specification.c (etsp_init): init new flag - (e_table_specification_load_from_node): set click to add end flag - (e_table_specification_save_to_node): write out flag - - * e-table-specification.h: new flag - -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. - -2001-08-09 Jeffrey Stedfast <fejj@ximian.com> - - * e-tree.c (et_drag_drop): Initialize ret_val. - (do_drag_motion): Same. - -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. - -2001-08-08 Not Zed <NotZed@Ximian.com> - - * e-table-sort-info.c (etsi_destroy): Call the super-class destroy - function when done. - -2001-08-08 Federico Mena Quintero <federico@ximian.com> - - * e-cell-pixbuf.c (pixbuf_destroy): Chain to the destroy handler - in the parent class! - - * e-table-field-chooser.c (e_table_field_chooser_destroy): - Likewise. Sigh. - - * e-table-one.c (one_destroy): Likewise. Double sigh. - - * e-tree-selection-model.c (etsm_destroy): Likewise. Triple sigh. - -2001-08-08 Christopher James Lahey <clahey@ximian.com> - - * e-table-group-leaf.c, e-table-group-leaf.h (etgl_key_press): - Check for row >= 0 here. Fixes Ximian bug #6376. - (etgl_destroy): Disconnect from all the signals we connect to on - our ETableItem here. - -2001-08-07 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c (etsm_selected_count): Implemented this - function. Fixes Ximian bug #5353. - -2001-08-07 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c: Make tree nodes open if you hover over them while drag - & dropping. - -2001-08-07 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c (scroll_timeout): Added scrolling to access nodes that - are scrolled off screen for drops. Fixes Ximian bug #5645. - - * e-table.c, e-table.h (scroll_timeout): Added scrolling to access - rows that are scrolled off screen for drops. This doesn't work - for some reason, but I'm checking the code in. - -2001-08-06 Christopher James Lahey <clahey@ximian.com> - - * e-table.c, e-table.h (e_table_drag_highlight, - e_table_drag_unhighlight): Implemented these functions. - - * e-tree.c (e_tree_drag_highlight, e_tree_drag_unhighlight): - Implemented these functions. - -2001-08-04 Christopher James Lahey <clahey@ximian.com> - - * e-tree-scrolled.c (e_tree_scrolled_new): Set the hadjustment and - vadjustment here. From a patch by Kevin Vandersloot - <kfv101@psu.edu>. Fixes Ximian bug #6400. - -2001-08-03 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c (et_drag_motion, et_drag_drop, et_drag_data_received): - Change these to actually subtract the allocation as they should. - -2001-08-03 Christopher James Lahey <clahey@ximian.com> - - * e-tree-table-adapter.c (e_tree_table_adapter_node_at_row): - e_tree_table_adapter_node_at_row would have pulled data from one - past the end of its array if you asked it to and the root was - hidden. Fixed it. Fixes Ximian bug #4761. - -2001-08-03 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c (et_drag_motion, et_drag_drop, et_drag_data_received): - Subtracted 27. - -2001-08-02 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_event): Make the right and left key presses - be marked as handled here (i.e., return 1 always.) Fixes Ximian - bug #2090. - -2001-08-02 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c: Changed all e_table_model_is_cell_editable calls - in this file to be on the model column instead of the view column. - -2001-08-02 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c (et_destroy): Set et->priv to NULL here just to be - sure. - -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. - -2001-08-01 Federico Mena Quintero <federico@ximian.com> - - * e-table.c (group_cursor_change): Set the et->cursor_loc *before* - committing the click-to-add to avoid reentrancy issues if the - table model changes while the click-to-add is being committed. - -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. - -2001-08-01 Christopher James Lahey <clahey@ximian.com> - - * e-cell-toggle.c (etog_max_width): Made this not query the 0th - row if there are 0 rows in the table. Fixes Ximian bug #5640. - -2001-07-25 Jon Trowbridge <trow@ximian.com> - - * e-cell-text.c (ect_unrealize): Set text_view->font to NULL - after we unref it. - -2001-07-25 Jason Leach <jleach@ximian.com> - - * e-table-item.c (eti_event): If the CLICK signal gets a return - value, so we're going to be return from eti_event immediately - after, set the eti->click_count to zero. Fixes bug #811. - -2001-07-23 Ettore Perazzoli <ettore@ximian.com> - - * e-table-item.c (eti_event): Handle GDK_KP_* cursor keys as well. - -2001-07-12 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c (e_tree_get_cell_at): Made these functions return -1 if - the x and y aren't over any cell at all. - -2001-07-12 Christopher James Lahey <clahey@ximian.com> - - * e-tree-table-adapter.c (e_tree_table_adapter_node_set_expanded): - Ignore set_expanded if the node is the root and root_visible is - FALSE. - - * e-tree.c (item_key_press): Don't call set_expanded on NULL - paths. - -2001-07-11 Christopher James Lahey <clahey@ximian.com> - - * e-table.c (group_key_press), e-tree.c (item_key_press): Changed - these to use e_selection_model_select_as_key_press instead of - e_selection_model_do_something. - -2001-07-11 Christopher James Lahey <clahey@ximian.com> - - * e-table.c (group_key_press), e-tree.c (item_key_press): Made the - amount to scroll by smaller here. - -2001-07-11 Christopher James Lahey <clahey@ximian.com> - - * e-table.c (group_key_press), e-tree.c (item_key_press): Use - e_selection_model_do_something directly for page up and page down - instead of emulating a key press. - -2001-07-08 Christopher James Lahey <clahey@ximian.com> - - * e-table-field-chooser-dialog.c - (e_table_field_chooser_dialog_init): Changed the title of this - dialog. Fixes bug #2656. - -2001-07-06 Christopher James Lahey <clahey@ximian.com> - - * e-tree-table-adapter.c (e_tree_table_adapter_node_at_row): Added - checks for if row is outside of the appropriate range. - -2001-07-06 Christopher James Lahey <clahey@ximian.com> - - * e-cell-spin-button.c (e_cell_spin_button_step_float): Set - new_value = value here to fix a warning. - -2001-07-06 Christopher James Lahey <clahey@ximian.com> - - * e-table-config.c (config_get_arg): Added a "state" argument to - allow you to get the state out of the config object. - -2001-07-05 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c (e_tree_get_cell_geometry): Added checks that row and - col are >= 0. - -2001-07-05 Christopher James Lahey <clahey@ximian.com> - - * e-cell-text.c (ect_cancel_edit): Call e_table_item_leave_edit - here. - -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. - -2001-07-05 Christopher James Lahey <clahey@ximian.com> - - * e-table-one.c (one_is_cell_editable): Ask for the editability of - row -1 instead of column 0 as we were before. - -2001-07-05 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c, e-table-item.h (find_cell): Changed the variable - names here to make it clear that these are view model and row. - (eti_event): Added click_count to make it so that if we get two - clicks in different rows we don't send a double click event. - (eti_event, view_to_model_row): Set row_guess in a few extra - places. - -2001-07-05 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_event): Make a whole bunch of control keys - not start the ETableItem editing. - -2001-07-05 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (e_table_item_row_diff): Make sure start_row and - end_row are within the number of rows in the table. - -2001-07-05 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c (e_tree_new, e_tree_new_from_spec_file): Handle an - error in construction a little bit better here. - (e_tree_get_cursor): Check for row == -1 here. - -2001-07-02 Richard Hult <rhult@codefactory.se> - - * e-cell-combo.c (e_cell_combo_get_popup_pos): Calculate the popup - position using window coordinates instead of world coordinates. - This fixes bug #2613 in ximian's bugzilla, combo box pops up offset - if the table is scrolled. - -2001-07-02 Christopher James Lahey <clahey@ximian.com> - - * e-tree-sorted.c (ets_destroy): Only free the root here if it's - non-NULL. - -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. - -2001-07-02 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_event): Don't send the double click signal - if there's no row selected. - -2001-06-28 Chris Toshok <toshok@ximian.com> - - * e-table.c (et_drag_motion): send signals even if the row/col is - -1. - (et_drag_drop): same. - - * e-tree.c (et_drag_motion): same. - (et_drag_drop): same. - -2001-06-27 Peter Williams <peterw@ximian.com> - - * e-tree-selection-model.c (e_tree_selection_model_add_to_selection): New function, - heavily based on select_single_row. - - * e-tree-selection-model.h: Added prototype; - - * e-tree.c (e_tree_get_model): New accessor function. - (e_tree_get_selection_model): Same. - (e_tree_selected_count, e_tree_select_all, e_tree_invert_select): Removed. With - the accessors these become pointless. - - * e-tree.h: Prototype the functions above. Remove a few functions that - don't make sense anymore. - -2001-06-20 Mikael Hallendal <micke@codefactory.se> - - * e-cell-spin-button.c - (e_cell_spin_button_step): send the value to - e_table_model_set_value_at as a string as in e_cell_number. - (e_cell_spin_button_step_float): send the value to - e_table_model_set_value_at as a string as in e_cell_number_float. - -2001-05-25 Kjartan Maraas <kmaraas@gnome.org> - - * e-table-specification.c: #include <string.h> - * e-table-state.c: Same here. Kills warnings on newer gcc. - - -2001-05-25 Christopher James Lahey <clahey@ximian.com> - - * e-table.c (et_table_rows_deleted): Remove row row + i instead of - row i. - (et_table_rows_inserted): Insert row row + i instead of row row. - -2001-05-25 Christopher James Lahey <clahey@ximian.com> - - * e-table.c (et_table_rows_deleted): Remove row i instead of row - row. Destroy et->group when you get the changed or - sort_info_changed signal instead of in the idle handler. - -2001-05-24 jacob berkman <jacob@ximian.com> - - * e-cell-size.c (ecd_get_text): format similar to nautilus - -2001-05-23 jacob berkman <jacob@ximian.com> - - * e-table-group-container.c: internationalize the grouping text - string - -2001-05-22 jacob berkman <jacob@ximian.com> - - * e-cell-pixbuf.c: allow NULL pixbufs, and draw with crappy alpha - -2001-05-22 Christopher James Lahey <clahey@ximian.com> - - * e-table-sorted.c (ets_proxy_model_rows_deleted): Made this - faster in some cases. - -2001-05-22 Christopher James Lahey <clahey@ximian.com> - - * e-table-group-leaf.c (etgl_double_click): The double_click - signal on the table item now emits the model row instead of the - view row so don't do the view to model conversion here. - -2001-05-22 jacob berkman <jacob@ximian.com> - - * e-table-sorted.c (ets_proxy_model_rows_deleted): a similar - change to below, which makes it actually work for the case where - count != 1 - -2001-05-21 Chris Toshok <toshok@ximian.com> - - * e-table-sorted.c (ets_proxy_model_rows_inserted): increment row - each time through the loop so we don't get @count copies of @row. - -2001-05-14 Jon Trowbridge <trow@ximian.com> - - * e-cell-text.c (_get_position_from_xy): Try to deal with bad - utf8. - (_get_position): Try to deal with bad utf8. - (number_of_lines): Try to deal with bad utf8. - (split_into_lines): Try to deal with bad utf8. - -2001-05-11 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_event): Make a key press stop the tooltip - timeout. - - * e-table-state.c (e_table_state_load_from_node): Make the default - expansion be one so that if the user doesn't specify any - expansions they get a uniform expansion. - -2001-05-09 Christopher James Lahey <clahey@ximian.com> - - * e-cell-date.c (ecd_get_text): Show the date for dates in the - future. - - * e-tree-memory.c, e-tree-memory.h - (e_tree_memory_set_node_destroy_func): New function which gets - called on the data for every node removed from the tree. - -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. - - -2001-04-29 Christopher James Lahey <clahey@ximian.com> - - * e-table.c: Added a read only argument "model" to ETable. - -2001-04-28 Jason Leach <jasonleach@usa.net> - - (Make the alternating row colors a option in ETableSpecification - instead of a compiled in #define) - - * e-table-specification.c (e_table_specification_load_from_node): - Read in the "alternating-row-colors=bool" option for - ETableSpecifications. Default value is true so unless it is - specified to be false, row colors will alternate. - (e_table_specification_save_to_node): Save the alternating row - color options here. - - * e-table.c (et_build_groups): Pass down the alternating row - colors through to the ETableGroup. - - * e-table-group-container.[ch]: Handle the new alternating row colors - option here, passing it to ETableItem. - - * e-table-group-leaf.[ch]: Here too. - - * e-table-item.c (eti_get_cell_background_color): Got rid of the - #define ALTERNATE_COLORS, replaced with truth check for - ETableItem::alternating_row_colors. - - * e-tree.c: Make ETree recognize alternating row color options as - well. - - -2001-04-25 Jason Leach <jasonleach@usa.net> - - * e-table-group-leaf.c (etgl_set_arg): One-line fix (missing a - 'break' at the end of the ARG_SELECTION_MODEL case). - -2001-04-25 Christopher James Lahey <clahey@ximian.com> - - * e-table.c (e_table_get_cell_geometry): Add the header height to - the returned y location here so that things will be lined up - correctly. - -2001-04-25 Christopher James Lahey <clahey@ximian.com> - - * e-tree-table-adapter.c (e_tree_table_adapter_row_of_node): Made - this return -1 instead of -2 for not found if the root is not - visible. - - * e-tree-selection-model.c (etsm_row_foreach_cb): Made this accept - any negative number as not found instead of just -1. - -2001-04-23 Dan Winship <danw@ximian.com> - - * Makefile.am (INCLUDES): remove UNICODE_CFLAGS - - * e-cell-text.c: Remove <unicode.h> include, use gunicode functions - -2001-04-23 Christopher James Lahey <clahey@ximian.com> - - * e-table.c (e_table_get_cell_geometry): Documented this function - properly. - - * e-tree.c, e-tree.h (e_tree_get_cell_geometry): Added this - function. - -2001-04-23 Christopher James Lahey <clahey@ximian.com> - - * e-table-group-container.c, e-table-group-leaf.c, - e-table-group.c, e-table-group-.h: Added get_cell_geometry method. - - * e-table-item.c, e-table-item.h: Added - e_table_item_get_cell_geometry. - - * e-table.c, e-table.h: Added e_table_get_cell_geometry. - -2001-04-23 Christopher James Lahey <clahey@ximian.com> - - * e-cell-date.c (ecd_get_text): Made it so that if a message is - from the last 8 hours, it only prints the time, not the date. - -2001-04-23 Christopher James Lahey <clahey@ximian.com> - - * e-table-header-utils.c (e_table_header_draw_button): Make pixbuf - columns show their title if there is space. - -2001-04-19 Christopher James Lahey <clahey@ximian.com> - - * e-table-header.c (eth_calc_widths): Submit a signal even if - there are no extras. - - * e-table-item.c (eti_request_column_width): Don't compute widths - if our cells aren't realized yet. - - * e-tree.c: Call e_table_header_update_horizontal whenever our - data changes. - -2001-04-19 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c: Turned off information expanders (tooltips) in - ETable by default. Turn them back on with the environment - variable GAL_DO_TOOLTIPS. - -2001-04-18 Dan Winship <danw@ximian.com> - - * e-table.c (et_destroy): Free some things that weren't getting - freed. - - * e-tree.c (et_destroy): Free some things that weren't getting - freed. - (e_tree_set_state_object): Don't ref the return value of - e_table_state_to_header. - -2001-04-16 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c: Turned on tooltips and alternating colors. - -2001-04-16 Christopher James Lahey <clahey@ximian.com> - - * e-cell-text.c (tooltip_event): Propagate the event after sending - it to the table item. - -2001-04-16 Christopher James Lahey <clahey@ximian.com> - - * e-tree-sorted.c (ets_sort_idle): Fix a crash here. - -2001-04-15 Christopher James Lahey <clahey@ximian.com> - - * e-cell-text.c (ect_show_tooltip): Set the background color to - the specified tooltip->background. Set the foreground color to - the specified tooltip->foreground. - - * e-table-item.c (eti_get_cell_background_color, - eti_get_cell_foreground_color): Added these functions. - (eti_draw, _do_tooltip): Use these new functions. - - * e-table-tooltip.h: Added foreground and background colors to - this structure. - - * e-tree.c, e-tree.h (e_tree_get_tooltip): Added this function. - -2001-04-15 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c: Added /* #defines */ at the top. Fixed - ALTERNATE_COLORS to be an #ifdef instead of an #if. - - * e-cell-text.c (ect_show_tooltip): Set "strikeout" argument on - created tooltip. - -2001-04-15 Christopher James Lahey <clahey@ximian.com> - - * e-cell-text.c (tooltip_event): Use e_canvas_hide_tooltip and - e_canvas_popup_tooltip. - - * e-table-item.c: Cleaned this up. Removed some #if 0 and - replaced others with #ifdefs. - - * e-table-tooltip.h: Removed some unnecessary fields. - -2001-04-15 Christopher James Lahey <clahey@ximian.com> - - * e-cell-text.c (ect_show_tooltip): Set "bold" argument on created - tooltip. Adjusted position of displayed tooltip. - - * e-cell-tree.c (offset_of_node): Changed it so that this function - handles knowing whether on not to indent non expandable first - level nodes. This makes things more consistent. - - * e-table-item.c (eti_realize): Cleaned up the ETableItem code to - properly hide tooltips when going off the screen. - - * e-table-tooltip.h: Added a visibility_count field to ETableTooltip. - -2001-04-14 Christopher James Lahey <clahey@ximian.com> - - * e-table-hsv-utils.c, e-table-hsv-utils.h: Moved these to - gal/widgets/e-hsv-utils.c and gal/widgets/e-hsv-utils.h. - - * e-table-item.c: #if 0ed out alternating colors until we come to - a consensus. - -2001-04-13 Mikael Hallendal <micke@codefactory.se> - - * e-cell-float.[ch]: New cell for floats. - - * e-cell-spin-button.[ch]: New cell for spin-button. - - * Makefile.am: - - Added e-cell-spin-button.[ch] - - Added e-cell-float.[ch] - -2001-04-13 Dan Winship <danw@ximian.com> - - * e-table-header.c (eth_destroy): Fix memory leak - -2001-04-12 Seth Nickell <snickell@stanford.edu> - - * e-table-hsv-utils.c, e-table-hsv-utils.h: (tweak_hsv), - (hsv_to_rgb), (rgb_to_hsv): Some utility functions for dealing - with and modifying HSV values. - - * Makefile.am: Add e-table-hsv-utils.[c|h] to the build. - - * e-table-item.c: (eti_draw): Enable alternating colours in - e-table cells. - -2001-04-12 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_cursor_change): Only move the screen to show - the cursor if there are no changes pending. Updated the commented - out code for alternating colors a bit. - - * e-table-model.c, e-table-model.h: Added - e_table_model_has_change_pending. - - * e-tree-memory-callbacks.c, e-tree-memory-callbacks.h: Added - has_get_node_by_id and get_node_by_id. - - * e-tree-model.c, e-tree-model.h: Added - e_tree_model_has_get_node_by_id and e_tree_model_get_node_by_id. - Added e_tree_model_has_change_pending. - - * e-tree-selection-model.c: Handle the selection and cursor - properly across the tree changing. - - * e-tree-sorted.c: Implemented has_get_node_by_id and - get_node_by_id, and has_changes_pending. - - * e-tree-table-adapter.c: Implemented has_changes_pending. Fixed - an array underflow. - -2001-04-11 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c (item_key_press): Return TRUE for left and right - arrows. - -2001-04-10 Gediminas Paulauskas <menesis@delfi.lt> - - * e-table.c (et_real_construct): convert click_to_add_message locale->utf8. - -2001-04-10 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c: Put debugging stuff in d(). - -2001-04-10 Christopher James Lahey <clahey@ximian.com> - - * e-table.c: #include "gal/widgets/e-unicode.h". - -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. - -2001-04-07 Dan Winship <danw@ximian.com> - - * e-cell-tree.c (ect_event): add "break;" to otherwise-empty - "default:" cases to make them ANSI. - -2001-04-04 Kjartan Maraas <kmaraas@gnome.org> - - * e-cell-date.c: Fix headers. - * e-cell-number.c: Ditto. - * e-cell-pixbuf.[ch]: Ditto. - * e-cell-size.c: Ditto. - * e-cell-text.c: Ditto. - * e-cell-tree.c: Ditto. - * e-table-click-to-add.[ch]: Ditto. - * e-table-column-specification.h: Ditto. - * e-table-config-field.c: Ditto. - * e-table-config.[ch]: Ditto. - * e-table-example-2.c: Ditto. - * e-table-field-chooser-dialog.[ch]: Ditto. - * e-table-field-chooser-item.c: Ditto. - * e-table-field-chooser.h: Ditto. - * e-table-group-container.c: Ditto. - * e-table-item.c: Ditto - * e-table-memory.c: Ditto. - * e-table-selection-model.c: Ditto. - * e-table-sorter.c: Ditto. - * e-table-subset-variable.c: Ditto. - * e-table.c: Ditto. - * e-tree-memory.c: Ditto. - * e-tree-model.c: Ditto. - * e-tree-selection-model.[ch]: Ditto. - * e-tree-sorted-variable.c: Ditto. - * e-tree-sorted.c: Ditto. - * e-tree-table-adapter.c: Ditto. - * e-tree.[ch]: Same here. - -2001-04-04 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c (e_tree_selection_model_change_cursor): - Call cursor_activated as well. - -2001-04-04 Christopher James Lahey <clahey@ximian.com> - - * e-table-config.c, e-table-item.c, e-table-memory.c, - e-table-sort-info.c, e-table-specification.c, e-tree-sorted.c: - Fixed headers. - - * e-table-config.c, e-table-specification.c: Replaced strcasecmp - with g_strcasecmp. - -2001-04-04 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c: Made this work properly for models - with 0 rows in the tree table adapter. - -2001-04-04 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c, e-tree-selection-model.h - (e_tree_selection_model_change_cursor): Added this function. - - * e-tree.c (e_tree_set_cursor): Screwed up moving the cursor a - small bit when I changed this to be faster before. Fixed it. - -2001-04-04 Christopher James Lahey <clahey@ximian.com> - - * e-tree-sorted.c: Make it so you can switch checking around the - last access on and off for tuning purposes. - - * e-tree-table-adapter.c: Apparently, ETreeTableAdapter is much - faster if the value_at function doesn't change the last_access - variable. - -2001-04-04 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c, e-tree-selection-model.h: Added - e_tree_selection_model_select_single_path and made selection_start - be the path as it should be instead of the row. - - * e-tree-sorted.c: Added a last_access variable to speed up - access. - - * e-tree-table-adapter.c: Made checking last_access look at the 10 - values before and after the listed value to look for the value - requested. - - * e-tree.c: Call e_tree_selection_model_select_single_path if - E_TREE_USE_TREE_SELECTION. - -2001-04-04 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c (etsm_row_foreach_cb): Fixed this to - not call the callback with a row of -1. - -2001-04-04 Christopher James Lahey <clahey@ximian.com> - - * e-tree.h (E_TREE_USE_TREE_SELECTION): Turn on - E_TREE_USE_TREE_SELECTION. - -2001-04-03 Richard Hult <rhult@codefactory.se> - - * e-tree-table-adapter.c (etta_proxy_node_inserted): Fixed an off - by one error. - -2001-04-03 Richard Hult <rhult@codefactory.se> - - * e-tree.c (et_get_arg): Add argument to get the table adapter. - (et_set_arg): Add arguments for setting drawing of the grid and - focus. - - * e-tree-model.c, e-tree-model.h (e_tree_model_node_traverse): - Fill in missing implementation. - (e_tree_model_node_traverse_preorder): Likewise, but preorder - traversal. - -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.) - -2001-04-02 Federico Mena Quintero <federico@ximian.com> - - * e-table-click-to-add.c (finish_editing): Ahem, the ETableItem - argument is now "selection_model", not "table_selection_model". - -2001-04-02 Gediminas Paulauskas <menesis@delfi.lt> - - * e-table-config.glade, e-table-field-chooser.glade, - e-table-group.glade: Do not generate glade.h. - * e-table-field-chooser.glade.h, e-table-group.glade.h: removed. - * Makefile.am: updated. - -2001-04-02 Federico Mena Quintero <federico@ximian.com> - - * e-cell-popup.c (ecp_unrealize): Typo fix; call - e_cell_unrealize(), not e_cell_realize(). - - * e-cell-text.c (ect_event): Removed fallback "else", from "if - (edit_display)"since our planned return value is already zero and - we do need to unbuild_current_cell() instead of returning - immediately. - - * e-table-state.c (etst_destroy): Free the expansions field. - - * e-table.c (e_table_set_state_object): Do not ref the header - since we just created it! - -2001-04-01 Gediminas Paulauskas <menesis@delfi.lt> - - * e-table-config.c, e-table-field-chooser.c: replaced - glade_xml_new with glade_xml_new_with_domain. - -2001-04-01 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c: Monitor the sorted model and send - selection and cursor changed signals. - -2001-04-01 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c (etsm_foreach_all_recurse, - etsm_foreach_recurse, e_tree_selection_model_foreach): Made this - traverse the source model instead of the sorted model since the - selection model is in the order of the source model. - -2001-04-01 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c: Fixed some bugs with the privitization - of ETreeSelectionModel. - - * e-tree.c: One more required change to make it work with - E_TREE_USE_TREE_SELECTION on. - -2001-04-01 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am (libetable_la_SOURCES): Added - e-tree-selection-model.c. - (libetableinclude_HEADERS): Added e-tree-selection-model.h. - - * e-tree.c, e-tree.h: Added code to use ETreeSelectionModel if the - string E_TREE_USE_TREE_SELECTION is defined. - -2001-03-31 Tambet Ingo <tambet@ximian.com> - - * e-table-scrolled.c (e_table_scrolled_new_from_spec_file): Fixed - little bug, add adjustments. - -2001-03-31 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c (e_tree_init): Initialize all necessary fields here. - -2001-03-31 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c (et_real_construct): Roll back another part of the - change. - -2001-03-31 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c, e-tree.h: Accidently committed this with using the - tree selection model turned on. Rolled back this change. - -2001-03-31 Christopher James Lahey <clahey@ximian.com> - - * e-tree-scrolled.c: Include <gal/util/e-util.h> here. - - * e-tree-selection-model.c, e-tree-selection-model.h: Privatized - this class. Cleaned this up a bit. Added handlers for signals - from the model. - - * e-tree.c, e-tree.h: Privatized this class. - -2001-03-31 Christopher James Lahey <clahey@ximian.com> - - * e-tree-sorted.c (ets_proxy_node_inserted): Set orig_position - properly on inserted nodes. - -2001-03-31 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c (etsm_foreach_all_recurse): Made - e_tree_selection_model_foreach work. - (etsm_select_all): Made etsm_select_all work. - (update_parents): Fixed a crash. - -2001-03-31 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am: Removed a bunch of unused comments. - -2001-03-31 Christopher James Lahey <clahey@ximian.com> - - * e-table-example-1.c: Removed this since it's out of date. - Replaced by tests/test-table-1.c. - -2001-03-31 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c, e-tree-selection-model.h: New - implementation based on a tree instead of a hash table. - - * e-tree-sorted.c, e-tree-sorted.h: Added - e_tree_sorted_num_children. - -2001-03-30 Radek Doulik <rodo@ximian.com> - - * e-tree.h: removed #include - <gal/e-table/e-tree-selection-model.h> - -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. - -2001-03-30 Christopher James Lahey <clahey@ximian.com> - - * e-table-group-container.c, e-table-group-container.h, - e-table-group-leaf.c, e-table-group-leaf.h, e-table-item.c, - e-table-item.h, e-table.c, e-tree.c: Changed the signal - "table_selection_model" to just be "selection_model" everywhere - and made it be ESelectionModels instead of ETableSelectionModels - for generality. - - * e-table-item.c (eti_event): Make right arrow and left arrow - accessible as events that can be caught. - - * e-tree-sorted.c, e-tree-sorted.h (e_tree_sorted_orig_position): - Added this function. - -2001-03-30 Christopher James Lahey <clahey@ximian.com> - - * e-tree-table-adapter.c (etta_proxy_node_removed): Fixed removing - the last child of a node. - -2001-03-29 Christopher James Lahey <clahey@ximian.com> - - * e-table.c, e-tree.c, e-tree.h: Updated to set the width of the - header canvas to be equal to the width of the table canvas to - avoid infinite loops. Added left arrow and right arrow as tree - collapse and expand bindings. - -2001-03-27 Christopher James Lahey <clahey@ximian.com> - - * e-tree-selection-model.c, e-tree-selection-model.h: New class - implementing a tree model. Not finished yet or in use, but I - wanted to get it checked in. - -2001-03-26 Christopher James Lahey <clahey@ximian.com> - - * e-tree-memory.c, e-tree-table-adapter.c: Updated these to match - the new e_tree_model_node_removed signal. - - * e-tree-model.c, e-tree-model.h: Added an old_position parameter - to the node_removed signal so that it would be completely - deterministic. - - * e-tree-sorted.c: Changed this so that paths keep track of their - original position. This makes sorting much faster. - -Sun Mar 25 22:31:19 2001 George Lebl <jirka@5z.com> - - * e-tree.c (e_tree_class_init): Fix gtk_signal_new arguments, INT - and POINTER were switched causing my alpha to go nuts. - -2001-03-25 Dan Winship <danw@ximian.com> - - * e-table.c (et_real_construct): ref the sort_info taken from the - state object. - * e-tree.c (et_real_construct): Ditto. Fixes the last ETree - crash-on-exit bug for me. - -2001-03-25 Christopher James Lahey <clahey@ximian.com> - - * e-table-selection-model.c, e-table-selection-model.h: Made the - parent object of this be ESelectionModelArray instead of - ESelectionModel due to their refactoring. Changed the commented - out code for saving the selection a bit. - -2001-03-25 Christopher James Lahey <clahey@ximian.com> - - * e-tree.c (item_key_press): Added '=' and '-' as tree node expand - and collapse. - -2001-03-23 Christopher James Lahey <clahey@ximian.com> - - * e-table-extras.c: Properly remove old items from the - ETableExtras if they are replaced by new objects. - -2001-03-23 Christopher James Lahey <clahey@ximian.com> - - * e-tree-sorted.c (reposition_path): Made this only up the - insert_count if it actually had to do any non constant work to - reposition the path. - -2001-03-23 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_cursor_change, eti_cursor_activated): Ignore - these signals if we aren't realized yet. - -2001-03-23 Christopher James Lahey <clahey@ximian.com> - - * e-cell-text.c: Made this not create the new font until realize - instead of at new_view time. - - * e-table-item.c: Don't request heights or do other things that - you aren't allowed to do before realization unless you're - realized. - -2001-03-22 Ettore Perazzoli <ettore@ximian.com> - - * e-table-sort-info.c (e_table_sort_info_init): Make the object - not FLOATING. - - * e-table-state.c (etst_destroy): Use _unref, not _destroy, to - release the `sort_info'. - -2001-03-22 Christopher James Lahey <clahey@ximian.com> - - * e-table-memory.c: Fixed the parity on all the g_return_ifs and - g_return_val_ifs. - -2001-03-22 Christopher James Lahey <clahey@ximian.com> - - * e-table-memory.c, e-table-memory.h (e_table_memory_insert): Made - this able to take -1 to denote appending to the table. Also, - removed the node_ from the name of this function. - (e_table_memory_remove): Removed the node_ from the name of this - function. - (e_table_memory_clear): New function which sets the table to - empty. - -2001-03-22 Christopher James Lahey <clahey@ximian.com> - - * e-tree-memory.c (sort_callback): Changed this to derefence the - pointers passed in from qsort as we should instead of just casting - them. - (e_tree_memory_sort_node): Set the first_child and last_child of - the node changed. - -2001-03-22 Christopher James Lahey <clahey@ximian.com> - - * e-tree-memory.c, e-tree-memory.h (e_tree_memory_sort_node): New - function to allow you to do non live sorts with weird rules. - -2001-03-22 Christopher James Lahey <clahey@ximian.com> - - * e-table-memory.c (e_table_memory_insert): Fixed the - g_return_if_fail here to allow for appending. - -2001-03-21 Ettore Perazzoli <ettore@ximian.com> - - * e-table-state.c (etst_init): Make the object a non-GTK_FLOATING - object. - -2001-03-20 Christopher James Lahey <clahey@ximian.com> - - * e-table-memory-callbacks.c, e-table-memory-callbacks.h, - e-table-memory.c, e-table-memory.h: Added these classes. - - * Makefile.am: Added e-table-memory-callbacks.c, - e-table-memory-callbacks.h, e-table-memory.c, and - e-table-memory.h. - -2001-03-20 Christopher James Lahey <clahey@ximian.com> - - * e-table.c: Fixed a typo in the word horiztonal. - -2001-03-20 Christopher James Lahey <clahey@ximian.com> - - * e-table-click-to-add.c: Turn on the vertical grid. - - * e-table-group-container.c, e-table-group-container.h, - e-table-group-leaf.c, e-table-group-leaf.h, e-table-item.c, - e-table-item.h: Replaced the "drawgrid" argument with - "horizontal_draw_grid" and "vertical_draw_grid" arguments. - - * e-table-specification.c, e-table-specifcation: Replaced the - draw_grid setting with the horizontal_draw_grid and - vertical_draw_grid settings. If the draw-grid property is set in - a ETableSpecification it is still obeyed and overrides the - vertical-draw-grid and horizontal-draw-grid properties. - - * e-table.c, e-table.h, e-tree.c, e-tree.h: Deal with the - horizontal_draw_grid and vertical_draw_grid changes. - - * e-tree-model.h: Added a missing include. - -2001-03-19 Christopher James Lahey <clahey@ximian.com> - - * e-tree-sorted.c (ets_proxy_node_changed): Deal with - proxy_node_changed being called on a different root node than the - one we have in our tree. - - * e-tree-table-adapter.c: Did some general clean up here. - - * Merged branch: - -2001-03-19 Christopher James Lahey <clahey@ximian.com> - - * e-tree-sorted.c (find_child_path): Added this function to allow - us to find paths that have been removed from the source. - (ets_proxy_node_removed): Fixed the memmove here a bit. Call - find_child_path. - - * e-tree-table-adapter.c (find_node): Check that the passed in - path isn't NULL. - -2001-03-19 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_reflow): Get width from header object - instead of calculating it ourselves. - - * e-table-selection-model.c: Turn off selection saving since it's - so slow. - - * e-table.c (e_table_set_state_object): Set the width of the newly - created header object. - - * e-tree.c (e_tree_set_state_object): Set the width of the newly - created header object. - (tree_canvas_size_allocate): Don't bother setting the dimensions - of the white background twice. - -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 - -2001-03-18 Christopher James Lahey <clahey@ximian.com> - - * e-table-selection-model.c, e-table-selection-model.h: Made - ETableSelectionModel save the cursor properly across changed - signals if has_save_id is true. - -2001-03-18 Christopher James Lahey <clahey@ximian.com> - - * e-table-selection-model.c, e-table-selection-model.h: Made - ETableSelectionModel save selection properly across changed - signals if has_save_id is true. - - * e-tree-memory.c: A couple of typos. - -2001-03-18 Christopher James Lahey <clahey@ximian.com> - - * e-tree-memory.c, e-tree-sorted.c: Send pre_changes properly. - -2001-03-18 Christopher James Lahey <clahey@ximian.com> - - * e-tree-table-adapter.c: Send pre_changes when performing - set_expanded or root_node_set_visible. - -2001-03-18 Christopher James Lahey <clahey@ximian.com> - - * e-tree-sorted.c (ets_is_expandable): When the API requests - whether the object is expandable and it isn't, make sure to send a - signal when it becomes expandable. - - * e-tree-table-adapter.c: Made it so that in a number of cases - where it doesn't need to create an empty hash table node if the - current tree node has no children, it doesn't. - -2001-03-18 Christopher James Lahey <clahey@ximian.com> - - * e-tree-memory-callbacks.c, e-tree-memory-callbacks.h - (etmc_has_save_id, etmc_get_save_id): Added has_save_id and - get_save_id to the list of methods supported by - e_tree_memory_callbacks. - - * e-tree-table-adapter.c, e-tree-table-adapter.h: Added saving of - expanded nodes. - -2001-03-18 Christopher James Lahey <clahey@ximian.com> - - * e-table-model.c, e-table-model.h (e_table_model_get_save_id): - Changed row_save_id to get_save_id to be consistent with ETree. - - * e-tree-model.c, e-tree-model.h: Added "pre_change" signal. - Added has_save_id and get_save_id methods. - - * e-tree-sorted.c: Proxy pre_change signal. Implemented - has_save_id and get_save_id. If the base model doesn't provide - has_save_id then we g_strdup_printf the pointer of the base model - ETreePath as the save_id. - - * e-tree-table-adapter.c: Proxy pre_change signal. If base model - has_save_id, then use the results of get_save_id as the key for - the hash table of node attributes. Otherwise use the pointer as - before. - - -2001-03-17 Christopher James Lahey <clahey@ximian.com> - - * e-tree-sorted.c (ets_sort_idle): Fixed it so that all nodes get - sorted properly instead of just the top node. - -2001-03-17 Christopher James Lahey <clahey@ximian.com> - - * e-table-sorting-utils.c (e_table_sorting_utils_tree_sort): Made - tree sorting faster by using a cache. - - * e-tree-sorted.c: Added commented out debugging g_prints. - -2001-03-17 Christopher James Lahey <clahey@ximian.com> - - * e-tree-sorted.c: Switched to using GMemChunks. - -2001-03-17 Christopher James Lahey <clahey@ximian.com> - - * e-tree-sorted.c (resort_node): Made it so that children of a - node that's being sorted don't send changed signals. - -2001-03-17 Christopher James Lahey <clahey@ximian.com> - - * e-table-sorting-utils.c, e-table-sorting-utils.h: Switched to - using e_sort and e_search instead of qsort and a linear search. - Added the tree functions e_table_sorting_utils_tree_sort, - e_table_sorting_utils_tree_check_position, and - e_table_sorting_utils_tree_insert. - - * e-tree-sorted.c: Made this actually do sorting. - - * e-tree-table-adapter.c (etta_proxy_node_changed): The old_size - needs to be the number of visible children + 1 to include the top - node. - - * e-tree.c (e_tree_set_state_object): Set the sort_info on the - ETreeSorted when you get a new sort_info. - -2001-03-16 Kjartan Maraas <kmaraas@gnome.org> - - * e-cell-combo.c: Added #include <string.h> for strcmp(). - * e-table-header-utils.c: Same for strlen(). - - -2001-03-16 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am: Added e-tree-sorted.c and e-tree-sorted.h. - - * e-table-item.c (eti_realize_cell_views): Only realize the cells - if they're not realized already and if the canvas is realized. - - * e-table-sorted.c (ets_proxy_model_cell_changed): Matched the - change to the signature of e_table_sorting_utils_affects_sort. - - * e-table-sorting-utils.c, e-table-sorting-utils.h - (e_table_sorting_utils_affects_sort): Changed the signature of - this function to not take the ETableModel source since it doesn't - use it and we need to use this function for ETreeSorted which - doesn't have an ETableModel. - - * e-tree-memory.c (etmm_get_expanded_default): Actually implement - the get_expanded_default for this tree. - - * e-tree-model.h: Cleaned up the indentation here. - - * e-tree-sorted.c, e-tree-sorted.h: New class meant to be used for - sorting trees. It doesn't actually sort yet. It simply acts as - an ETreeProxy which is the hardest part of making ETreeSorted. - - * e-tree.c, e-tree.h: Made this use an ETreeSorted. - -2001-03-15 Miguel de Icaza <miguel@ximian.com> - - * e-table-state.c (etst_destroy): Release ->sort_info. - -2001-03-15 Dan Winship <danw@ximian.com> - - * e-table-item.c (eti_event): Update arguments to - e_canvas_item_grab_focus. - (eti_cursor_change): Ditto, but pass FALSE! Fixes the problem of - the Evolution message list stealing your focus when new mail - arrives. Ha! - -2001-03-14 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c, e-table-item.h, e-table-selection-model.c, - e-table-selection-model.h, e-table-sorted.c, e-table-sorted.h, - e-table-subset.c, e-table-subset.h, e-table.c, e-table.h: Switch - to handling e_table_model_rows_inserted instead of - e_table_model_row_inserted and e_table_model_rows_deleted instead - of e_table_model_row_deleted. - - * e-table-model.c, e-table-model.h: Replaced the signals - "model_row_inserted" and "model_row_deleted" with - "model_rows_inserted" and "model_rows_deleted" so that when - multiple rows are inserted or deleted at the same time they can be - handled properly. - - * e-tree-table-adapter.c: Call "model_rows_inserted" and - "model_rows_deleted" instead of "model_changed" when inserting or - deleting multiple rows. - -2001-03-14 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (e_table_item_row_diff): Made this not count the - pixel between rows if it isn't there. - -2001-03-14 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_header_structure_changed): Properly attach & - realize cell views here. - -2001-03-13 Christopher James Lahey <clahey@ximian.com> - - * e-tree-table-adapter.c (etta_proxy_node_removed): Check that - parent_node and parent aren't NULL before making function calls on - them. - -2001-03-13 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (confirm_height_cache): Fixed a height cache - miscalculation. - - * e-tree-table-adapter.c (find_first_child_node): Made the - semantics of this mean that find_first_child_node(adapter, -1) - means return the first node in the tree. - -2001-03-13 Christopher James Lahey <clahey@ximian.com> - - * e-table-extras.c: Added a "string-integer" comparison function - to the default %ETableExtras so you can do comparisons based on - integer value even if you using strings for the data (this lets - you do editable numbers, for instance.) - - * e-table-item.c: Rearranged it a bit so that if you have - draw_grid off it doesn't add space for the horizontal lines, nor - leave them the background color. - - * e-table-model.c, e-table-model.h: Added the row_save_id and - has_save_id methods to %ETableModel. - - * e-tree.c, e-tree.h: Replaced e_tree_compute_location with - e_tree_get_cell_at. - -2001-03-08 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am: Added e-table/e-table-utils.c, - e-table/e-tree-memory-callbacks.c, e-table/e-tree-memory.c, - e-table/e-tree-scrolled.c, e-table/e-tree-table-adapter.c, and - e-table/e-tree.c. Removed e-table/e-tree-simple.c. Added - e-table/e-table-utils.h, e-table/e-tree-memory-callbacks.h, - e-table/e-tree-memory.h, e-table/e-tree-scrolled.h, - e-table/e-tree-table-adapter.h, and e-table/e-tree.h. Removed - e-table/e-tree-simple.h. - - * e-cell-tree.c: Updated this for the new tree. - - * e-table-item.c: Added some redraw requests where appropriate. - - * e-table-item.h: Fixed an incorrect class method declaration. - - * e-table-model.c, e-table-model.h: Removed - e_table_model_has_sort_group and e_table_model_row_sort_group. - - * e-table-scrolled.h: Removed unused headers. - - * e-table-simple.c, e-table-simple.h: Rearranged this a bit. - - * e-table-sorter.c, e-table-sorting-utils.c, - e-table-sorting-utils.h: Removed sort group stuff. Added the - function e_table_sorting_utils_check_position. - - * e-table-utils.c, e-table-utils.h: Utility functions for ETable - and ETree. - - * e-table.c: Moved some of the functionality from here to - e-table-utils.c so that it can be reused by ETree. - - * e-tree-memory-callbacks.c, e-tree-memory-callbacks.h: Class to - implement an ETreeMemory as callbacks instead of overriding the - class. - - * e-tree-memory.c, e-tree-memory.h: ETreeModel that stores a tree - of physical nodes. - - * e-tree-model.c, e-tree-model.h: Removed most of the - functionality from here to the classes ETreeMemory and - ETreeTableAdapter. This is now just a simple virtualized tree - class. - - * e-tree-scrolled.c, e-tree-scrolled.h: New class. An ETree in an - EScrollFrame. - - * e-tree-simple.c: Small change. This is no longer used. - - * e-tree-table-adapter.c, e-tree-table-adapter.h: ETableModel that - represents an ETreeModel as a table. - - * e-tree.c, e-tree.h: New super class kind of like ETable but for - trees. - -End of branch - -2001-03-07 Ettore Perazzoli <ettore@ximian.com> - - * e-table.c (e_table_compute_location): Removed. - (e_table_get_cell_at): New, public function exporting the same - functionality. - (et_drag_motion): Use `e_table_get_cell_at()' instead of - `e_table_compute_location()'. - (et_drag_drop): Likewise. - (et_drag_data_received): Likewise. - (e_table_drag_source_event_cb): Likewise. - -2001-03-04 Damon Chaplin <damon@ximian.com> - - * e-cell-text.c: added "editable" Arg, to stop the user from editing - the text. The user can still select the text, though. The "editable" - Arg is useful for ECellCombo where we want the user to select an item - in the popup but not edit the field itself. - - * e-cell-combo.c: updated to select the matcing item before it pops up - the list. - -2001-03-01 Vladimir Vukicevic <vladimir@ximian.com> - - * e-cell-pixbuf.c, e-cell-pixbuf.h, Makefile.am, - Makefile.am, e-table-extras.c: Added new ECellPixbuf -- - takes a GdkPixbuf from the model and renders it centered - in the table cell. - - -2001-02-27 Christopher James Lahey <clahey@ximian.com> - - * e-table-click-to-add.c, e-table-group-container.c, - e-table-group-container.h, e-table-group-leaf.c, - e-table-group-leaf.h, e-table-item.c, e-table-item.h, - e-table-specification.c, e-table-specification.h, e-table.c, - e-table.h: Changed a lot of the ETableSelectionModels to - ESelectionModels, a lot of the ETableSorters to ESorters, all the - ETableCursorModes to ECursorModes, and all of the - ETableForeachFuncs into EForeachFuncs. - - * e-table-defines.h: Moved ETableForeachFunc and ETableCursorMode - to e-selection-model.h. - - * e-table-selection-model.c, e-table-selection-model.h: Made this - a subclass of ESelectionModel which simple connects to an - ETableModel. - - * e-table-sorter.c, e-table-sorter.h: Made this a subclass of - ESorter so that implements the same semantics it used to. - -2001-03-01 Christopher James Lahey <clahey@ximian.com> - - * e-cell-pixbuf.c: Fixed some warnings. - - * e-table-subset.c, e-table-subset.h: Added - e_table_subset_print_debugging. - -2001-02-27 Christopher James Lahey <clahey@ximian.com> - - * e-table-sorted-variable.c: Moved etsv_compare to etsu_compare in - e-table-sorting-utils.c. Moved most of the contents of etsv_add - to e_table_sorting_utils_insert in e-table-sorting-utils.c and - call the function. - - * e-table-sorted.c: Rewrote ets_proxy_row_changed, - ets_proxy_row_inserted, and ets_proxy_row_deleted. - - * e-table-sorting-utils.c, e-table-sorting-utils.h (etsu_compare, - e_table_sorting_utils_insert): Added e_table_sorting_utils_insert. - - * e-table-subset-variable.c: Changed this implementation to be - slightly more consistent with other code. - -2001-02-26 Ettore Perazzoli <ettore@ximian.com> - - * e-table.c (et_disconnect_model): Only disconnect if the model is - non-zero, and only if the IDs are actually non-zero. - -2001-02-25 Damon Chaplin <damon@ximian.com> - - * e-cell-popup.c: new abstract ECell subclass to be used as base class - for popup ECells. - - * e-cell-combo.c: subclass of ECellPopup which pops up a simple list - of strings. - - * e-table-item.c: Renamed eti_row_diff() to e_table_item_row_diff() and - made public, since the ECellPopup subclasses need it. - - * Makefile.am: added e-cell-popup.[hc] and e-cell-combo.[hc] - -2001-02-23 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am (libetable_la_SOURCES): Added - e-table-sorting-utils.c. - (libetableinclude_HEADERS): Added e-table-sorting-utils.h. - - * e-table-group-container.c: Implemented add_array method. Use - add_array to implement add_all instead of using add. Did some - general clean up. - - * e-table-group-leaf.c, e-table-group-leaf.h: Implemented - add_array method. Changed everything to use an ETableSubset - variable instead of an ETableSortedVariable. Implemented it as - ETableSortedVariable if there's grouping involved and ETableSorted - if there isn't. - - * e-table-group.c, e-table-group.h: Added add_array method. Added - unused get_position code. - - * e-table-sorted-variable.c, e-table-sorted-variable.h: Moved a - lot of the actual implementation of sorting to - e-table-sorting-utils.c. Got rid of the signal handlers here - since we weren't using them and ETableSubset has the proxy virtual - methods. - - * e-table-sorted.c, e-table-sorted.h: Completely replaced these - files with a variation on ETableSortedVariable that doesn't have - the add methods and such but instead just mimics the source - model's set of rows completely. - - * e-table-sorter.c, e-table-sorter.h: Added functions to get at - the arrays here. - - * e-table-sorting-utils.c, e-table-sorting-utils.h: Utility - functions for doing sorting. - - * e-table-subset-variable.c, e-table-subset-variable.h: Added - add_array method. - - * e-table-subset.c, e-table-subset.h: Made it so that the signal - hookups to the source model's signals are virtual methods. - - * e-table.c, e-table.h: Don't call add_all and add and remove type - functions if not grouped. Don't rebuild for sort changes unless - it was either grouped before or will be grouped now. - -2001-02-22 Christopher James Lahey <clahey@ximian.com> - - * e-tree-model.c: Added a bunch of g_return_if_fails. - -2001-02-20 Christopher James Lahey <clahey@ximian.com> - - * e-cell.c (e_cell_draw): Added some g_return_if_fails here. - -2001-02-20 Chris Toshok <toshok@ximian.com> - - * e-tree-model.c: add some more (mostly empty) api docs. - (e_tree_model_node_changed): pass the node in the "node_changed" - signal. - (etree_destroy): e_tree_model_node_remove our root node here to - free up the tree's storage. - -2001-02-19 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am: Removed e-table-text-model.c and - e-table-text-model.h. - - * e-table-text-model.c, e-table-text-model.h: Moved these to - gal/e-text/. - - * e-cell-text.c: Changed the include line for - e-text-event-processor.h and e-text-event-processor-emacs-like.h. - -2001-02-17 Rusty Conover <rconover@zootweb.com> - - * e-cell-tree.c (ect_max_width): Change the calculation of the - maximum with of tree cell, from O(n^2) to O(n), we don't need to - continually recalculate the maximum width of the subcells when - calculating the width of every row. - -2001-02-17 Christopher James Lahey <clahey@ximian.com> - - * e-table.c (et_real_construct): Removed setting of invalid - "horizontal_scrolling" argument. - - * e-table-column-model.h: Removed this as it is not used. - -2001-02-17 Christopher James Lahey <clahey@ximian.com> - - From a patch submitted by Murray Cumming <Murray.Cumming@mybau.com> - - * e-cell-checkbox.h, e-cell-date.h, e-cell-number.h, - e-cell-size.h, e-cell-text.h, e-cell-toggle.h, e-cell-tree.h, - e-cell.h, e-table-click-to-add.h, e-table-col-dnd.h, - e-table-col.h, e-table-column-specification.h, - e-table-config-field.h, e-table-config.h, e-table-defines.h, - e-table-extras.h, e-table-field-chooser-item.h, - e-table-group-container.h, e-table-group-leaf.h, e-table-group.h, - e-table-header-item.h, e-table-header-utils.h, e-table-header.h, - e-table-item.h, e-table-model.h, e-table-one.h, - e-table-selection-model.h, e-table-simple.h, e-table-sort-info.h, - e-table-sorted-variable.h, e-table-sorted.h, e-table-sorter.h, - e-table-specification.h, e-table-state.h, - e-table-subset-variable.h, e-table-subset.h, e-table-tooltip.h, - e-table-tree.h, e-tree-model.h, e-tree-simple.h, - e-tree-sorted-variable.h: Added GNOME_DECLS. - -2001-02-15 Christopher James Lahey <clahey@ximian.com> - - * e-table-selection-model.c - (e_table_selection_model_do_something): Made it so that if you set - the row or col to something not equal to -1, it makes sure that - the other one is also not equal to -1. - -2001-02-13 Christopher James Lahey <clahey@ximian.com> - - * e-table-header.c, e-table-header.h - (e_table_header_update_horizontal): This new function updates the - minimum width of all of the columns based on the data contained in - that column. - - * e-table.c, e-table.h (changed_idle): Added a - horizontal_scrolling field. Call e_table_header_update_horizontal - if the model changes at all and horizontal_scrolling is set to TRUE. - -2001-02-13 Christopher James Lahey <clahey@ximian.com> - - * e-table-scrolled.c (e_table_scrolled_real_construct): Set policy - of scrolled window to be automatic/automatic. - - * e-table-specification.c, e-table-specification.h (etsp_init): - Added a horizontal-scrolling attribute. - -2001-02-13 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_destroy): Fix the crash when ETableItems are - destroyed. - -2001-02-11 Christopher James Lahey <clahey@ximian.com> - - * e-table-selection-model.c (change_one_row): Fix selection so - that changing a model row equal to 31 mod 32 works. - -2001-02-11 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (eti_cursor_change): Let - e_canvas_item_show_area_delayed deal with a delayed area show - instead of dealing with it ourselves. - -2001-02-08 Dan Winship <danw@ximian.com> - - * e-table-sorter.c (ets_set_arg): Add a missing gtk_object_ref. - -2001-02-08 Christopher James Lahey <clahey@ximian.com> - - * e-cell-number.c (ecn_get_text): Use e_format_number. - -2001-02-08 Christopher James Lahey <clahey@ximian.com> - - * e-table.c (e_table_setup_header): Set the dnd_code on the header - properly. - -2001-02-08 Christopher James Lahey <clahey@ximian.com> - - * e-tree-model.c, e-tree-model.h (e_tree_model_show_node): Added - this function. Made frozen an int so that recursive freezes and - thaws behaves properly. - -2001-02-06 Christopher James Lahey <clahey@ximian.com> - - * e-cell-date.c (ecd_get_text): Change encoding from locale - encoding to utf8. - -2001-02-05 Christopher James Lahey <clahey@helixcode.com> - - * e-table-header-item.c: Changed the text to pop up the Field - Chooser. - -2001-02-05 Christopher James Lahey <clahey@helixcode.com> - - * e-table-config.c, e-table-config.h (dialog_apply): Added a - "changed" signal. - - * e-table-sort-info.c, e-table-sort-info.h - (e_table_sort_info_duplicate): Added this function. - - * e-table.c (e_table_set_state_object): Duplicate the state's - sort_info object here. - -2001-02-04 Christopher James Lahey <clahey@ximian.com> - - * e-table-item.c (view_to_model_col): Make this not error out if - ecol is not found, but simply return -1. - (eti_event): Don't call view_to_model_col here as we already have - a model column. - -2001-02-02 Not Zed <NotZed@Ximian.com> - - * e-table-selection-model.c (model_row_deleted): Dont overwrite - the end of our bitmap array. - - -2001-02-03 Ettore Perazzoli <ettore@ximian.com> - - * e-table-sorter.c: Make `vals_closure', `cols_closure', - `ascending_closure' and `compare_closure' static! - -2001-02-02 Not Zed <NotZed@Ximian.com> - - * e-cell-tree.c (ect_draw): If we are drawing a top-level tree - node, without any children then dont offset it for the expansion - image it doesn't need. - -2001-01-31 Larry Ewing <lewing@ximian.com> - - * e-table-item.c (view_to_model_col): make the segfault caused by - double clicking into a critical warning until it can be fixed. - -2001-01-30 Christopher James Lahey <clahey@helixcode.com> - - * e-table-click-to-add.c (etcta_event): Made the contained - %ETableItem have cursor_mode as %E_TABLE_CURSOR_SPREADSHEET. - - * e-table-defines.h, e-table-item.c, e-table-specification.c: - Added a new cursor mode E_TABLE_CURSOR_SPREADSHEET. This is - accessed using cursor_mode="spreadsheet" in your specification - xml, as well as by the click_to_add item. It is identical to - E_TABLE_CURSOR_SIMPLE, except that tab goes to the next item in - the table instead of to the next widget. - -2001-01-30 Christopher James Lahey <clahey@helixcode.com> - - * e-table-click-to-add.c (etcta_event): Made carriage return - finish editing. - - * e-table-item.c (eti_event): Made carriage return key press - signal go out before sending it to the selection model. - -2001-01-29 Christopher James Lahey <clahey@ximian.com> - - * Makefile.am: Added e-cell-number.c and e-cell-number.h. - - * e-cell-number.c, e-cell-number.h: A new cell for rendering - numbers. - - * e-table-extras.c (ete_init): Added a default number cell. Made - the default size cell right aligned. - -2001-01-28 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c, e-table-item.h: Made the scrolling to show the - current roll happen in a time out. - -2001-01-27 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c (eti_event): Make home and end keys move to the - beginning and end of the row if cursor mode is set to - E_TABLE_CURSOR_SIMPLE. Otherwise have %ETableSelectionModel - handle them. - - * e-table-selection-model.c, e-table-selection-model.h: Added a - "cursor_mode" argument. - (e_table_selection_model_key_press): Made home and end keys move - the beginning and end of the table if cursor_mode is - E_TABLE_CURSOR_MODE_LINE. - - * e-table.c: Set the cursor-mode argument of our - %ETableSelectionModel. - -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.) - -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. - -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. - -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. - -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. - -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. - -2001-01-20 Iain Holmes <iain@ximian.com> - - * e-cell-text.c (ect_show_tooltip): Unref some stuff if we're not - showing the tip. Fix a bigish memory leak. - -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. - -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. - -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. - -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. - -2001-01-17 Miguel de Icaza <miguel@gnu.org> - - * e-table-specification.c (e_table_specification_duplicate): - Remove annoying printf. A clean output is a good output. - -2001-01-17 Dave Camp <dave@ximian.com> - - * e-table-config.c: Removed #inclusion of e-table-config-field.h. - -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-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. - -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. - -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. - - (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-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. - -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. - -2001-01-14 Miguel de Icaza <miguel@ximian.com> - - * e-table-config.h: Change parent to be a GtkObject from - GnomeDialog. - -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. - - (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. - - * e-table-header-item.c (ethi_change_sort_state): Moved the - sort-on-click logic to its own function. - - * e-table-sort-info.c (e_table_sort_info_freeze): Increment frozen - rather than setting to 1. - (e_table_sort_info_thaw): Decrement frozen instead of setting to 0 - to allow recursive freezing. - (e_table_sort_info_freeze): Add inline docs. - (e_table_sort_info_thaw): Add inline docs. - -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. - -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. - -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. - -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. - -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. - -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. - -2000-12-27 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c (ect_draw, ect_event): Removed a bunch of unused - code. - -2000-12-25 Miguel de Icaza <miguel@helixcode.com> - - * e-cell-text.c (ect_show_tooltip): Set draw_background to FALSE. - - * e-table-group-container.c (etgc_add): ditto. - - * e-table-click-to-add.c (etcta_realize): ditto. - (e_table_click_to_add_commit): ditto. - -2000-12-24 Chris Toshok <toshok@helixcode.com> - - * e-cell-tree.c: add api docs. - - * e-tree-simple.c: add api docs. - -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. - -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. - -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. - -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. - -2000-12-14 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c (eti_realize): Commented out an unused variable - to fix a warning. - -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. - -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. - -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. - -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. - -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. - -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. - -2000-12-11 Dan Winship <danw@helixcode.com> - - * e-table-item.c (eti_event): Emit double_click signal with the - model column, not the view column. - -2000-12-11 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c (ect_draw): Made selected rows ignore their color - specification. - -2000-12-09 Federico Mena Quintero <federico@helixcode.com> - - * e-table-sorted.c (e_table_sorted_new): Unref the object instead - of destroying it. - - * e-table-sorted-variable.c (e_table_sorted_variable_new): Likewise. - - * e-table-subset.c (e_table_subset_new): Likewise. - - * e-table-subset-variable.c (e_table_subset_variable_new): Likewise. - -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.) - -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. - -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. - -2000-12-08 Miguel de Icaza <miguel@helixcode.com> - - * e-table-col.h: Arranged to get it to work with gtk-doc. - - * e-cell.h: Arranged to get it to work with gtk-doc. - - * doc: Added gtk-doc framework - -2000-12-08 JP Rosevear <jpr@helixcode.com> - - * e-table-state.c (etst_destroy): If there are columns allocated, - free them upon a destroy. - -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. - -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". - -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. - -2000-12-06 Dan Winship <danw@helixcode.com> - - * 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.) - -2000-12-06 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c, e-cell-toggle.c, e-cell-tree.c: Adapted these to - accept the new flags parameter to e_cell_event. - - * e-cell.c, e-cell.h: Added a flags parameter to e_cell_event. - - * e-table-item.c: Send all e_cell_event calls a E_CELL_EDITABLE - flag. Add a new e_cell_event to the button press event that - happens before selecting the appropriate row and which does not - have the E_CELL_EDITABLE flag set. - -2000-12-06 Christopher James Lahey <clahey@helixcode.com> - - * e-table-header-utils.c: Fixed warning in compute_elision_length. - - * e-table-header.c, e-table-header.h: Removed - e_table_header_selection_ok method here. - -2000-12-06 Chris Toshok <toshok@helixcode.com> - - * e-table-item.c (_do_tooltip): pass along the column's width to - e_cell_show_tooltip. - - * e-cell-text.c (ect_show_tooltip): add col_width argument, and - set cell.width = col_width - 8 (to mimic what happens in - build_current_cell, but with a possibly altered width). - - * e-cell.c (e_cell_show_tooltip): add col_width argument, and pass - along to virtual function. - (ec_show_tooltip): add col_width argument. - - * e-cell.h: change prototype of e_cell_show_tooltip to include a - width parameter. - - * e-cell-tree.c (ect_show_tooltip): send the width - the subcell's - offset to e_cell_show_tooltip. - -2000-12-05 JP Rosevear <jpr@helixcode.com> - - * e-tree-model.c (e_tree_model_node_remove): Move the correct - offset when memmoving. Patch provided by Richard Hult - <rhult@hem.passagen.se>. - -2000-12-04 Chris Toshok <toshok@helixcode.com> - - * e-table-selection-model.c (e_table_selection_model_select_all): - need to zero out the bits corresponding to the rows not selected - in the last full 32 bit mask. This fixes a crash in the subscribe - UI (or potentially anywhere that uses - selection_model_select_all/selection_model_foreach.) - -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]. - -2000-11-25 Miguel de Icaza <miguel@helixcode.com> - - * e-cell.c: Documented. - -2000-11-25 Christopher James Lahey <clahey@helixcode.com> - - * e-table-col.c: Removed e_table_col_get_arrow and - e_table_col_set_arrow. - -2000-11-24 Miguel de Icaza <miguel@helixcode.com> - - * e-cell-toggle.c (etog_queue_redraw): Documented. - - * e-cell-text.c: Removed list of unused arguments. Add docs. - - * e-cell-checkbox.c (e_cell_checkbox_new): Add docs. - - * e-table-simple.c (e_table_simple_new): Add docs. - - * e-table-header.c: inline documentation added. - - * e-table-col.c Added inline documentation. - - * e-table-model.c: Added some inline documentation. - -2000-11-21 Federico Mena Quintero <federico@helixcode.com> - - * e-cell.c (e_cell_event): Do not ignore the return value from - ECell::event(); return it instead. - - * e-cell-tree.c (ect_event): Use the return value from e_cell_event(). - * e-table-item.c (eti_event): Likewise. - -2000-11-06 Christopher James Lahey <clahey@helixcode.com> - - * e-table-header-item.c: Changed this to match the new EPopupMenu - structre. - -2000-11-03 Not Zed <NotZed@HelixCode.com> - - * e-tree-model.c (e_tree_model_node_insert): Since we insert at - the parent->child position, we need to account for expanded nodes - above this node to properly calculate the absolute row position of - the node. - (e_tree_model_node_insert): If we're inserting at the end of this - node, then we just use the position directly. - (e_tree_model_node_remove): Completely rewritten. Now we delete - all nodes at once, which should be >> faster, unfortunately still - have to signal each removal, which is >> SLOW :( Its still about - 2-3x faster than it was (for 25K nodes). - (child_free): Free all data/subnodes of a given path, no - unlinking. - (e_tree_model_node_remove): If we are removing a lot of nodes - [>1000 or >1/4 total nodes], then use model_changed, rather then - removing each node. Yay. Now its about 500x faster than it was, - for 25K nodes. - (etree_pre_change): Signal handler, so we can find out when we are - in a pre-change state. - (etree_changed): Likewise to find when we have finished. - (e_tree_model_construct): Link to the model*changed signals so we - know when we are in pre/changed state. - (e_tree_model_node_insert): Only perform a row_inserted if not in - pre_change state. Another significant speed improvement (200-500%) - on big trees. - (e_tree_model_node_remove): Do not emit row_deleted (or - model_changed), if we are in the pre_change state. - (add_visible_descendents_to_array): Likewise for row_inserted. - (e_tree_model_node_sort): And here too, for consistency. - -2000-11-03 Christopher James Lahey <clahey@helixcode.com> - - * e-table-selection-model.c: Turned on proper handling of insert - and delete. - -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 - -2000-10-27 Not Zed <NotZed@HelixCode.com> - - * e-tree-model.c (e_tree_model_node_insert): If we are inserting - into the root level, we dont have to search the whole array for a - parent node we'll never find. - -2000-10-25 Dan Winship <danw@helixcode.com> - - * e-table-scrolled.c: Add "click" to the list of etable signals we - proxy. - -2000-10-25 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Made the column on the right click and click - signals be the model column instead of the view column. - -2000-10-25 Chris Toshok <toshok@helixcode.com> - - * e-tree-model.c (e_tree_model_node_remove): remove the save_id - here, so we don't save state for nodes that no longer exist. - (etree_destroy): remove the foreach, since all the save_id's - should have been removed by now (don't destroy a tree without - destroying the root node.) also, make sure to call - g_hash_table_destroy. - -2000-10-24 Chris Toshok <toshok@helixcode.com> - - * e-tree-model.c: make ETreeModel opaque, and switch from using - g_new0 and g_free for ETreePath's to using g_mem_chunk routines. - (e_tree_model_node_remove): free the path's save_id. * - (e_tree_model_set_expanded_default): add method to add default - expanded status for parent nodes. - (etree_set_expanded_recurse): make this more efficient. - e-tree-model.h: make ETreeModel opaque. add prototype for - e_tree_model_set_expanded_default. - -2000-10-23 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Destroy the tooltip timeout on object - destruction. - -2000-10-22 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Made it so that it doesn't recalculate all the - rows if a row is changed, inserted or deleted. - - * e-table-subset.c: Added debugging code (turned off). - -2000-10-21 Christopher James Lahey <clahey@helixcode.com> - - * e-table-sorted-variable.c: Made it so that rows inserted with - their children nodes already in the tree get placed before their - children nodes instead of after. - -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. - -2000-10-19 Dan Winship <danw@helixcode.com> - - * e-table-sorted-variable.c (etsv_destroy): Remove insert_idle - timeout. - -2000-10-18 Christopher James Lahey <clahey@helixcode.com> - - * e-table-state.c: Switched to saving the version as a double - instead of a string. - -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. - -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. - -2000-10-18 Christopher James Lahey <clahey@helixcode.com> - - * e-table-subset.c, e-table-subset.h: Sped up signal propogation. - -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. - -2000-10-18 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Make background color of ETable match the background - color of item rows. - -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. - -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. - -2000-10-16 Iain Holmes <iain@helixcode.com> - - * e-table-header-item.c (e_table_header_item_get_height): New function - that works out the height of the header from the max height of the - buttons. - (ethi_add_table_header): Recalc the height of the header. - (ethi_font_set): Ditto. - (draw_button): Only draw the arrow if there's enough room. - -2000-10-16 Christopher James Lahey <clahey@helixcode.com> - - * e-table-header-item.c: Reworked some of the height stuff? - -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. - -2000-10-15 Chris Toshok <toshok@helixcode.com> - - * e-tree-model.c (e_tree_model_node_traverse): get the next child - before traversing/calling func. - -2000-10-15 Chris Toshok <toshok@helixcode.com> - - * e-tree-model.c: get rid of ENode type, as everything in it is - now in ETreePath, and add parent/sibling/child pointers to - ETreePath. everywhere where GNode/ENode were used, we just use - ETreePath now. - (e_tree_path_depth): new function. - (e_tree_path_insert): new function. - (e_tree_path_unlink): new function. - (e_tree_model_node_traverse): new function. - (etree_get_first_child): new virtual function impl. - (etree_get_last_child): same. - (e_tree_model_class_init): fill in function pointers for - get_first_child/get_last_child. - (e_tree_model_node_get_first_child): new function. - (e_tree_model_node_get_last_child): new function. - (e_tree_model_node_depth): g_node_depth -> e_tree_path_depth. - (e_tree_model_node_insert): modify to use ETreePath and new - e_tree_path functions. Prepends and appends are now both constant - time. - (child_remove): modify for e_tree_model_node_traverse. - (e_tree_model_node_remove): same, and use e_tree_path functions. - (e_tree_model_node_insert_before): add a loop here to figure out - the position, since it's the only place we care about the child - position. - (e_tree_model_node_sort): rework to accomodate new e_tree_path - functions, and put the e_tree_model_node_set_expanded calls in a - separate loop after all the children have been added. - - * e-tree-model.h: add prototypes and virtual functions for more - tree traversal operations (get_first_child, get_last_child), as - well as a new function to traverse depth first the descendents of - a node (e_tree_model_node_traverse), much like g_node_traverse - (G_IN_ORDER). Also, ETreePath is an opaque type now, and is not a - GNode. - - -2000-10-13 Ettore Perazzoli <ettore@helixcode.com> - - * e-table-state.c (e_table_state_save_to_file): NULL is not a - valid argument to `xmlNewDoc'. Was this code ever tested? - -2000-10-13 Christopher James Lahey <clahey@helixcode.com> - - * e-table-example-1.c, e-table-example-2.c, e-table-size-test.c, - test-table.c: Fixed these to use the new ascending attribute as a - boolean instead of an int. - - * e-table-sort-info.c: Changed the ascending attribute to a - boolean ("true"/"false") instead of an int (1/0). - -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. - -2000-10-12 Jeffrey Stedfast <fejj@helixcode.com> - - * e-table-item.c: when there are 0 columns, don't assert. - -2000-10-12 Iain Holmes <iain@helixcode.com> - - * e-cell-text.c (ect_new_view): Ref the style font. - -2000-10-11 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Make saving state work properly. - -2000-10-11 Christopher James Lahey <clahey@helixcode.com> - - * e-table-specification.c: Fixed the parity on the cursor-mode - check. - -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. - -2000-10-11 Christopher James Lahey <clahey@helixcode.com> - - * spec.xml: Example spec file. Not used. Just an example of what - you can do. - - * 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. - -2000-10-10 Iain Holmes <iain@helixcode.com> - - * e-table-header-item.c (draw_button): Only draw the arrow if - there is room for it and the pixbuf. - -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 Zach Frey <zfrey@lanich.com> - - * Makefile.am: Fix make distcheck. - -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. - -2000-10-04 Not Zed <NotZed@HelixCode.com> - - * e-table-sorted-variable.c (etsv_add): Changed to take into - account the sort group, if the table has one.x - (etsv_insert_idle): Clear the insert count if we hit an idle loop. - (etsv_sort_idle): Reset the insert count if we perform a sort. - (etsv_add): If we are adding a lot (>ETSV_INSERT_MAX) items, - without hitting an idle loop, assume we're better off performing a - sort instead. Use another idle handler to reset the count. - -2000-10-04 Jeffrey Stedfast <fejj@helixcode.com> - - * e-table-selection-model.c - (e_table_selection_model_invert_selection): Emit the - selection/cursor "changed" signals. - (e_table_selection_model_select_all): Same. - -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. - -2000-10-03 Not Zed <NotZed@HelixCode.com> - - * e-table-sorted-variable.c (etsv_sort_by_group): Sort based on - the sort_group stuff. - - * e-tree-model.c (e_tree_init): Setup the group sort info string. - (etree_destroy): And free it. - (build_sort_group): Build a string for this node. - -2000-10-02 Chris Toshok <toshok@helixcode.com> - - * e-tree-model.h: change/add prototypes and a typedef for - ETreePathCompareFunc. - - * e-tree-model.c (e_tree_model_node_set_compare_function): new - function, used to set the comparison function for sorted nodes. - Eventually sorting entail just calling this function, with the - tree maintaining the sort. - - (e_tree_model_node_sort): use a helper function - (e_tree_model_node_compare) to allow the e-tree user's comparison - function to take mode reasonable paramaters. also, fix it so the - previous expanded state is kept with the node. i can't believe i - wrote it the way it originally was. also, don't take the - comparison function here. it's set in - e_tree_model_node_set_compare_function. - -2000-10-02 Chris Toshok <toshok@helixcode.com> - - * e-tree-model.c (e_tree_model_node_sort): don't screw things up - if we sort a collapsed node. - -2000-10-02 Chris Toshok <toshok@helixcode.com> - - * tree-unexpanded.xpm: flip black and gray, the way i intended them to be. - - * tree-expanded.xpm: same. - -2000-10-02 Chris Toshok <toshok@helixcode.com> - - * tree-expanded.xpm: reinstate file. - - * tree-unexpanded.xpm: same. - - * e-tree-example-1.c (main): remove calls to e_cursor_*, and don't - create pixbufs. let's the tree give us the defaults. - - * e-tree-model.c (e_tree_model_node_changed): call - e_table_model_row_changed on the node's row (if it's visible). - (e_tree_model_node_inserted): call e_table_model_row_inserted on - the new node's row, if it's visible. - (e_tree_model_node_removed): call e_table_model_row_removed on the - old node's row, if it was visible. - - * e-cell-tree.c (e_cell_tree_construct): allow open_pixbuf and - closed_pixbuf to be NULL, and default them to the xpm data in - rtee-{un}expanded.xpm. - (ect_destroy): call gdk_pixbuf_unref on our open/closed pixbufs. - - * tree-expanded.xpm, tree-unexpanded.xpm: make the + and - a - little lighter than straight black. - -Fri Sep 29 10:05:58 2000 Christopher James Lahey <clahey@helixcode.com> - - * e-table.dia: Changed. - -Thu Sep 28 20:01:53 2000 Christopher James Lahey <clahey@helixcode.com> - - * e-table.dia: New file. Approximate UML description of ETable. - -2000-09-29 Not Zed <NotZed@HelixCode.com> - - * e-cell-tree.c (e_cell_tree_get_node): Changed to take the source - model, not the tree model. The source model may be a subset, and - it needs to remap the rows for us. - (ect_draw): - (ect_event): - (ect_max_width): - (ect_print): Changed callers. - - * e-table-sorted-variable.c (etsv_sort_subset): - (etsv_sort_build_subset): - (etsv_sort_free_subset): Functions to perfom grouping of sorts for - sorts that have row_sort_group returning useful info. - (etsv_sort): Use the complex sort routines if we need to. - - * e-table-model.c (e_table_model_row_sort_group): Return a sort-id - for a given row. - (e_table_model_has_sort_group): Return if the sort-id provides any - useful information. - -Tue Oct 3 18:28:09 2000 Christopher James Lahey <clahey@helixcode.com> - - * e-table-config.glade, e-table-config.glade.h: Put in 3 more - dialog boxes in these files. - -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-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. - -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. - -2000-09-25 Chris Toshok <toshok@helixcode.com> - - * gal/e-table/e-tree-model.h: add save_state stuff to ETreeModel, and - prototypes for the public methods. - - * gal/e-table/e-tree-model.c: add save_id to the ENode. - (expanded_remove_func): new function, iterator to delete the save - id's. - (etree_destroy): iterate over expanded_state. - (etree_set_expanded): if the node has a save id, make sure to - update both the collapsed and expanded counts. - (e_tree_model_node_insert_id): convenience function that inserts a - node and sets its id. - (e_tree_model_node_sort): remove extra spew. - (save_expanded_state_func): new function, iterator for saving - expanded state. - (e_tree_model_save_expanded_state): new function. - (get_string_value): helper function for loading. - (e_tree_model_load_expanded_state): new function. - (e_tree_model_node_set_save_id): sets the save id for a node, - adding it to the hashtable if it's not already there. if the id - was there previously, set the expanded flag of the node - accordingly. - -2000-09-24 Ettore Perazzoli <ettore@helixcode.com> - - * Makefile.am (INCLUDES): Put `$(top_srcdir)' on top so that we - include our own headers before the installed ones. Also add - `$(top_srcdir)/gal'. - -2000-09-24 Chris Toshok <toshok@helixcode.com> - - * gal/e-table/e-tree-model.c (e_tree_model_node_sort): fix sorting - need to - update the row_array as well as the actual structure of the - GNodes. - -2000-09-24 Ariel Rios <ariel@arcavia.com> - - * e-tree-model.c: Fix include typo. - -2000-09-21 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Typo caused readability problems with ETable. - -2000-09-18 Federico Mena Quintero <federico@helixcode.com> - - * test-table.c: - * test-cols.c: - * test-check.c: - * table-test.c: - * e-tree-simple.c: - * e-tree-simple.h: - * e-tree-model.c: - * e-tree-model.h: - * e-tree-example-2.c: - * e-tree-example-1.c: - * e-table.c: - * e-table.h: - * e-table-text-model.h: - * e-table-subset.c: - * e-table-subset.h: - * e-table-subset-variable.c: - * e-table-subset-variable.h: - * e-table-sorter.h: - * e-table-sorted.c: - * e-table-sorted.h: - * e-table-sorted-variable.c: - * e-table-sorted-variable.h: - * e-table-sort-info.c: - * e-table-size-test.c: - * e-table-simple.h: - * e-table-selection-model.c: - * e-table-selection-model.h: - * e-table-scrolled.h: - * e-table-one.h: - * e-table-item.c: - * e-table-item.h: - * e-table-header.h: - * e-table-header-item.c: - * e-table-header-item.h: - * e-table-group.c: - * e-table-group.h: - * e-table-group-leaf.c: - * e-table-group-leaf.h: - * e-table-group-container.c: - * e-table-group-container.h: - * e-table-field-chooser.c: - * e-table-field-chooser.c: - * e-table-field-chooser-item.c: - * e-table-field-chooser-item.h: - * e-table-field-chooser-dialog.c: - * e-table-field-chooser-dialog.h: - * e-table-example-2.c: - * e-table-example-1.c: - * e-table-config.c: - * e-table-col.c: - * e-table-col.h: - * e-table-click-to-add.c: - * e-table-click-to-add.h: - * e-cell.c: - * e-cell.h: - * e-cell-tree.c: - * e-cell-tree.h: - * e-cell-toggle.c: - * e-cell-toggle.h: - * e-cell-text.c: - * e-cell-text.h: - * e-cell-checkbox.h: Fix includes. - - * Makefile.am (INCLUDES): Fix header paths. - -2000-09-17 Iain Holmes <iain@helixcode.com> - - * e-table-item.c: Better calculations for tooltip - positionings. - - * e-cell-text.c: Same. - - * e-cell-tree.c: Same. - -2000-09-16 Iain Holmes <iain@helixcode.com> - - * e-cell-text.c (ect_show_tooltip): Removed g_print. - -2000-09-16 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c: Added some missing #includes. - - * e-cell-tree.c: Removed an unused variable. - - * e-table-item.c: Added some missing casts. - -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 Peter Williams <peter@beta.newton.cx> - - * e-cell-text.c (ect_draw): Typo fix. - -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. - -2000-09-11 Iain Holmes <iain@helixcode.com> - - * e-table-header-item.c (ethi_maybe_start_drag): Set maybe_drag - to FALSE. Seems to fix a crash for me. - (ethi_event): Handle the double click on the dividers. - - * e-table-header.c (e_table_header_class_init): Add a - "request_width" signal. - - * e-table-item.c (eti_add_header_model): Connect to the - "request_width" signal. - (eti_request_column_width): Call the e_cell_max_width on the - appropriate column. - - * e-cell.c (e_cell_max_width): Call the max_width method. - - * e-cell-text.c (ect_max_width): Calculate the max width. - - * e-cell-toggle.c (etog_max_width): Calculate the max width. - - * e-cell-tree.c (ect_max_width): Same. - -2000-09-11 Iain Holmes <iain@helixcode.com> - - * e-table-header-item.c (ethi_drag_motion): Check if the - type of the dragged item is a etable header item. - -2000-09-11 Iain Holmes <iain@helixcode.com> - - * e-table-header-item.c (set_cursor): Check if the column - is resizeable before setting the cursor to E_CURSOR_SIZE_X - -2000-09-11 Iain Holmes <iain@helixcode.com> - - * e-table-header-item.c: Use the font and button drawing - from the theme. - - * e-table.c: Use the height of the font to set the size for - the header_canvas, instead of hard coding it to 16 - -2000-09-11 Ettore Perazzoli <ettore@helixcode.com> - - * Makefile.am (tree_example_2_LDADD): Add `$(GNOME_VFS_LIBS)' and - `$(OAF_LIBS)'. - (INCLUDES): Add `$(GNOME_VFS_CFLAGS)' and - `$(GNOME_BONOBO_CFLAGS)'. - -2000-09-11 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c: Made bold text calculate widths properly. - -2000-09-11 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Made page up and page down active in the ETable. - -2000-09-09 Christopher James Lahey <clahey@helixcode.com> - - * e-tree-simple.c: Fixed the ETableModel callbacks. - -2000-09-08 Christopher James Lahey <clahey@helixcode.com> - - * e-tree-example-1.c: Added base ETableModel functions. - - * e-tree-example-2.c: Added base ETableModel functions. Made it - never return NULL as a string, instead return "". - - * e-tree-simple.c, e-tree-simple.h: Require base ETableModel - functions. - -2000-09-01 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c, e-table.c: Fixed a leak and a double unref. - -2000-09-01 Chris Toshok <toshok@helixcode.com> - - * e-tree-example-2.c: new test, a home grown 2 hour hack of a file - browser. uses node_collapsed/emitted signals to populate the left - tree. - - * Makefile.am: add tree-example-2.c stuff. - - * .cvsignore: add tree-example-2 - -2000-09-01 Chris Toshok <toshok@helixcode.com> - - * e-tree-model.h: add signals/prototypes for - e_tree_model_node_collapsed and e_tree_model_node_expanded. - - * e-tree-model.c (etree_set_expanded): emit - node_expanded/node_collapsed signals, with node_expanded happening - before the expansion so it can much with the children, and - collapsed being emitted after. - (e_tree_model_row_of_node): remove stupid check, and g_warning. - (e_tree_model_node_collapsed): new function. - (e_tree_model_node_expanded): new function. - -2000-08-31 Richard Hult <rhult@codefactory.se> - - * e-tree-example-1.c (create_tree): Don't show the root node. - Also quit when the window is closed. - (my_icon_at): Don't use icons here since the cell tree renderer takes - care of the +/- signs itself. This stops the tree example from showing - two sets of expand/unexpand icons at every node. - -2000-08-31 Christopher James Lahey <clahey@helixcode.com> - - * e-table-selection-model.c: Made the selection work when shift - clicking on the first row of the table. - -2000-08-28 Ettore Perazzoli <ettore@helixcode.com> - - * e-table.c (et_destroy): Don't try to destroy the `header_canvas' - if NULL. - - * e-table-group-leaf.c (etgl_set_cursor_row): If the item is NULL, - don't try to set the cursor row for it. - - * e-table.c (set_scroll_adjustments): Don't set the adjustment for - the `header_canvas' unless the `header_canvas' is not NULL. - - * e-tree-model.c (e_tree_model_row_of_node): If the node is the - root, just return -1 without emitting a warning. - -2000-08-28 Christopher James Lahey <clahey@helixcode.com> - - * e-table-group-container.c: Make printing of groups work better - and make them print headers. - - * e-table-item.c: Turn off alternating row support. - -2000-08-25 Christopher James Lahey <clahey@helixcode.com> - - * e-table-col.c, e-table-config.c, e-table-header.c, - e-table-text-model.c: Added some g_return_if_fails and - g_return_val_if_fails. - -2000-08-24 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Fix an off by one error that was causing crashes. - -2000-08-24 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Set default values for all of the signal emissions. - -2000-08-24 Christopher James Lahey <clahey@helixcode.com> - - * e-table-selection-model.c: Check for selection->selection being - NULL in e_table_selection_model_selected_count. - -2000-08-24 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Pay attention to the return value from the click - signal. - -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. - -2000-08-24 Christopher James Lahey <clahey@helixcode.com> - - * e-table-scrolled.c, e-table-scrolled.h, e-table.c: Added - g_return_if_fails. - -2000-08-24 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c, e-cell-toggle.c, e-cell-tree.c, e-cell.c, - e-cell.h, e-table-col.c, e-table-col.h, e-table-item.c: Added - infrastructure for setting the justification of columns. Still - need to change the cells to support it and need to add user - interface to change the justification. - -2000-08-23 Christopher James Lahey <clahey@helixcode.com> - - * e-table-subset-variable.c: Fixed a bug in - e_table_subset_variable_increment that causes problems with - ETree's. Specifically, when you incremented at position x, the - row x didn't get incremented as it should (s/>/>=/.) - -2000-08-22 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c, e-cell-toggle.c, e-cell-tree.c, e-table-item.c: - Moved drawing of the cell backgrounds from ECell into ETableItem. - - * e-tree-model.c: Include stdlib.c. - -2000-08-21 Lauris Kaplinski <lauris@helixcode.com> - - * e-cell-text.c: Changed UTF-8 syntax from char based to byte based - -2000-08-22 Chris Toshok <toshok@helixcode.com> - - * Makefile.am (icons): remove tree-expanded.xpm and - tree-unexpanded.xpm. - - * e-tree-example-1.c: use art/tree-expanded.xpm and - art/tree-unexpanded.xpm. - (remove_node): commit the change listed below (08-21). - - * tree-expanded.xpm: removed. - - * tree-unexpanded.xpm: removed. - -2000-08-21 Lauris Kaplinski <lauris@helixcode.com> - - * e-cell-text.c (ect_event): Use e_utf8_from_gtk_event_key to translate - GDK_KEY_PRESS event to insertable UTF-8 string - -2000-08-21 Chris Toshok <toshok@helixcode.com> - - * e-tree-example-1.c (remove_node): we can remove nodes with - children now. - - * e-tree-model.h: add prototype for e_tree_model_node_sort. - - * e-tree-model.c (etree_set_expanded): if the node is invisible, - just set its expanded flag and return. - (e_tree_model_root_node_set_visible): call set_expanded before we - remove it from the row array or else the aforementioned change - will result in nothing happening. - (e_tree_model_node_insert): use a position of -1 as "append". - (e_tree_model_node_insert): if the model was marked with - root_visible == FALSE, make sure to set it's expanded flag to TRUE - when the root node is inserted. - (e_tree_model_node_sort): new function. - -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. - -2000-08-20 Christopher James Lahey <clahey@helixcode.com> - - * e-table-selection-model.c, e-table-selection-model.h: Added - e_table_selection_model_selected_count. - -2000-08-19 Lauris Kaplinski <lauris@helixcode.com> - - * e-cell-text.c: Use EFont wrapper - Use UTF-8 strings - -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. - -2000-08-09 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c, e-table-selection-model.c, - e-table-selection-model.h: Make right click select if the current - row is not selected. - -2000-08-08 Miguel de Icaza <miguel@helixcode.com> - - * e-table-header-item.c: Tag some strings for translation. - -2000-08-05 Dan Winship <danw@helixcode.com> - - * e-table.c (e_table_get_{next,prev}_row_sorted): fix - -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. - -2000-08-05 Christopher James Lahey <clahey@helixcode.com> - - * e-table-sorter.c: Made it so that selection ranges work even if - the table is using grouping. - -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. - -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.) - -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. - -2000-08-04 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: - Made drag events calculate a row and column and signal that - information. - - * e-table-selection-model.c, e-table-selection-model.h: Changed - do_something to take a GdkModifierType. - -2000-08-02 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c, e-table-item.h: Add a handler for - "model_pre_change" and properly stop editing. - - * e-table-model.c, e-table-model.h: Added a "model_pre_change" - signal that gets sent before any row numbers are changed. - - * e-table-sorted-variable.c, e-table-subset-variable.c: Emit - "model_pre_change" signals as appropriate. - - * e-table-subset.c, e-table-subset.h: Proxy "model_pre_changed" - signals. - -2000-08-02 Christopher James Lahey <clahey@helixcode.com> - - * e-table-model.c, e-table-model.h: Changed the API for the - append_row function. Now accepts a model to copy data from - instead of returning a row number and leaving it up to ETableOne - to copy the data in. - - * e-table-one.c, e-table-one.h: Adapted to use new append_row API. - - * e-table-simple.c, e-table-simple.h, e-table-subset.c: Adapted to - supply new append_row API. - -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. - -2000-07-29 Christopher James Lahey <clahey@helixcode.com> - - * e-table-click-to-add.c: Made enter key destroy and recreate the - ETableItem. - - * e-table-item.c: Grab focus when person clicks even if cursor - isn't changing. - -2000-07-28 Dan Winship <danw@helixcode.com> - - * e-table-header.c (eth_destroy): Remove the idle handler before - destroying the data it operates on. - -2000-07-27 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Fixed up the table behavior so that it's not - always in an edit mode. - -2000-07-27 Christopher James Lahey <clahey@helixcode.com> - - * e-table-selection-model.c: Added a comment. - -2000-07-27 Christopher James Lahey <clahey@helixcode.com> - - * e-table-selection-model.c: Fixed shift click selections. - -2000-07-27 Christopher James Lahey <clahey@helixcode.com> - - * e-table-selection-model.c: Allocate correctly in the insert and - delete methods. - - * e-table-click-to-add.c: Removed the line that was causing this - to do bad things. - -2000-07-27 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c (eti_cursor_change): Grab focus properly. - - * e-table-item.c, e-table-click-to-add.c: Fixed ETableClickToAdd - to handle carriage return. This still doesn't quite work right. - -2000-07-27 Christopher James Lahey <clahey@helixcode.com> - - * e-table-click-to-add.c: Clear the selection model when - activating. - - * e-table-item.c: Fixed a bunch of model column vs. view column - issues. - - * e-table-selection-model.c: Set the cursor to -1, -1 and emi a - "cursor_changed" signal. - -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. - -2000-07-26 Christopher James Lahey <clahey@helixcode.com> - - * e-table-click-to-add.c, e-table-click-to-add.h: Added an - ETableSelectionModel so this won't crash. - -2000-07-26 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Fixed the model/view row confusion. - - * e-table-selection-model.c: Changed one expression to use a - #define properly. - -2000-07-26 Christopher James Lahey <clahey@helixcode.com> - - * e-table-group-container.c, e-table-group-container.h, - e-table-group-leaf.c, e-table-group-leaf.h: Added "table_selection_model" - argument. Removed foreach function and selection notification. - - * e-table-group.c, e-table-group.h: Removed foreach function and - selection notification. - - * e-table-header.c: Fixed header width calculation to include the - last column. - - * e-table-item.c, e-table-item.h: Fixed this to use the new - selection model. - - * e-table-scrolled.c, e-table-scrolled.h: Removed selection - notification. - - * e-table-selection-model.c, e-table-selection-model.h: Finished - notification signals and fixed a bunch of bit manipulations. - Implemented do_something method. - - * e-table.c, e-table.h: Create an ETableSelectionModel and use it - properly. - -2000-07-25 Christopher James Lahey <clahey@helixcode.com> - - * e-table-selection-model.c: Made foreach call the callback in top - to bottom order. - -2000-07-25 Christopher James Lahey <clahey@helixcode.com> - - * e-table-selection-model.c, e-table-selection-model.h: Replaced - get_selection_list with foreach. - - * e-table.h: Add a ETableSelectionModel. - -2000-07-25 Christopher James Lahey <clahey@helixcode.com> - - * Makefile.am: Added e-table-selection-model.c and - e-table-selection-model.h. - - * e-table-selection-model.c: Added the get_selection_list and - is_row_selected functions. Removed some unused code. - - * e-table-selection-model.h: Removed some unused code. - -2000-07-25 Christopher James Lahey <clahey@helixcode.com> - - * e-table-selection-model.c: Added comments to the bit field code. - - * e-table-selection-model.h: Made the selection data guint32s. - -2000-07-25 Christopher James Lahey <clahey@helixcode.com> - - * e-table-selection-model.c: More fixes. - -2000-07-25 Christopher James Lahey <clahey@helixcode.com> - - * e-table-selection-model.c: Fixed up the bit manipulation a bit - here. - -2000-07-25 Christopher James Lahey <clahey@helixcode.com> - - * e-table-selection-model.c, e-table-selection-model.h: New files - for doing a selection model. Not finished yet and thus not in - Makefile.am. - - * e-table.c, e-table.h: Renamed the new dnd signals so that they - won't conflict with the widget signals. - -2000-07-25 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c, e-table.h: Implemented some of the drag & drop code. - Drops all report as being on row 0, col 0. Also, automatic drags - don't set the row and column being dragged from. - -2000-07-23 Damon Chaplin <damon@helixcode.com> - - * e-cell-text.c: added a color_column where the color can be specified - as a string, e.g. "red" or "rgb:F/0/0". - - * e-cell-text.c (ect_leave_edit): don't call unbuild_current_cell() - since the CellEdit struct has been freed in ect_stop_editing() and so - has the text. - - * e-cell-text.c (unbuild_current_cell): set cell->text to NULL to make - sure we don't try to free it again. - -2000-07-21 Christopher James Lahey <clahey@helixcode.com> - - * e-table.h: Added some unused declarations for drag and drop - work. - -2000-07-18 Miguel de Icaza <miguel@helixcode.com> - - * e-tree-model.c (etree_destroy): Call our parent's destroy - method. - -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. - -2000-07-14 Michael Meeks <michael@helixcode.com> - - * e-table-subset.c (etss_destroy): g_free things we g_malloc. - -2000-07-13 Christopher James Lahey <clahey@helixcode.com> - - * e-table-header-item.c: Changed the background color of the - header. - -2000-07-12 Christopher James Lahey <clahey@helixcode.com> - - * e-table-header-item.c: Made scroll wheel work properly in - header. - -2000-07-10 Ettore Perazzoli <ettore@helixcode.com> - - * e-table.c (set_scroll_adjustments): Be safe if @vadjustment is - NULL. - - * e-table-scrolled.c (e_table_scrolled_init): Set policy and - shadow type. - (e_table_scrolled_real_construct): Don't set the adjustments. - (e_table_scrolled_new): Create the widget with `gtk_widget_new()' - and pass hadjustment/vadjustment NULL values so that we get the - `GTK_OBJECT_CONSTRUCTED' approval. - -2000-07-10 Ettore Perazzoli <ettore@helixcode.com> - - * e-table-scrolled.h: s/GtkTable/EScrollFrameClass/. - -2000-07-09 Christopher James Lahey <clahey@helixcode.com> - - * Makefile.am: Add e-table-scrolled.c and e-table-scrolled.h. - - * e-table-item.c: Make sure that find_cell returns FALSE if the - item doesn't have any cells. - - * e-table-scrolled.c, e-table-scrolled.h: Added a widget to - contain an ETable and provide scrollbars (for ease of use.) - - * e-table.c, e-table.h: Make this support the scrollable interface - and not contain its own scrollbars. - -2000-07-09 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c (eti_event): Put back e_cell_event sometimes when - we're not editing. - -2000-07-09 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Set the dnd_code to something non-null for the - ETableHeaderItem. - -2000-07-09 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Set header canvas scroll region correctly. - -2000-07-09 Anders Carlsson <andersca@gnu.org> - - * e-table-header-item.c (ethi_drag_motion): Don't draw drop - marker when the layout won't be changed by the drop. - -2000-07-08 Ettore Perazzoli <ettore@helixcode.com> - - * e-table-item.c (eti_table_model_changed): Removed an unused - variable. - -2000-07-08 Dan Winship <danw@helixcode.com> - - * e-tree-model.c (e_tree_model_node_insert): When inserting a root - node, only call e_table_model_row_inserted if root_visible. - (e_tree_model_node_remove): Call e_table_model_row_deleted before - removing the row from the row_array, because the chain of signal - handlers will sometimes need that info. - -2000-07-08 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c (eti_event): Don't call e_cell_event if we're not - editing. - -2000-07-08 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c (eti_table_model_changed): Commented out some - unnecessary and buggy code. - -2000-07-06 Dan Winship <danw@helixcode.com> - - * e-tree-model.c (e_tree_model_node_remove): Make this work - recursively. - -2000-07-06 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Send GDK_BUTTON_RELEASE events to the ecell - associated with the cell (if it's the cursor.) - -2000-07-06 Chris Toshok <toshok@helixcode.com> - - * e-cell-tree.c (ect_draw): fix the conditions under which we draw - a horizontal line. - -2000-07-03 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Added a reflow_compare callback and did removal - if you do shift-click on a selected row that's not the cursor. - -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. - -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. - -2000-06-26 Christopher James Lahey <clahey@helixcode.com> - - * Makefile.am: Added e-table-click-to-add.c, - e-table-click-to-add.h, e-table-one.c, and e-table-one.h. - - * e-table-click-to-add.c, e-table-click-to-add.h: A new canvas - item that represents a single row that sometimes exists. It's for - adding new rows to your table. - - * e-table-example-1.c, e-table-example-2.c, e-table-size-test.c, - test-check.c, test-cols.c, test-table.c: Added value_to_string handlers. - - * e-table-group-container.c: Use value_to_string to make grouping - not crash for non string columns. Made some changes to work - properly in an ECanvasVbox. - - * e-table-group-leaf.c, e-table-item.c: Made some changes to work - properly in an ECanvasVbox. - - * e-table-model.c, e-table-model.h: Added append_row and - value_to_string methods. - - * e-table-one.c, e-table-one.h: Given a source ETableModel, this - provides a single row model that uses the initialize_value, - duplicate_value, free_value, and value_is_empty methods of the - original source to implement set_value and value_at (and proxies - most of the other methods.) This is used for ETableClickToAdd. - - * e-table-simple.c, e-table-simple.h: Added append_row and - value_to_string handlers. append_row uses a GtkArg instead of a - parameter to e_table_simple_new. - - * e-table-subset.c: Added append_row and value_to_string handlers. - - * e-table.c, e-table.h: Use a vbox containing an ETableClickToAdd - and an ETableItem instead of an ETableItem directly. Only show - the ETableClickToAdd if the top level of the xml SPEC has the - attribute click-to-add set to some non-zero integer. - (click-to-add="1"). Add a "click_to_add_message" argument. - - * e-tree-model.c: Add a commented out value_to_string handler. - -2000-06-23 Larry Ewing <lewing@helixcode.com> - - * e-cell-toggle.c (etog_draw): draw pixmaps with he right - background and selection colors. - -2000-06-23 Chris Toshok <toshok@helixcode.com> - - * e-tree-model.h, e-tree-model.c: add icon_at virtual function - - it was stupid to make the insert call take 2 pixbufs. the model - should give this information. - - * e-cell-tree.c: get rid of the opened/closed pixbuf stuff. call - e_tree_model_icon_of_node. - - * e-tree-example-1.c: add my_icon_at. - - * e-tree-simple.c (simple_icon_at): new function - (e_tree_simple_new): add icon_at parameter. - - * e-tree-simple.h: add SimpleIconAtFn. - -2000-06-23 Chris Toshok <toshok@helixcode.com> - - * e-tree-example-1.c (create_tree): use the expanded/unexpanded - pixbufs as node pixbufs for the first level of children, to test - the drawing. - - * e-tree-model.c (e_tree_model_node_get_closed_pixbuf): new function. - (e_tree_model_node_get_opened_pixbuf): same. - (e_tree_model_node_insert): add opened/closed pixbuf argument. - (e_tree_model_node_insert_before): same. - - * e-tree-model.h: add prototypes for opened/closed pixbuf - accessors, and add them to the e_tree_model_node_insert_* calls. - - * e-cell-tree.c (ect_draw): add opened/closed pixbuf drawing per node. - -2000-06-22 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Make the table not move around as you resize. - -2000-06-22 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Killed a warning. - -2000-06-22 Christopher James Lahey <clahey@helixcode.com> - - * e-table-group-container.c: Remove use of the "x" and "y" - arguments to EText. - - * e-table-item.c: Properly ref the source_model field. - - * test-check.c, test-cols.c, test-table.c: Remove use of the "x" - and "y" arguments to ETableHeaderItem. - -2000-06-21 Christopher James Lahey <clahey@helixcode.com> - - * e-table-field-chooser-dialog.c: Made the Close button work. - - * e-table-field-chooser.glade, e-table-field-chooser.glade.h: - Added a text description of this dialog. - -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. - -2000-06-21 Christopher James Lahey <clahey@helixcode.com> - - * e-table-header.c: Made moving columns to the right work - properly. - -2000-06-20 Christopher James Lahey <clahey@helixcode.com> - - * e-table-group-leaf.c: Fix a minor warning. - - * e-table-item.c: Add to the selection if shift is held down. - Show cursor when changing sort (or if table changes majorly.) - -2000-06-20 Christopher James Lahey <clahey@helixcode.com> - - * e-table-defines.h: Fix HEADER_PADDING. - -2000-06-20 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Fix cursor column information. - -2000-06-20 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 unfocus method since - that's handled by the canvas itself now. - - * e-table-item.c, e-table-item.h: Finished adapting ETableItem to - use the canvas selection/cursor system. Selection and cursor now - use row numbers associated with the source model instead of the - sorted model (if the model they are given is an ETableSubset.) - This has no effect on the interface, except that unfocus was - removed and e_table_item_focus was renamed to - e_table_item_set_cursor. - -2000-06-20 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c, e-table-item.h: Started adapting ETableItem to - use the canvas selection/cursor system. - -2000-06-17 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c: Made cells with strikeout on have a line from the - left margin to the right margin, instead of just over the text. - -2000-06-17 Chris Toshok <toshok@helixcode.com> - - * e-tree-model.c (e_tree_model_node_insert): call - e_table_model_row_inserted instead of e_table_model_changed. - -2000-06-16 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c, e-table.h: Moved the reflow signal handling into an - idle handler to fix a bug when resizing twice in succession. - -2000-06-15 Chris Toshok <toshok@helixcode.com> - - * e-cell-tree.c (ect_print): print the icon for the tree control. - -2000-06-14 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c: Request the value of e_table_is_cell_editable of - the model_col instead of the view_col. - - * e-table-item.h: Slight style fixup. - -2000-06-14 Chris Toshok <toshok@helixcode.com> - - * e-tree-example-1.c (print_tree): new function, to generate - postscript so i can test tree printing. - (create_tree): add print button. - - * e-cell-tree.c (ect_print_height): implement function (in a - broken way for the time being, heh). - (ect_print): implement function to draw tree controls and offset - the subcell's printing. icons aren't printed yet, just lines. - (ect_draw): remove old unnecessary comments. only draw the - horizontal line in specific instances (well, add a test so a lone - root node doesn't get the horizontal line.) - (e_cell_tree_class_init): add print/print_height methods. - -2000-06-13 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c: Clip the contained text. - - * e-table-group-container.c: Did a first pass at grouped - printing. This works, but there's no fancy boxes or headers - around the groups. - - * e-table-item.c: Added will_fit function and added quantize - function to _height. - -2000-06-12 Federico Mena Quintero <federico@helixcode.com> - - * e-table-model.[ch]: Removed the freeze/thaw stuff for the model. - As Chris wisely pointed out, having freeze/thaw on the model makes - its state inconsistent from the perspective of the views. - - * e-table-sorted-variable.c: Do not check for a frozen model. - * e-table-subset.c: Likewise. - * e-table-subset-variable.c: Likewise. - - * e-table-example-1.c: Removed the ETableModel thaw handler. - * e-table-example-2.c: Likewise. - * e-table-simple.c: Likewise. - * e-table-size-test.c: Likewise. - * test-check.c: Likewise. - * test-cols.c: Likewise. - * test-table.c: Likewise. - -2000-06-11 Ettore Perazzoli <ettore@helixcode.com> - - * Makefile.am (table_test_LDADD): Link with libemiscwidgets.a. - (table_size_test_LDADD): Likewise. - (table_example_1_LDADD): Likewise. - (table_example_2_LDADD): Likewise. - (tree_example_1_LDADD): Likewise. - -2000-06-11 Christopher James Lahey <clahey@helixcode.com> - - * e-table-model.c: Small syntactic changes. - - * e-table.c: Moved the table header into the scrolled view. - -2000-06-10 Ettore Perazzoli <ettore@helixcode.com> - - * e-table.c (et_real_construct): EScrollFrame instead of - GtkScrolledWindow. - -2000-06-10 Christopher James Lahey <clahey@helixcode.com> - - * Makefile.am: Added $(GNOME_PRINT_LIBS) to all of the LDADDs. - - * e-cell-text.c: Added printing of text cells. - - * e-cell.c, e-cell.h: Added print and print_height methods. - - * e-table-field-chooser.glade: Added a minimum size. - - * e-table-group-container.c: Fixed a rectangle sizing bug. - - * e-table-group-leaf.c: Implemented get_printable. - - * e-table-group.c, e-table-group.h: Added a get_printable method - to return an EPrintable. - - * e-table-item.c, e-table-item.h: Added a get_printable function - to return an EPrintable. - - * e-table.c, e-table.h: Added a get_printable function to return - an EPrintable. - -2000-06-10 Chris Toshok <toshok@helixcode.com> - - * e-tree-example-1.c (create_tree): supply the pixbufs here. - - * e-cell-tree.h: change pixbuf names to open_pixbuf/closed_pixbuf. - - * e-cell-tree.c (e_cell_tree_construct): take open/closed pixbuf - parameters, and don't #include the .xpm files directly here. - (e_cell_tree_new): same. - (ect_draw): use the pixbufs from the ECellTree. - -2000-06-10 Chris Toshok <toshok@helixcode.com> - - * e-cell-tree.c (ect_event): offset events before passing them to - our subcell view. - -2000-06-10 Chris Toshok <toshok@helixcode.com> - - * e-table-item.c (eti_event): change things so we focus the cell - and select the row, and also dispatch the event to that row/cell. - This fixes the problem with the tree where you had to click twice - to activate the tree controls. - - * Makefile.am (libetable_a_SOURCES): remove e-tree-gnode.* and add - e-tree-simple.* - (icons): add tree-expanded.xpm and tree-unexpanded.xpm - - * e-cell-tree.c (ect_enter_edit): defer to subcell's view. - (ect_leave_edit): defer to subcell's view. - (visible_depth_of_node): visual depth, taking into account that - the root node of the model might not be displayed. - (offset_of_node): return the offset used to shift the subcell - over. - (ect_draw): don't draw vertical lines if we're the leftmode node - (a visual root node). also, don't shift x2 by the subcell offset, - so we get ellipses like we're supposed to. - (ect_event): remove GDK_BUTTON_RELEASE from the list of events - that we care about. - - * e-tree-example-1.c: lots of changes, a more dynamic UI so we can - test tree model api stuff. - - * e-tree-gnode.c, e-tree-gnode.c: removed files, since their guts - have been rolled into e-tree-model.c - - * e-tree-model.c, e-tree-model.h: substantially changed. too much - to really describe here. this should really be considered the - first revision of these files :) - - * e-tree-simple.c, e-tree-simple.h: analogous to e-table-simple, a - subclass that allows the use of function pointers. - -2000-06-08 Federico Mena Quintero <federico@helixcode.com> - - * e-table-model.h (ETableModelClass): Added a freeze method. - - * e-table-model.c (e_table_model_freeze): Call the freeze method - instead of the thaw method! - - * e-table-simple.h (ETableSimple): Added the freeze function. - - * e-table-simple.c (simple_thaw): Check whether the function - exists. - (simple_freeze): New handler. - (e_table_simple_new): Take in and set the freeze handler. - (e_table_simple_class_init): Set the freeze handler. - - * test-check.c (check_test): Pass in the freeze handler to - e_table_simple_new(). - - * test-cols.c (multi_cols_test): Likewise. - - * e-table-example-2.c (create_table): Likewise. - - * e-table-example-1.c (create_table): Likewise. - - * test-table.c (table_browser_test): Likewise. - (do_e_table_demo): Likewise. - -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. - -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. - -2000-06-08 Chris Toshok <toshok@helixcode.com> - - * e-tree-gnode.c, e-tree-gnode.h: New files. A tree model using a - GNode structure to store it's info. - - * e-tree-model.c, e-tree-model.h: New files. A proxy model - sitting between a table model and the real tree model (of which - ETreeGNode is an example). - - * e-cell-tree.c, e-cell-tree.h: New files. A cell renderer - capable of wrapping up a subcell and drawing the tree controls for - expanding/collapsing trees. - - * tree-expanded.xpm, tree-unexpanded.xpm: New files. the standard - + and - icons. - - * e-tree-example-1.c: New file, giving a (pretty poor :) example - of using ETreeGNode. - - * Makefile.am: at the tree stuff to the build, and build - tree-example-1. - - * .cvsignore: ignore tree-example-1. - -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. - -2000-06-06 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 right click signal. - - * e-table-sorted-variable.c: Fixed a buffer overrun. - -2000-06-02 Christopher James Lahey <clahey@helixcode.com> - - * e-table-sorted-variable.c: Fixed the multiple copies of rows in - ETable bug. - -2000-06-01 Dan Winship <danw@helixcode.com> - - * e-table-group.c (e_table_group_key_press): - * e-table.c (group_key_press): two more pastos - -2000-06-01 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Copy and paste error. - - * e-table-item.c: Mixed up parity on eti->editing. - -2000-06-01 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 "key_press" signal. - -2000-06-01 Dan Winship <danw@helixcode.com> - - * e-cell-text.h: Remove an offending *. - -2000-06-01 Christopher James Lahey <clahey@helixcode.com> - - * e-table-sorted-variable.c: Made the sort when inserting a signal - row be syncronous. - -2000-06-01 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c, e-cell-text.h: Added "text_filter" argument that - takes a const void * and returns an allocated char *. - -2000-06-01 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Copy and paste error. - -2000-06-01 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: Added e_table_get_selected_view_row. - -2000-05-30 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c, e-cell-text.h: Added bold column's to ECellText. - -2000-05-30 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Make sure that the cursor is always shown when - the selection changes. - -2000-05-30 Christopher James Lahey <clahey@helixcode.com> - - * 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, e-table.c, - e-table.h, test-check.c, test-cols.c, test-table.c: Fixed a bunch - of selection bugs. Removed "spreadsheet" argument (for now.) - Added "cursor_mode" argument. Added "cursor_change" signal. - Temporarily removed "selection_mode" argument. - -2000-05-28 Christopher James Lahey <clahey@helixcode.com> - - * e-table-group-container.c: Fixed setting of arguments. - -2000-05-28 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 double click handling. - -2000-05-26 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c, e-cell-text.h: Added "strikeout_column" argument. - -2000-05-26 Christopher James Lahey <clahey@helixcode.com> - - * e-table-group-container.c, e-table-group-container.h, - e-table-group-leaf.c, e-table-group-leaf.h, e-table.c, e-table.h: - Made "drawgrid", "drawfocus", "spreadsheet", and - "length_threshold" arguments set from the ETable effect all the - end ETableItems. - - * e-table-header.c: Made column resize a bit less bumpy. - -2000-05-25 Christopher James Lahey <clahey@helixcode.com> - - * e-table-header.c: Account for extra pixel at right end of - ETable. - - * e-table-item.c: Make grid less intrusive. - - * e-table.c: Make scrollbars disappear when appropriate. - -2000-05-25 Christopher James Lahey <clahey@helixcode.com> - - * e-table-header-item.c: Made dragging columns work. - -2000-05-23 Christopher James Lahey <clahey@helixcode.com> - - * e-table-header-item.c: Fixed the remove column callback. - -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. - -2000-05-23 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Make scrollbar arrow buttons work. - -2000-05-19 Christopher James Lahey <clahey@helixcode.com> - - * e-table-example-1.c, e-table-example-2.c, e-table-simple.c, - e-table-simple.h, e-table-size-test.c, test-check.c, test-cols.c, - test-table.c: Added initialize_value and value_is_empty callbacks. - - * e-table-model.c, e-table-model.h: Added initialize_value and - value_is_callback virtual functions to the ETableModel class. - - * e-table-subset.c: Perpetuate the initialize_value and - value_is_empty methods. - -From a patch by Iain Holmes <ih@csd.abdn.ac.uk> - - * e-table-config.c, e-table.c: Fixed getting text content from a - node in the case of a non string based content field in the xml - library. - -2000-05-16 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Fixed a memory leak. - -2000-05-16 Christopher James Lahey <clahey@helixcode.com> - - * e-table-sorted-variable.c: Changed sorting to be at priority - level 30. - - * e-table.c: Changed rebuild of the table to be at priority level - 20. This gives it an advantage over pretty much everything, - including e-table-sorted-variable sorting and canvas redraw. - -2000-05-16 Christopher James Lahey <clahey@helixcode.com> - - * e-table-group-container.c: Removed a memory leak here. - - * e-table-group-leaf.c: Added a ref/sink pair. - - * e-table-group.c, e-table-header-item.c: Removed some unused - code. - -2000-05-16 Christopher James Lahey <clahey@helixcode.com> - - * e-table-sorted-variable.c: Fixed a FIXME comment. - - * e-table-header.c, e-table-header.h: Added code to put off size - calculation to the idle loop. Added code to not resize columns - with 0 expansion. Removed the set_width function; it's been - replaced with a Gtk+ arg. - - * Makefile.am: Added e-table-defines.h to the Makefile.am. - - * e-table-defines.h: A new file containing some #defines for use - in ETable. - -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. - -2000-05-11 Miguel de Icaza <miguel@gnu.org> - - * e-table.c: Removed dead code. - -2000-05-10 Christopher James Lahey <clahey@helixcode.com> - - * Makefile.am: Added e-table-col-dnd.h and table-test.h. - -2000-05-09 Christopher James Lahey <clahey@helixcode.com> - - * e-table-subset-variable.c: Fixed etssv_remove. - -2000-05-08 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c: Make multi-line texts display properly. Fixed - some mem leaks. - -2000-05-07 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Add a horizontal scrollbar. - -2000-05-07 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c, e-table-item.h, e-table.c, e-table.h: Handle - row_inserted and row_deleted signals properly. - - * e-table-model.c, e-table-model.h: Created the row_inserted and - row_deleted signals. - - * e-table-sorted-variable.c, e-table-subset-variable.c: Emit the - row_inserted and row_deleted signals as appropriate. - -2000-05-07 <toshok@the-dot-in.helixcode.com> - - * e-cell-text.c (ect_draw): free cell.starting_text here to avoid - a memory leak. - -2000-05-06 Christopher James Lahey <clahey@helixcode.com> - - * e-table-group-container.c, e-table.c: Killed some warnings. - -2000-05-06 Chris Toshok <toshok@helixcode.com> - - * e-cell-text.c (ect_accept_edits): only to set_value_at if the - value is indeed different. - (ect_stop_editing): free edit->cell.starting_text - (build_current_cell): initialize edit->cell.starting_text as a - copy of the initial text. - -2000-05-04 Christopher James Lahey <clahey@helixcode.com> - - * e-table-group-container.c, e-table-group-leaf.c, - e-table-group.c, e-table-group.h: Add an e_table_group_add_all - function and implement it in the different ETableGroup classes. - - * e-table-sort-info.c: Make set_nth not call changed twice if it - needs to allocate more space. - - * e-table-sorted-variable.c, e-table-subset-variable.c, - e-table-subset-variable.h: Add and implement an - e_table_subset_variable_add_all command. - - * e-table.c: Use e_table_group_add_all as appropriate. Fix ETable - grouping xml to work if there is a text element at the bottom of - the grouping tree. - -2000-05-04 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c: Sped up e_cell_text's get_height function. - -2000-05-04 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c, e-table-item.h: Added a height_cache idle loop - so that the height_cache will be validated in the idle loop. - -2000-05-04 Christopher James Lahey <clahey@helixcode.com> - - * e-table-sorted-variable.c: Load all the data to be sorted by - before actually doing the sort. - -2000-05-04 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c, e-cell-text.h: Fix author information. - - * e-table-group-leaf.c: Set a length threshold of 200. - - * e-table-item.c: Height cache is now actually a map. Made - "length_threshold" argument work. If over the length threshold, - use the height cache to get a better estimate so that once the - height cache is full, height estimate is perfect. - -2000-05-04 Christopher James Lahey <clahey@helixcode.com> - - * e-table-sorted-variable.c (qsort_callback): Add back in main - loop calls during sorting. - -2000-05-04 Christopher James Lahey <clahey@helixcode.com> - - * e-table-sorted-variable.c: Replace insert sort completely with a - qsort. - -2000-05-04 Christopher James Lahey <clahey@helixcode.com> - - * e-table-sorted-variable.c: Changed the insert sort to be binary - instead of linear. - -2000-05-04 Chris Toshok <toshok@helixcode.com> - - * e-table-sorted-variable.c (etsv_sort): use rows here instead of - E_TABLE_SUBSET(etsv)->n_map, since the table can be populated by - the gtk_main_iteration above. otherwise the vals_closure may not - be fully populated. - -2000-05-02 Matt Loper <matt@helixcode.com> - - * Makefile.am: set G_LOG_DOMAIN. - -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. - -2000-04-27 Christopher James Lahey <clahey@helixcode.com> - - * arrow-down.xpm, arrow-up.xpm, e-cell-text.c, e-cell-toggle.c, - e-table-col.c, e-table-config.c, e-table-header-item.c: Fixed some - warnings. - -2000-04-26 Christopher James Lahey <clahey@helixcode.com> - - * e-table-header-item.c: Added a missing include. - -2000-04-25 Christopher James Lahey <clahey@helixcode.com> - - * e-table-size-test.c: Fixed a warning. - - * e-table-item.c: Removed the unnecessary gnome_canvas_update_bbox. - -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. - -2000-04-24 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Fixed some warnings. - -2000-04-23 Iain Holmes <ih@csd.abdn.ac.uk> - - * e-table-item.c (eti_bounds): Calculate the width of the table from the - width of all the columns, and update the eti->width field as appropiate. - (eti_update): Update the bbox. - -2000-04-17 Chris Toshok <toshok@helixcode.com> - - * Makefile.am (noinst_PROGRAMS): add table-size-test - - * .cvsignore: add table-size-test. - - * e-cell-text.c (ect_ecent): use e_table_model_is_cell_editable - instead of E_CELL_EDITABLE. - - * e-cell-toggle.c (etog_event): same. - - * e-cell.c (e_cell_init): don't call e_cell_set_editable. that - info comes from the model. - (e_cell_set_editable): removed function. - - * e-cell.h: remove the E_CELL_EDITABLE flag. that should be - retrieved from the model. also, remove the prototype for - e_cell_set_editable. - - * e-table-size-test.c: new file, for a stress test of sorts, of a - large, uneditable e-table. - -2000-04-16 Anders Carlsson <andersca@gnu.org> - - * e-table-item.c (eti_event): Propagate mouse wheel events upwards. - - * e-table.c (et_real_construct): Use a GtkScrolledWindow here - instead of a GtkScrollbar, since it makes mouse wheel scrolling - much easier. - -2000-04-15 Matt Loper <matt@helixcode.com> - - * e-table.c (et_xml_to_header): sanity-check our parameters. - (et_grouping_xml_to_sort_info): same. - (et_real_construct): Bail if we couldn't get the children we - wanted. - -2000-04-15 Ettore Perazzoli <ettore@helixcode.com> - - * e-table.c (e_table_construct): Use `strlen (copy)' instead of - `strlen (copy) + 1' as the size argument for `xmlParseMemory()'. - -2000-04-14 Miguel de Icaza <miguel@gnu.org> - - * e-table.c, e-table.h: Switch the parent object to be a GtkTable. - (et_real_construct): apply massaging and some loving action to - make the thing behave as a GtkTable. - (e_table_init): More love. - -2000-04-14 Miguel de Icaza <miguel@gnu.org> - - * e-table-header-item.c (ethi_class_init): New signal action. - -2000-04-14 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c, e-table-item.h: Added a row height cache. - -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. - - (ethi_end_resize): Reset resize_guide here. - -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. - -2000-04-10 Miguel de Icaza <miguel@gnu.org> - - * e-table-header-item.c (ethi_drag_motion): Drop frozen count - support from here. - (ethi_start_drag): ditto. - - * e-table-header.h: Kill frozen_count. - -2000-04-09 Matt Loper <matt@helixcode.com> - - * e-table-col.c (e_table_col_new_with_pixbuf): ref etc->ecell, - like in e_table_col_new, since that same ECell is unref'd in - etc_destroy(). - -2000-04-08 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Separated some functions into an xml bit and a - generic bit. - -2000-04-06 Miguel de Icaza <miguel@gnu.org> - - * e-cell-text.c: Killed ARG_EDITABLE. - (ect_event): Updated to new editable setup. - (e_cell_text_new): Kill editable argument. - - * e-cell-toggle.c (etog_event): Handle editability here - - * e-cell-text.h: Removed editable bit field from here, it is now - taken care at the e-cell level. - - * e-cell.c (e_cell_set_editable): New function. - (e_cell_init): Set editable to TRUE by default. - - * test-check.c (check_test): update to new api - - * test-table.c (table_browser_test): ditto. - (do_e_table_demo): ditto. - - * test-cols.c (multi_cols_test): ditto - -2000-04-06 Christopher James Lahey <clahey@helixcode.com> - - * test-cols.c, test-table.c: Got rid of some warnings. - - * 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-header-item.c, e-table-header-item.h, - e-table-sort-info.c, e-table-sort-info.h, - e-table-sorted-variable.c, e-table-sorted-variable.h, e-table.c, - e-table.h: Changed ETableSortInfo to not use xml internally. - -2000-04-04 Christopher James Lahey <clahey@helixcode.com> - - * e-table-text-model.c: Make this assert a bit more readable. - - * e-table-item.c: Fix update loop behavior. - -2000-04-02 Miguel de Icaza <miguel@gnu.org> - - * e-table-sort-info.c (e_table_sort_info_class_init): Kill - argument. Do not use XML internally - (e_table_sort_info_set_sorting): New function, use this to set the - sorting. - (e_table_sort_info_set_grouping): This one to do the grouping/. - -2000-04-01 Miguel de Icaza <miguel@gnu.org> - - * e-table.c (e_table_build_column_spec): Drop frozen support. - (e_table_make_header): Drop frozen support. - - * e-table-header.c (e_table_header_new): Drop frozen support. - - * e-table-header-item.c (ethi_drag_motion): Drop frozen support. - (ethi_drag_drop): Drop frozen support. - (ethi_start_drag): Drop frozen support. - - * e-table.c (e_table_construct_from_spec_file): Robustify: support - the case in which the XML could not be parsed; Propagate errors. - (e_table_new): Handle failure. - (e_table_new_from_spec_file): ditto. - Renamed multiple internal functions whose prefix was et_ to be e_table_ - -2000-03-31 Miguel de Icaza <miguel@gnu.org> - - * e-table-simple.h: Constify this. - -2000-03-30 Miguel de Icaza <miguel@gnu.org> - - * Makefile.am (EXTRA_DIST): Added Glade files to the - distribution. - -2000-03-28 Matt Loper <matt@helixcode.com> - - * e-table-text-model.c (e_table_text_model_destroy): made - assertion more accurate. - -2000-03-27 Michael Meeks <michael@helixcode.com> - - * e-table-item.c (eti_update): try and fix the convoluted logic. - (eti_bounds): Implement; should fix the re-draw bugs. - - * e-table-group-container.c: kill many redundant prototypes, - stylistic cleans. - -2000-03-26 Miguel de Icaza <miguel@gnu.org> - - * e-table-header-item.c (ethi_realize): Remove warning from here. - - * test-table.c (table_browser_test): Use ECanvas, not GnomeCanvas, - to support reflow. - * test-cols.c (multi_cols_test): ditto - * e-table.c (e_table_setup_header): ditto - - * e-table-header-item.c (ethi_font_load): Replace font. - (ethi_realize): ditto. - -2000-03-26 Matias Mutchinick <matias@seul.org> - - * e-cell-toggle.c (etog_draw): Removed extra code that computed - bogus width. This was the actual source of the problem with the - miss-rendering feature. - -2000-03-22 Matt Loper <matt@helixcode.com> - - * e-table-text-model.c (e_table_text_model_destroy): Added some - assertions. - -2000-03-21 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Make rectangles resize properly when receiving the - "model_changed" signal. - -2000-03-20 Christopher James Lahey <clahey@helixcode.com> - - * e-table-group-container.c, e-table-group-container.h, - e-table-group-leaf.c, e-table-group.c, e-table-group.h: Updated - these to use the new ECanvas reflow infrastructure. - - * e-table-item.c, e-table-item.h: Updated these to use the new - ECanvas reflow infrastructure. Fixed the bounding box. - - * e-table.c, e-table.h: Made the header have no extra space around it. - -2000-03-19 Christopher James Lahey <clahey@helixcode.com> - - * e-table-header.c: Fixed a crashing bug when you close an - ETable. - -2000-03-13 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c: Fixed a crashing bug when you cancel an edit. - -2000-03-12 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Made this use an ECanvas. Fixed a bug where - e_table_new_from_spec_file was calling e_table_construct instead - of e_table_construct_from_spec_file. - - * e-table-item.c, e-table-header-item.c, e-table-column-item.c: - Switched these to use GTK_TYPE_OBJECT and GTK_VALUE_OBJECT instead - of GTK_TYPE_POINTER and GTK_TYPE_OBJECT. - - * e-cell-text.c: Got rid of a crashing bug. - - * e-table-text-model.c, e-table-text-model.h: A new object which - is an e-text-model which uses an e-table-model for its data. - - * Makefile.am: Added e-table-text-model.c and - e-table-text-model.h. - - * .cvsignore: Added table-example-1 and table-example-2. - -2000-03-08 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Changed the destroy function to disconnect from - signals before unrefing the objects the sinnals are on. Changed - the destroy function to match the objects and signal ids properly - in its disconnect section. - - * e-table-item.c, e-table-item.h: Changed this to do follow the - canvas rules better. - - * e-table-header-item.c, e-table-header-item.h: Made - ETableHeaderItem connect to the "sort_info_changed" on its - ETableSortInfo instead of just manually redrawing itself. Fixed - the update function a bit to follow the canvas rules a bit better. - -2000-03-06 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Made rows get unselected when switching from one - group to the next. - -2000-03-06 Christopher James Lahey <clahey@helixcode.com> - - * e-table-group-container.c: Use the style's font if lucidasans-10 - is not found. - -2000-03-06 Christopher James Lahey <clahey@helixcode.com> - - * e-table-header-item.c, e-table-header-item.h: Made it so that - columns would be properly indented. - -2000-03-06 Christopher James Lahey <clahey@helixcode.com> - - * e-table-sorted-variable.c: Have identical values get sorted by - their actual row. - -2000-03-06 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c: Draw selected row. - -2000-03-06 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c, e-table.h: Add a "row_selection" signal. - - * test-table.c: Test the new "row_selection" signal. - - * e-table-group-container.c, e-table-group-leaf.c: Implement the - "row_selection" property properly. - - * e-table-group.c, e-table-group.h: Add a "row_selection" signal. - -2000-03-05 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c, e-table.h: Added support for the sorting info. The - Etable creates a sort_info object, and then connects to the - signals to rearrange the rows when the sort_info changes. It also - passes the info object to the ETableHeaderItem. - - * e-table-model.c: Fixed a typo where ETableModel was written as - ETableModle. - - * e-table-header.c, e-table-header.h: Added some code for sorting - here, but it's not used. I don't think we want this code, but I - wanted to check it in at least once so that it's not lost. - - * e-table-header-item.c, e-table-header-item.h: Added a - "sort_info" argument to ETableHeaderItem. Added display of - current sort settings. Added support for clicking to change the - sort settings. - - * e-table-col.h: E_TABLE_COL_ARROW_NONE is marked as being = 0 - since this is required in other places. (I think C defines this - as being the case, but it's good to have the = 0 there so that - it's obvious that it has to be first.) - - * TODO: Mark sorting as done. - - * e-table-sort-info.c, e-table-sort-info.h: New files for - containing the xml grouping/sorting information and for sending - signals on that information. - - * Makefile.am: Added e-table-sort-info.c and e-table-sort-info.h. - -2000-03-04 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Added saving of frozen_columns count. Added a - vertical scrollbar to ETable. - -2000-03-04 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Push the proper visual and colormap for ETable to work. - -2000-03-04 Christopher James Lahey <clahey@helixcode.com> - - * TODO: Touched this up a bit. - - * e-table-group.c, e-table-group-leaf.c: Check for NULL before - calling gtk_object_unref or gtk_object_destroy. - -2000-03-04 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Fixed a crash error. - -2000-03-04 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Fixed a compile warning. - - * e-table.c: Fixed a crash error. - -2000-03-04 Christopher James Lahey <clahey@helixcode.com> - - * TODO: Added a bunch of stuff to the TODO list. Put +s before a - few of the items that are finished. - - * test-table.c: Add a button to save the spec file. - - * e-table.c, e-table.h: Add loading configurations from files as - well as the ability to get the current configuration out of the - widget. - -2000-03-03 Christopher James Lahey <clahey@helixcode.com> - - * e-table.c: Removed some unused code. - - * e-table-header-item.c, e-table-header-item.h: Removed the unused - normal_cursor variable and object. - - * e-table-col.c: Maintain a reference count in the contained ECell. - -2000-03-01 Ettore Perazzoli <ettore@helixcode.com> - - * Makefile.am: Use `libeutil.la', not `libeutil.a'. - -2000-02-29 Christopher James Lahey <clahey@helixcode.com> - - * test-table.c: Test frozen columns - - * e-table.c: Make frozen columns available through the xml file. - - * e-table-header.c, e-table-header.h, e-table-header-item.c: Added - frozen columns API to let you specify some number of leading - columns as undraggable. - - * Makefile.am: Add e-table-example-1.c and e-table-example-2.c. - - * e-table-example-1.c, e-table-example-2.c: New files. A couple - of examples of ETable use. - -2000-02-28 NotZed <NotZed@HelixCode.com> - - * Makefile.am (table_test_LDADD): Fixed references to eutil. - -2000-02-28 Christopher James Lahey <clahey@helixcode.com> - - * e-table-header-item.c, e-table-header.c: Fixed a couple of crash - bugs. - -2000-02-25 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Made the E table item redraw properly. - - * e-table-group-container.c: Added handling to distinguish between - n items and 1 item. Got rid of a crash due to an abandoned timeout - callback. - -2000-02-24 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c: Made carriage return stop editting instead of - inserting a carriage return. - -2000-02-24 Christopher James Lahey <clahey@helixcode.com> - - * test-table.c: Added duplicate_value and add_value. Use the new - compare functions. Made it so we only create one model to better - test model view stuff. Changed the test to not have as many - extra, useless, columns. - - * test-cols.c, test-check.c: Added duplicate_value and add_value. - Use the new compare functions. - - * e-table.c, e-table.h: Use all the new features of e-table-groups - (sorting and grouping). Handle on the fly reorganization of - groups in an idle loop. Compare functions now are to return -1 if - the first item is greater, 0 if they are equal, or 1 if the second - item is greater. - - * e-table-subset.c, e-table-subset.h: Made e-table-subset - disconnect properly from its signals when it dies. - - * e-table-subset-variable.c, e-table-subset-variable.h: - Virtualized the add and remove commands so that - e_table_sorted_variable could override the add command to do - sorting. - - * e-table-sorted.c: Fixed this to inherit properly from - ETableSubset. - - * e-table-simple.h, e-table-simple.c: Added handling of - duplicate_value and free_value; - - * e-table-model.c, e-table-model.h: Added duplicate_value and - free_value for memory allocation of table elements outside the - table. - - * e-table-item.c: Fixed a crashing bug. - - * e-table-group.c: Added sorting. Fixed destruction to delete the - right things. - - * e-table-group-leaf.c, e-table-group-leaf.h: Pass column and sort - order information into the e_table_sorted_variable. Properly - destroy things when deleted. - - * e-table-group-container.c, e-table-group-container.h: Properly - handle the list of subgroups. Handle proper sorting and grouping - of subgroups. - - * e-table-sorted-variable.c, e-table-sorted-variable.h: Files to - do a sorted model that stays sorted as you add and remove rows. - - * Makefile.am: Added e-table-sorted-variable.c and - e-table-sorted-variable.h. - -2000-02-24 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Made keyboard focus navigation work across - groups. - - * e-table-header.c: Made e_table_header_col_diff not crash if you - give it a column less than 0 (it truncates negative column values - to 0.) - - * e-table-group.c, e-table-group.h: Added e_table_group_get_header - to get the ETableHeader for this ETableGroup. - - * e-table-group-container.c: Made shift tab work. - -2000-02-24 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c: Made changing focus work. - -2000-02-24 Christopher James Lahey <clahey@helixcode.com> - - * e-table-subset-variable.c, e-table-subset-variable.h: A new - model which is a subset, but you can add and remove rows. - - * test-table.c: Added a thaw method for use with the - e-table-subset (emits model_changed.) Adapted to the changes to - e_table_item. Properly parse headers. Adapted to the changes to - e_table, including creating example xml spec data. - - * test-cols.c, test-check.c: Added a thaw method for use with the - e-table-subset (emits model_changed.) Adapted to the changes to - e_table_item. - - * e-table.c, e-table.h: Reworked e-table to use the ETable - grouping system. The only difference for the interface is that - instead of passing in a column_spec and a grouping_spec, you pass - in a single string that is an xml format that includes both pieces - of information. - - * e-table-subset.h: Added rules for emacs to do correct - indentation. - - * e-table-subset.c: Implemented freezing. No signals are emitted - while frozen and "model_changed" is emitted when thawed. - - * e-table-sorted.h: ETableSortedClass has ETableSubset as its - parent object instead of ETableSubsetClass. Fixed this. - - * e-table-simple.c, e-table-simple.h: Implemented the thaw method. - Use of simple now requires an extra argument (the thaw method.) - - * e-table-model.h, e-table-model.c: Added e_table_model_freeze and - e_table_model_thaw. - - * e-table-item.h, e-table-item.c: Reworked this a bit to make it - provide some things the new group system needed and to make - inter-item keyboard focus work. Changed the external interface - only in the list of arguments it recognizes and signals it emits. - Instead of "x" and "y", you have to use - e_canvas_item_move_absolute and instead of emitting a - "height_changed" signal, it emits a "resize" signal. There's new - "has_focus", "width", and "height" arguments and a function to get - the currently focused column. - - * e-table-header-item.c: Got rid of some warnings here. Changed - the - - * e-table-group-leaf.h, e-table-group-leaf.c, - e-table-group-container.h, e-table-group-container.c: New types to - make e_table_group work properly. - - * e-table-group.h, e-table-group.c: Completely reworked e-table - grouping. e-table-group now uses a hierarchical structure. - - * e-cell.h: Added e_cell_print. This doesn't work yet. - - * e-cell.c: Made e_cell_realize exist. (It was improperly named - e_cell_view_realize in the .c.) - - * e-cell-text.c: Made the blinking cursor disappear properly. - - * check-filled.xpm, check-empty.xpm: Made these const char *[] - instead of char *[] to avoid compiler warnings. - - * Makefile.am: Added e-table-group-container.c, - e-table-group-container.h, e-table-group-leaf.c, - e-table-group-leaf.h, e-table-subset-variable.c, - e-table-subset-variable.h. - -2000-02-18 Miguel de Icaza <miguel@nuclecu.unam.mx> - - * e-table-header.c: Include <string.h> - - * Makefile.am (INCLUDES): Add EXTRA_GNOME_CFLAGS to INCLUDES> - -2000-02-12 Iain Holmes <ih@csd.abdn.ac.uk> - - * e-table-header-item.c (ethi_drag_motion): Check the ethi is actually - the one being dragged. Prevents crashes when trying to drag headeritems - and there are multiple headeritems on the same canvas. - (ethi_drag_end): Same. - (ethi_drag_drop): Same. - (ethi_drag_leave): Same. - -2000-02-11 Miguel de Icaza <miguel@gnu.org> - - * e-table-item.c (eti_header_structure_changed): Add nice - assertion. - -2000-02-11 Christopher James Lahey <clahey@helixcode.com> - - * test-check.c: Added test of sort arrows. - - * e-table-col.h, e-table-col.c: Added sort arrows for column - headers (It doesn't actually sort. It just displays the arrows.) - - * e-table-header-item.c: Added display of arrows. - -2000-02-11 Christopher James Lahey <clahey@helixcode.com> - - * clip.png: Test column header image. - - * test-check.c: Test pixbuf column headers. - - * e-table-col.h, e-table-col.c: Added pixbufs for column headers. - - * e-table-header-item.c (draw_button): Draw pixbuf column headers properly. - -2000-02-11 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.h, e-cell-text.c: Add an editable argument to - e_cell_text_new. - - * test-table.c, test-cols.c, test-check.c: Set the editable - argument to e_cell_text_new. - -2000-02-11 Christopher James Lahey <clahey@helixcode.com> - - * e-table-header-item.h, e-table-header-item.c: Added reordering - of columns. - - * e-table-header.c: Fixed a couple of bugs in the move column and - remove column functions. - -2000-02-11 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c: Made space around text look right. Added a - blinking cursor. - -2000-02-10 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c: Handle button releases properly. - - * e-table-header-item.c (ethi_start_drag): Added a drag icon. - -2000-02-09 Christopher James Lahey <clahey@helixcode.com> - - * e-cell-text.c: Tweaked e-cell-text. Added a white background - and tweaked the borders. - -2000-02-09 Christopher James Lahey <clahey@helixcode.com> - - * Makefile.am: Changes where e-text is included from. - -2000-02-07 Miguel de Icaza <miguel@gnu.org> - - * e-table.c (e_table_setup_table): Setup the scroll region of the - table canvas on size allocation. - (e_table_canvas_realize): Do not set the scrollregion here. - (e_table_canvas_init): Move root initialization here. - -2000-02-07 Christopher James Lahey <clahey@helixcode.com> - - * e-table-item.c (eti_event): Fixed some motion event - bugs. (incorrect x and y.) - - * Makefile.am: Added includes for dependencies in - evolution/widgets/libevolutionwidgets.a - - * e-cell-text.h, e-cell-text.c: Completely revamped using code - from e-text.c and e-text.h. - -2000-01-30 Miguel de Icaza <miguel@gnu.org> - - * e-table-simple.c (e_table_simple_new): Add data field back in. - -1999-12-30 Miguel de Icaza <miguel@gnu.org> - - * e-table-item.c (eti_attach_cell_views): New routine, creates the - cell views. - (eti_detach_cell_views): Detaches the cell_views from the - ETableItem. - (eti_realize_cell_views, eti_unrealize_cell_views): Simplified to - just do realize/unrealize notification. - (eti_add_table_model): Only attach the cells when we have both the - table model and the header model. - - * e-cell.h (ECellClass): Added two new methods: new_view and - kill_view which drive the view process (instead of putting that on - realize/unrealize). - - * e-cell.c: Adapt the code to use the new scheme for view - instantiation. - - * e-cell-text.c, e-cell-toggle.c: Adapted to the new class - changes. - -1999-12-22 Miguel de Icaza <miguel@helixcode.com> - - * e-table-item.c (e_table_item_focus): grab focus here with the - canvas method. - -1999-12-20 Miguel de Icaza <miguel@helixcode.com> - - * e-table-group.c (etg_update): Change the dimensions only if the - child changes its own. - - * e-table-item.c (eti_table_model_changed): Emit new signal on - table height change. - (eti_class_init): Register new "height_change" signal. - -1999-12-19 Damon Chaplin <damon@karuna.freeserve.co.uk> - - * Makefile.am (SUBDIRS): created SUBDIRS with meeting-time-sel. - - * meeting-time-sel/Makefile.am: - * meeting-time-sel/.cvsignore: - * meeting-time-sel/e-meeting-time-sel.h: - * meeting-time-sel/e-meeting-time-sel.c: - * meeting-time-sel/e-meeting-time-sel-item.h: - * meeting-time-sel/e-meeting-time-sel-item.c: - * meeting-time-sel/e-meeting-time-sel-list-item.h: - * meeting-time-sel/e-meeting-time-sel-list-item.c: - * meeting-time-sel/e-meeting-time-sel-mail.xpm: - * meeting-time-sel/e-meeting-time-sel-no-mail.xpm: - * meeting-time-sel/test-meeting-time-sel.c: new files implementing - the meeting time selector. - -1999-12-12 Miguel de Icaza <miguel@helixcode.com> - - * e-table-item.c (eti_class_init): X and Y arguments are now - doubles (to make it consistent with the rest of the canvas x, y - arguments). - - * e-table.c (e_table_create_leaf): Use new argument values here - - * test-*.c: Update to new argument types for x and y - - * e-table-group.c: New implementation as a canvas item used to - group childs. - - * e-table-item.c (eti_update): Make this play nicely with groups. - (eti_draw): ditto. - (eti_request_region_redraw): ditto. - (eti_item_region_redraw): New function. - - * e-table-subset.c (etss_proxy_model_row_changed): Added model - proxying. - - * e-cell.h: Drop ETableModel from the ECell; - (realize): Now takes an ETableModel - - * e-cell-checkbox.c: Adapted to new class - changes; - * e-cell-toggle.c: ditto - - * e-table-subset.c (etss_row_count): Fix this guy. - -1999-12-11 Miguel de Icaza <miguel@helixcode.com> - - * e-table-item.c (eti_unrealize_cell_views): Null the cell views. - (eti_header_structure_changed): Only unrealize/realize if we were - realized before. - - * e-table-header.c (e_table_header_add_column): Allow -1 as an - insert position - -1999-12-11 Miguel de Icaza <miguel@helixcode.com> - - * e-table.c: Massive fixage. - - * test-table.c: Updates to test the mega widget. - -1999-12-10 Miguel de Icaza <miguel@helixcode.com> - - * e-table.c: New file, implements the mega widget. - -1999-12-09 Miguel de Icaza <miguel@gnu.org> - - * e-table-header.c (e_table_header_col_diff): fix this routine. - -1999-12-04 Miguel de Icaza <miguel@gnu.org> - - * e-table-header-item.c (ethi_event): Started drag and drop - support. - - * e-table-item.c (eti_table_model_changed): The columns are - controled by the Header, not by the TableModel. - - * e-table-header-item.c (ethi_draw): Fixed redraw logic to support - arbitrary header positioning. - - * e-cell.h: Revamped e-cell interface. We now provide the model - column and the view column to all methods (so that the methods can - talk to the view and to the model at the same time). - - * e-table-item.c: Update to new API - * e-cell-test.c: Update to new API - -1999-12-03 Miguel de Icaza <miguel@gnu.org> - - * e-cell.c (e_cell_class_init): Provide emtpy methods for - enter_edit, and leave_edit. - - * e-table-item.c: Killed draw cell. - (eti_draw): Perform column mapping here. - (e_table_item_leave_edit): ditto. - (e_table_item_enter_edit): ditto. - (eti_event): ditto. - -1999-12-02 Miguel de Icaza <miguel@gnu.org> - - * e-table-header.c (e_table_header_index): fixed api. - -1999-12-01 Miguel de Icaza <miguel@gnu.org> - - * test-cols.c (multi_cols_test): Update to simplified API. - * test-check.c (check_test): ditto - * test-table.c (table_browser_test): ditto - - * e-table-simple.c (e_table_simple_class_init): Kill column_name method. - - * e-table-model.h: Kill column_name method. - - * e-table-col.c (e_table_col_new): Instead of using a column name, - use a column index. - - * e-cell-text.c (ect_draw): Keep track of the originally allocated - piece of code. - - * e-table-header-item.c (ethi_unrealize): Removed change cursor - from here. - - * e-cell-text.c (ect_draw): Memory leak fix. - - * table-test.c (main): Enhance the demo to load sample.table - automatically, to get memprof working. - - * e-table-header.c (eth_do_remove): Take an argument: do -remove. - - * e-table-header.c (e_table_header_add_column): Sink ETableCol to - own the object. - - * e-table-col.h: Made ETableCol a GtkObject to make reference - counting the lifecycle method for these objects. - - * e-table-col.c (e_table_col_destroy): New API call. - - * e-table-subset.c (e_table_subset_get_toplevel): New API call. - -1999-11-30 Miguel de Icaza <miguel@gnu.org> - - * e-cell-checkbox.c (e_cell_checkbox_new): This one derives from - e-cell-toggle. - - * check-emtpy.xpm, check-filled.xpm: new files. - - * e-cell-toggle.c (etog_draw): Paint in white. - If we have transparency enabled, do the nice alpha computation. - - * test-table.c, test-cols.c: new files; They implement the split - tests. - -1999-11-29 Miguel de Icaza <miguel@gnu.org> - - * e-table-col.c (e_table_col_new): Set etc->resizeable. - - * e-table-header-item.c (ethi_event): Handle non-resizeables - columns; Add support for minimum width. - - * e-cell-toggle.c, e-cell-toggle.h: New file. Implement a - multi-state image toggle cell object. - - * e-cell-text.c (ect_leave_edit): Handle the case of us calling - leave edit manually. - (ect_stop_editing): Leave manually editing here. - (ect_draw): Add one pixel to the border for left and right; - Handle off-screen cursor (must be improved). - (ect_edit_select_all): New function. - (ect_event): Select all text on editing start - - * e-table-item.c (eti_event): Map mouse events and dispatch them. - (eti_event): Add spreadsheet mode for editing; Enter editing only - with visual characters; - Leave editing mode when a different row has been selected. - (eti_get_height): Fix the computation for this; Fix logic for the - length_threshold. - - (eti_draw): Add borders on all sides of the box; - Only draw focus if the cell is not being edited. - -1999-11-28 Miguel de Icaza <miguel@gnu.org> - - * e-table-item.c (eti_draw): Focus inside, not outside. - (eti_realize): Enhance our focus gc. - - * e-cell-text.c (ect_enter_edit, ect_leave_edit): New methods; - They implement editing. - - * e-cell.h: new methods: enter_edit, leave_edit - - * e-table-model.h (set_value_at): make val argument const. - - * e-table-simple.c (simple_set_value_at): Make value argument const; - - * e-table-item.c (eti_set_arg): Add new mode: draw_focus; - -1999-11-27 Miguel de Icaza <miguel@gnu.org> - - * e-table-item.c (eti_event): beginning of the keyboard navigation. - - * e-table-model.c (e_table_model_row_changed): new function. - (e_table_model_cell_changed): new function. - (e_table_model_class_init): New signals. - - * e-table-item.c (eti_request_region_redraw): x2, y2 offsets were - wrong. - (eti_select): Repaint selected region. - (eti_request_region_redraw): Fix range. - (eti_draw): Correct offset computation here. - (e_table_item_class_init): New method: row_selection, handles the - selection. - - Now it implement GTK_SELECTION_SINGLE and GTK_SELECTION_MULTIPLE. - - Focusing and selection should be correct now. - -1999-11-26 Miguel de Icaza <miguel@gnu.org> - - * e-table-item.c (eti_realize): Compute height using the ecell - methods here. - (eti_get_height): new method to compute dimensions. - - * e-cursors.c: use a different cursor. - - * e-table-model.h: kill height and row_height methods. - - * e-cell.c (ec_height): New method. - - * e-cell-text.c (ect_realize): Load the font from the canvas. - (ect_draw): New color setup. - Center in the row. - (ect_height): Implement new method. - -1999-11-26 Michael Meeks <mmeeks@gnu.org> - - * ROADMAP.e-table: small spelling/typo fixes. - -1999-11-25 Miguel de Icaza <miguel@gnu.org> - - * e-table-item.c (eti_event): Work on mouse-button event - propagation to cells. - - * e-cell-text.c (ect_draw): Use CellViews now. - - * e-table-item.c (eti_realize_cell_views): New routine: Realizes - the cell views - (eti_unrealize_cell_views): New routine: unrealizes the cell views. - - * e-table-item.h: Move cell_views array here. - - * table-test.c (value_at): Fix return value. - (main): use new invocation method. - - * e-table-header-item.c (ethi_realize): Realize cells. - - * e-table-item.c (eti_header_dim_changed): redraw before and after. - - * e-table-header-item.c (ethi_event): Add continuous resizing. - -1999-11-24 Miguel de Icaza <miguel@gnu.org> - - * e-table-subset.h, e-table-subset.c: New files, used to implement - subset tables. - - * e-table-sorted.h, e-table-sorted.c: Now they derive from - e-table-subset. - - * e-cell.c, e-cell.h: realize method now return per view instance - data. - -1999-11-20 Miguel de Icaza <miguel@gnu.org> - - * e-table-item.c (eti_draw): WOOOOHOOOOOoO! It took me quite a - while to figure this one out. Fixed. - - * e-table-header-item.c (ethi_set_arg): Compute width, keep track - of it. - (ethi_add_table_header): Monitor changes to the Header model; - Queue updates. - (ethi_draw): Fix the redraw logic here. - - * table-test.c (main): Change the sample code, so we can better - debug this. - - * e-table-item.c (eti_header_structure_changed): Keep track of - width; - (eti_header_dim_changed): ditto. - (eti_draw): Many redraw fixes. - -1999-11-19 Miguel de Icaza <miguel@gnu.org> - - * e-table-item.c (eti_realize): Hook up; Load gcs. - (eti_unrealize): Hook up. - - * e-table-sorted.c: Finished implementing. - -1999-11-18 Miguel de Icaza <miguel@gnu.org> - - * e-table-model.c (e_table_model_class_init): Add model_changed - signal here. - - * e-table-item.c, e-table-item.h: New files. They implement the - view of the ETableModel as Canvas Items. - - * e-table-header-item.c (ethi_set_arg): Ref header here. - (ethi_destroy): Unref it here. - -1999-11-17 Ettore Perazzoli <ettore@gnu.org> - - * e-msg-composer-address-dialog.c: Moved to `$(srcdir)/composer'. - * e-msg-composer-address-dialog.h: Likewise. - * e-msg-composer-address-entry.c: Likewise. - * e-msg-composer-address-entry.h: Likewise. - * e-msg-composer-attachment-bar.c: Likewise. - * e-msg-composer-attachment-bar.h: Likewise. - * e-msg-composer-attachment.c: Likewise. - * e-msg-composer-attachment.h: Likewise. - * e-msg-composer-hdrs.c: Likewise. - * e-msg-composer-hdrs.h: Likewise. - * e-msg-composer.c: Likewise. - * e-msg-composer.h: Likewise. - * e-msg-composer-address-dialog.glade: Likewise. - * e-msg-composer-attachment.glade: Likewise. - * e-msg-composer.glade: Likewise. - * Makefile.am: Updated accordingly. - -Nov 14 1999 Elliot Lee - * Makefile.am: It's libevolutionwidgets.la, not .a - -1999-11-14 Miguel de Icaza <miguel@gnu.org> - - * e-table-header-item.c (is_pointer_on_division): Add resizing - capabilities. - - * e-table-sorted.c: Finish implementation. - -1999-11-13 Miguel de Icaza <miguel@gnu.org> - - * e-table-sorted.c: Implement e-table-sorted object. - -1999-11-12 Miguel de Icaza <miguel@gnu.org> - - * e-table-header-item.c: Make the thing configurable. - - * e-table-header-item.h: Add font field, location, height. - -1999-11-12 Ettore Perazzoli <ettore@gnu.org> - - * e-msg-composer-hdrs.c: New member `tooltips' in `struct - _EMsgComposerHdrsPrivate'. - (init): Initialize it. - (destroy): New function. - (class_init): Install it as the `destroy' GtkObject method. - (add_header): New parameters `tip', `tip_private'. Setup a - tooltip for the entry with them. - (setup_headers): Updated accordingly. - -1999-11-11 Miguel de Icaza <miguel@gnu.org> - - * e-table-header.c (e_table_header_add_column): Update offsets. - (eth_update_offsets): New routine. - - * e-table-col.h, e-table-col.c: New files. - - * e-table-header.h (e_table_header_get_selected_indexes): - Pretify. - - * table-test.c (main): New file; used for testing ETable package. - - * e-table-simple.h: Fix type. - -1999-11-12 Ettore Perazzoli <ettore@gnu.org> - - * e-msg-composer-address-dialog.glade: Cosmetical changes. - - * e-msg-composer-attachment-bar.c (size_to_string): New helper - function. - (update): Put the size in the icon's label using this function. - (ICON_SEPARATORS): Remove '.' to avoid wrapping of the size string - on the decimal dot. But gnome-libs is broken and this has no real - effect! :-( - (e_msg_composer_attachment_bar_new): No longer make text editable. - Use the `GTK_SELECTION_MULTIPLE' selection mode. - (remove_selected): No longer assume only one attachment is - selected. - - * e-msg-composer-attachment.c: #include <sys/stat.h> - (init): Initialize all the members. - (e_msg_composer_attachment_new): Set size using `stat()'. - - * e-msg-composer-attachment.h: New member `size' in `struct - _EMsgComposerAttachment'. - - * e-msg-composer.c (setup_signals): Connect `address_dialog_cb' to - the "show_address_dialog" signal of the header widget. - - * e-msg-composer-hdrs.c (add_address_header): Renamed to - `add_header'. New parameter `addrbook_button': if true, use a - button instead of a label and make it trigger an - "show_address_dialog" signal. - (address_button_clicked_cb): Signal handler to handle this on a - "clicked" signal from the button. - (setup_headers): Updated accordingly. Also, make "Subject" the - last item. (This makes it look more like Outlook and friends.) - - * e-msg-composer-hdrs.c: New signal "show_address_dialog". - * e-msg-composer-hdrs.h: Updated accordingly. - - * e-msg-composer-hdrs.c (add_address_header): Reduce padding - considerably. - - * e-msg-composer.c (e_msg_composer_construct): Do not use any - padding in the main vbox. - - * Makefile.am: Moved the `e-table*' sources to `EXTRA_DIST'. - Compile as a shared library. - -1999-11-08 Ettore Perazzoli <ettore@gnu.org> - - * e-msg-composer-address-dialog.c: Implemented cut & paste for the - recipient lists. - (init): Initialize `cut_buffer'. - (destroy): Free it. - (recipient_clist_selection_get_cb): New function. - (recipient_clist_selection_received_cb): New function. - (recipient_clist_selection_clear_event_cb): New function. - (setup_recipient_list_signals): Install them as signal handlers - for "selection_get", "selection_received" and - "selection_clear_event" respectively. - (copy_recipient_cb): New function implementing the "copy" - operation. - (cut_recipient_cb): New function implementing the "cut" operation. - (paste_recipient_cb): New function implementing the "paste" - operation. - - * e-msg-composer-address-dialog.h: New member `cut_buffer' in - `struct _EMsgComposerAddressDialog'. - -1999-11-07 Ettore Perazzoli <ettore@gnu.org> - - * e-msg-composer-address-dialog.c: New context menu - `recipient_list_popup_info' for the recipient CLists. - (recipient_clist_button_press_cb): New function. - (setup_signals): Install it as the "button_press_event" signal - handler for popping up the CList context menu. - - * e-msg-composer.c (free_string_list): New helper function. - (setup_address_dialog): Setup the initial values in the address - dialog according to the ones in the header widget. - - * e-msg-composer-hdrs.c (e_msg_composer_hdrs_get_to): New function. - (e_msg_composer_hdrs_get_cc): New function. - (e_msg_composer_hdrs_get_bcc): New function. - - * e-msg-composer.c (setup_address_dialog): New helper function. - (address_dialog_cb): Use it. - - * e-msg-composer-address-dialog.c (add_address): Do not set the - row data anymore. Instead, put the full address description - (i.e. complete with the email address, not just the full name) in - the CList. - (add_address): Do nothing if no item is selected in the address - CList. - (get_list): Get the address list from the CList without passing - through the address CList. - (set_list): New helper function. - (e_msg_composer_address_dialog_set_to_list): New function. - (e_msg_composer_address_dialog_set_cc_list): New function. - (e_msg_composer_address_dialog_set_bcc_list): New function. - - * e-msg-composer.c (address_dialog_apply_cb): Apply values from - the address dialog into the composer. - - * e-msg-composer-hdrs.c (e_msg_composer_hdrs_set_to): New function. - (e_msg_composer_hdrs_set_cc): New function. - (e_msg_composer_hdrs_set_bcc): New function. - - * e-msg-composer-address-entry.c - (e_msg_composer_address_entry_set_list): New function. - - * e-msg-composer-address-dialog.c (apply): New helper function. - (clicked): New function, `clicked' method for the `GnomeDialog' - class. - (class_init): Install it. - -1999-11-06 Ettore Perazzoli <ettore@gnu.org> - - * e-msg-composer-attachment-bar.c (destroy): Call the destroy - method of the parent class. - - * e-msg-composer.c: #include "e-msg-composer-address-dialog.h". - (address_dialog_cb): New callback to start the address dialog. - (setup_signals): Connect it to the appropriate button/menu item. - (init): Initialize the new `address_dialog' member to NULL. - (destroy): Destroy the `address_dialog' if not NULL. - - * e-msg-composer.h: New member `address_dialog' in `struct - _EMsgComposer'. - - * e-msg-composer.glade: Added button to activate the address - composition dialog. - - * e-msg-composer-address-dialog.h, e-msg-composer-address-dialog.c: - New files implementing the address composition dialog for Evolution. - - * e-msg-composer-address-dialog.glade: New file. - - * e-msg-composer-attachment.c: `signals' made static. - -1999-11-05 Ettore Perazzoli <ettore@gnu.org> - - * Makefile.am: Compile the new files in a `libevolutionwidgets' - library. - (CPPFLAGS): #define `E_GUIDIR'. - - * e-msg-composer.c, e-msg-composer.h: New files implementing an - initial version of the Evolution message composer widget. - - * e-msg-composer-address-entry.c, e-msg-composer-address-entry.h: - New files implementing a GtkEntry customized for entering email - address lists. - - * e-msg-composer-attachment-bar.c, e-msg-composer-attachment-bar.h: - New files implementing a widget for editing mail attachments. - - * e-msg-composer-attachment.c, e-msg-composer-attachment.h: New - files implementing file attachment objects for the message - composer. - - * e-msg-composer-hdrs.c, e-msg-composer-hdrs.h: New files - implementing a widget for editing of email message headers. - - * e-msg-composer-attachment.glade: New file. - * e-msg-composer.glade: New file. - -1999-10-31 Miguel de Icaza <miguel@gnu.org> - - * widgets/e-table-column.c, e-table-column.h: New file, implements the - e-table-column object. - - * widget/e-table-model.h, e-table-model.c, e-table-simple.c, - e-table-simple.h: New files. Implements the column model and - a simple table wrapper. - diff --git a/widgets/table/e-cell-combo.c b/widgets/table/e-cell-combo.c index 31e6c29b99..186ae4dfed 100644 --- a/widgets/table/e-cell-combo.c +++ b/widgets/table/e-cell-combo.c @@ -126,6 +126,7 @@ e_cell_combo_init (ECellCombo *ecc) AtkObject *a11y; GtkListStore *store; GtkTreeSelection *selection; + GtkScrolledWindow *scrolled_window; /* We create one popup window for the ECell, since there will only ever be one popup in use at a time. */ @@ -140,11 +141,13 @@ e_cell_combo_init (ECellCombo *ecc) gtk_widget_show (frame); ecc->popup_scrolled_window = gtk_scrolled_window_new (NULL, NULL); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (ecc->popup_scrolled_window), + scrolled_window = GTK_SCROLLED_WINDOW (ecc->popup_scrolled_window); + + gtk_scrolled_window_set_policy (scrolled_window, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - GTK_WIDGET_UNSET_FLAGS (GTK_SCROLLED_WINDOW (ecc->popup_scrolled_window)->hscrollbar, GTK_CAN_FOCUS); - GTK_WIDGET_UNSET_FLAGS (GTK_SCROLLED_WINDOW (ecc->popup_scrolled_window)->vscrollbar, GTK_CAN_FOCUS); + gtk_widget_set_can_focus (gtk_scrolled_window_get_hscrollbar (scrolled_window), FALSE); + gtk_widget_set_can_focus (gtk_scrolled_window_get_vscrollbar (scrolled_window), FALSE); gtk_container_add (GTK_CONTAINER (frame), ecc->popup_scrolled_window); gtk_widget_show (ecc->popup_scrolled_window); @@ -330,24 +333,33 @@ e_cell_combo_select_matching_item (ECellCombo *ecc) static void e_cell_combo_show_popup (ECellCombo *ecc, gint row, gint view_col) { + GdkWindow *window; + GtkAllocation allocation; gint x, y, width, height, old_width, old_height; + gtk_widget_get_allocation (ecc->popup_window, &allocation); + /* This code is practically copied from GtkCombo. */ - old_width = ecc->popup_window->allocation.width; - old_height = ecc->popup_window->allocation.height; + old_width = allocation.width; + old_height = allocation.height; e_cell_combo_get_popup_pos (ecc, row, view_col, &x, &y, &height, &width); /* workaround for gtk_scrolled_window_size_allocate bug */ if (old_width != width || old_height != height) { - gtk_widget_hide (GTK_SCROLLED_WINDOW (ecc->popup_scrolled_window)->hscrollbar); - gtk_widget_hide (GTK_SCROLLED_WINDOW (ecc->popup_scrolled_window)->vscrollbar); + gtk_widget_hide ( + gtk_scrolled_window_get_hscrollbar ( + GTK_SCROLLED_WINDOW (ecc->popup_scrolled_window))); + gtk_widget_hide ( + gtk_scrolled_window_get_vscrollbar ( + GTK_SCROLLED_WINDOW (ecc->popup_scrolled_window))); } gtk_window_move (GTK_WINDOW (ecc->popup_window), x, y); gtk_widget_set_size_request (ecc->popup_window, width, height); gtk_widget_realize (ecc->popup_window); - gdk_window_resize (ecc->popup_window->window, width, height); + window = gtk_widget_get_window (ecc->popup_window); + gdk_window_resize (window, width, height); gtk_widget_show (ecc->popup_window); e_cell_popup_set_shown (E_CELL_POPUP (ecc), TRUE); @@ -367,8 +379,15 @@ e_cell_combo_get_popup_pos (ECellCombo *ecc, ECellPopup *ecp = E_CELL_POPUP (ecc); ETableItem *eti = E_TABLE_ITEM (ecp->popup_cell_view->cell_view.e_table_item_view); GtkWidget *canvas = GTK_WIDGET (GNOME_CANVAS_ITEM (eti)->canvas); + GtkWidget *widget; + GtkWidget *popwin_child; + GtkWidget *popup_child; + GtkStyle *popwin_style; + GtkStyle *popup_style; + GdkWindow *window; GtkBin *popwin; GtkScrolledWindow *popup; + GtkRequisition requisition; GtkRequisition list_requisition; gboolean show_vscroll = FALSE, show_hscroll = FALSE; gint avail_height, avail_width, min_height, work_height, screen_width; @@ -380,7 +399,8 @@ e_cell_combo_get_popup_pos (ECellCombo *ecc, popup = GTK_SCROLLED_WINDOW (ecc->popup_scrolled_window); popwin = GTK_BIN (ecc->popup_window); - gdk_window_get_origin (canvas->window, x, y); + window = gtk_widget_get_window (canvas); + gdk_window_get_origin (window, x, y); x1 = e_table_header_col_diff (eti->header, 0, view_col + 1); y1 = e_table_item_row_diff (eti, 0, row + 1); @@ -402,10 +422,16 @@ e_cell_combo_get_popup_pos (ECellCombo *ecc, *x += x1; /* The ETable positions don't include the grid lines, I think, so we add 1. */ *y += y1 + 1 - - (gint)((GnomeCanvas *)canvas)->layout.vadjustment->value + - (gint)gtk_adjustment_get_value ( + gtk_layout_get_vadjustment ( + &((GnomeCanvas *)canvas)->layout)) + ((GnomeCanvas *)canvas)->zoom_yofs; - scrollbar_width = popup->vscrollbar->requisition.width + widget = gtk_scrolled_window_get_vscrollbar (popup); + gtk_widget_get_child_requisition (widget, &requisition); + + scrollbar_width = + requisition.width + GTK_SCROLLED_WINDOW_CLASS (GTK_OBJECT_GET_CLASS (popup))->scrollbar_spacing; avail_height = gdk_screen_height () - *y; @@ -415,19 +441,27 @@ e_cell_combo_get_popup_pos (ECellCombo *ecc, screen_width = gdk_screen_width (); avail_width = screen_width - scrollbar_width; + widget = gtk_scrolled_window_get_vscrollbar (popup); + gtk_widget_get_child_requisition (widget, &requisition); + gtk_widget_size_request (ecc->popup_tree_view, &list_requisition); - min_height = MIN (list_requisition.height, - popup->vscrollbar->requisition.height); + min_height = MIN (list_requisition.height, requisition.height); if (!gtk_tree_model_iter_n_children (gtk_tree_view_get_model (GTK_TREE_VIEW (ecc->popup_tree_view)), NULL)) list_requisition.height += E_CELL_COMBO_LIST_EMPTY_HEIGHT; + popwin_child = gtk_bin_get_child (popwin); + popwin_style = gtk_widget_get_style (popwin_child); + + popup_child = gtk_bin_get_child (GTK_BIN (popup)); + popup_style = gtk_widget_get_style (popup_child); + /* Calculate the desired width. */ *width = list_requisition.width - + 2 * popwin->child->style->xthickness - + 2 * GTK_CONTAINER (popwin->child)->border_width - + 2 * GTK_CONTAINER (popup)->border_width - + 2 * GTK_CONTAINER (GTK_BIN (popup)->child)->border_width - + 2 * GTK_BIN (popup)->child->style->xthickness; + + 2 * popwin_style->xthickness + + 2 * gtk_container_get_border_width (GTK_CONTAINER (popwin_child)) + + 2 * gtk_container_get_border_width (GTK_CONTAINER (popup)) + + 2 * gtk_container_get_border_width (GTK_CONTAINER (popup_child)) + + 2 * popup_style->xthickness; /* Use at least the same width as the column. */ if (*width < column_width) @@ -441,15 +475,19 @@ e_cell_combo_get_popup_pos (ECellCombo *ecc, } /* Calculate all the borders etc. that we need to add to the height. */ - work_height = (2 * popwin->child->style->ythickness - + 2 * GTK_CONTAINER (popwin->child)->border_width - + 2 * GTK_CONTAINER (popup)->border_width - + 2 * GTK_CONTAINER (GTK_BIN (popup)->child)->border_width - + 2 * GTK_BIN (popup)->child->style->xthickness); + work_height = (2 * popwin_style->ythickness + + 2 * gtk_container_get_border_width (GTK_CONTAINER (popwin_child)) + + 2 * gtk_container_get_border_width (GTK_CONTAINER (popup)) + + 2 * gtk_container_get_border_width (GTK_CONTAINER (popup_child)) + + 2 * popup_style->xthickness); + + widget = gtk_scrolled_window_get_hscrollbar (popup); + gtk_widget_get_child_requisition (widget, &requisition); /* Add on the height of the horizontal scrollbar if we need it. */ if (show_hscroll) - work_height += popup->hscrollbar->requisition.height + + work_height += + requisition.height + GTK_SCROLLED_WINDOW_CLASS (GTK_OBJECT_GET_CLASS (popup))->scrollbar_spacing; /* Check if it fits in the available height. */ @@ -494,11 +532,7 @@ e_cell_combo_selection_changed (GtkTreeSelection *selection, ECellCombo *ecc) GtkTreeIter iter; GtkTreeModel *model; -#if GTK_CHECK_VERSION(2,19,7) if (!gtk_widget_get_realized (ecc->popup_window) || !gtk_tree_selection_get_selected (selection, &model, &iter)) -#else - if (!GTK_WIDGET_REALIZED (ecc->popup_window) || !gtk_tree_selection_get_selected (selection, &model, &iter)) -#endif return; e_cell_combo_update_cell (ecc); @@ -526,7 +560,7 @@ e_cell_combo_button_press (GtkWidget *popup_window, presses outside the application will be reported to this window, which is why we hide the popup in this case. */ while (event_widget) { - event_widget = event_widget->parent; + event_widget = gtk_widget_get_parent (event_widget); if (event_widget == ecc->popup_tree_view) return FALSE; } @@ -564,7 +598,7 @@ e_cell_combo_button_release (GtkWidget *popup_window, /* See if the button was released in the list (or its children). */ while (event_widget && event_widget != ecc->popup_tree_view) - event_widget = event_widget->parent; + event_widget = gtk_widget_get_parent (event_widget); /* If it wasn't, then we just ignore the event. */ if (event_widget != ecc->popup_tree_view) @@ -601,11 +635,7 @@ e_cell_combo_key_press (GtkWidget *popup_window, && event->keyval != GDK_3270_Enter) return FALSE; -#if GTK_CHECK_VERSION(2,19,7) if (event->keyval == GDK_Escape && (!ecc->popup_window||!gtk_widget_get_visible (ecc->popup_window))) -#else - if (event->keyval == GDK_Escape && (!ecc->popup_window||!GTK_WIDGET_VISIBLE (ecc->popup_window))) -#endif return FALSE; gtk_grab_remove (ecc->popup_window); diff --git a/widgets/table/e-cell-date-edit.c b/widgets/table/e-cell-date-edit.c index 692614ff14..cab6c816ee 100644 --- a/widgets/table/e-cell-date-edit.c +++ b/widgets/table/e-cell-date-edit.c @@ -383,32 +383,16 @@ e_cell_date_edit_get_property (GObject *object, switch (property_id) { case PROP_SHOW_TIME: -#if GTK_CHECK_VERSION(2,19,7) g_value_set_boolean (value, gtk_widget_get_visible (ecde->time_entry)); -#else - g_value_set_boolean (value, GTK_WIDGET_VISIBLE (ecde->time_entry)); -#endif return; case PROP_SHOW_NOW_BUTTON: -#if GTK_CHECK_VERSION(2,19,7) g_value_set_boolean (value, gtk_widget_get_visible (ecde->now_button)); -#else - g_value_set_boolean (value, GTK_WIDGET_VISIBLE (ecde->now_button)); -#endif return; case PROP_SHOW_TODAY_BUTTON: -#if GTK_CHECK_VERSION(2,19,7) g_value_set_boolean (value, gtk_widget_get_visible (ecde->today_button)); -#else - g_value_set_boolean (value, GTK_WIDGET_VISIBLE (ecde->today_button)); -#endif return; case PROP_ALLOW_NO_DATE_SET: -#if GTK_CHECK_VERSION(2,19,7) g_value_set_boolean (value, gtk_widget_get_visible (ecde->none_button)); -#else - g_value_set_boolean (value, GTK_WIDGET_VISIBLE (ecde->none_button)); -#endif return; case PROP_USE_24_HOUR_FORMAT: g_value_set_boolean (value, ecde->use_24_hour_format); @@ -503,6 +487,7 @@ e_cell_date_edit_do_popup (ECellPopup *ecp, gint view_col) { ECellDateEdit *ecde = E_CELL_DATE_EDIT (ecp); + GdkWindow *window; e_cell_date_edit_show_popup (ecde, row, view_col); e_cell_date_edit_set_popup_values (ecde); @@ -511,7 +496,8 @@ e_cell_date_edit_do_popup (ECellPopup *ecp, /* Set the focus to the first widget. */ gtk_widget_grab_focus (ecde->time_entry); - gdk_window_focus (ecde->popup_window->window, GDK_CURRENT_TIME); + window = gtk_widget_get_window (ecde->popup_window); + gdk_window_focus (window, GDK_CURRENT_TIME); return TRUE; } @@ -627,6 +613,7 @@ e_cell_date_edit_show_popup (ECellDateEdit *ecde, gint row, gint view_col) { + GdkWindow *window; gint x, y, width, height; if (ecde->need_time_list_rebuild) @@ -636,10 +623,11 @@ e_cell_date_edit_show_popup (ECellDateEdit *ecde, e_cell_date_edit_get_popup_pos (ecde, row, view_col, &x, &y, &height, &width); + window = gtk_widget_get_window (ecde->popup_window); gtk_window_move (GTK_WINDOW (ecde->popup_window), x, y); gtk_widget_set_size_request (ecde->popup_window, width, height); gtk_widget_realize (ecde->popup_window); - gdk_window_resize (ecde->popup_window->window, width, height); + gdk_window_resize (window, width, height); gtk_widget_show (ecde->popup_window); e_cell_popup_set_shown (E_CELL_POPUP (ecde), TRUE); @@ -659,10 +647,15 @@ e_cell_date_edit_get_popup_pos (ECellDateEdit *ecde, ETableItem *eti = E_TABLE_ITEM (ecp->popup_cell_view->cell_view.e_table_item_view); GtkWidget *canvas = GTK_WIDGET (GNOME_CANVAS_ITEM (eti)->canvas); GtkRequisition popup_requisition; + GtkAdjustment *adjustment; + GtkLayout *layout; + GdkWindow *window; gint avail_height, screen_width, column_width, row_height; gdouble x1, y1, wx, wy; + gint value; - gdk_window_get_origin (canvas->window, x, y); + window = gtk_widget_get_window (canvas); + gdk_window_get_origin (window, x, y); x1 = e_table_header_col_diff (eti->header, 0, view_col + 1); y1 = e_table_item_row_diff (eti, 0, row + 1); @@ -684,9 +677,10 @@ e_cell_date_edit_get_popup_pos (ECellDateEdit *ecde, *x += x1; /* The ETable positions don't include the grid lines, I think, so we add 1. */ - *y += y1 + 1 - - (gint)((GnomeCanvas *)canvas)->layout.vadjustment->value - + ((GnomeCanvas *)canvas)->zoom_yofs; + layout = &GNOME_CANVAS (canvas)->layout; + adjustment = gtk_layout_get_vadjustment (layout); + value = (gint) gtk_adjustment_get_value (adjustment); + *y += y1 + 1 - value + ((GnomeCanvas *)canvas)->zoom_yofs; avail_height = gdk_screen_height () - *y; diff --git a/widgets/table/e-cell-pixbuf.c b/widgets/table/e-cell-pixbuf.c index eb7b1330c3..1d536026fc 100644 --- a/widgets/table/e-cell-pixbuf.c +++ b/widgets/table/e-cell-pixbuf.c @@ -354,22 +354,22 @@ e_cell_pixbuf_class_init (ECellPixbufClass *klass) g_object_class_install_property (object_class, PROP_SELECTED_COLUMN, g_param_spec_int ("selected_column", - _("Selected Column"), - /*_( */"XXX blurb" /*)*/, + "Selected Column", + NULL, 0, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_FOCUSED_COLUMN, g_param_spec_int ("focused_column", - _("Focused Column"), - /*_( */"XXX blurb" /*)*/, + "Focused Column", + NULL, 0, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_UNSELECTED_COLUMN, g_param_spec_int ("unselected_column", - _("Unselected Column"), - /*_( */"XXX blurb" /*)*/, + "Unselected Column", + NULL, 0, G_MAXINT, 0, G_PARAM_READWRITE)); } diff --git a/widgets/table/e-cell-popup.c b/widgets/table/e-cell-popup.c index 6deb4c46a9..32de41ecb4 100644 --- a/widgets/table/e-cell-popup.c +++ b/widgets/table/e-cell-popup.c @@ -277,6 +277,8 @@ ecp_draw (ECellView *ecv, GdkDrawable *drawable, ecp->popup_arrow_shown = show_popup_arrow; if (show_popup_arrow) { + GtkStyle *style; + e_cell_draw (ecp_view->child_view, drawable, model_col, view_col, row, flags, x1, y1, x2 - E_CELL_POPUP_ARROW_WIDTH, y2); @@ -291,11 +293,13 @@ ecp_draw (ECellView *ecv, GdkDrawable *drawable, else shadow = GTK_SHADOW_OUT; - gtk_paint_box (canvas->style, drawable, + style = gtk_widget_get_style (canvas); + + gtk_paint_box (style, drawable, GTK_STATE_NORMAL, shadow, &rect, canvas, "ecellpopup", rect.x, rect.y, rect.width, rect.height); - gtk_paint_arrow (canvas->style, drawable, + gtk_paint_arrow (style, drawable, GTK_STATE_NORMAL, GTK_SHADOW_NONE, &rect, canvas, NULL, GTK_ARROW_DOWN, TRUE, diff --git a/widgets/table/e-cell-text.c b/widgets/table/e-cell-text.c index f0509e4590..077357c5d6 100644 --- a/widgets/table/e-cell-text.c +++ b/widgets/table/e-cell-text.c @@ -274,6 +274,7 @@ ect_queue_redraw (ECellTextView *text_view, gint view_col, gint view_row) static void ect_stop_editing (ECellTextView *text_view, gboolean commit) { + GdkWindow *window; CellEdit *edit = text_view->edit; gint row, view_col, model_col; gchar *old_text, *text; @@ -281,6 +282,8 @@ ect_stop_editing (ECellTextView *text_view, gboolean commit) if (!edit) return; + window = gtk_widget_get_window (GTK_WIDGET (text_view->canvas)); + row = edit->row; view_col = edit->view_col; model_col = edit->model_col; @@ -290,7 +293,7 @@ ect_stop_editing (ECellTextView *text_view, gboolean commit) if (edit->tep) g_object_unref (edit->tep); if (!edit->default_cursor_shown) { - gdk_window_set_cursor (GTK_WIDGET(text_view->canvas)->window, NULL); + gdk_window_set_cursor (window, NULL); edit->default_cursor_shown = TRUE; } if (edit->timeout_id) { @@ -389,8 +392,10 @@ static void ect_realize (ECellView *ecell_view) { ECellTextView *text_view = (ECellTextView *) ecell_view; + GdkWindow *window; - text_view->gc = gdk_gc_new (GTK_WIDGET (text_view->canvas)->window); + window = gtk_widget_get_window (GTK_WIDGET (text_view->canvas)); + text_view->gc = gdk_gc_new (window); text_view->i_cursor = gdk_cursor_new (GDK_XTERM); @@ -608,7 +613,7 @@ build_layout (ECellTextView *text_view, gint row, const gchar *text, gint width) } pango_layout_set_width (layout, width * PANGO_SCALE); - pango_layout_set_wrap (layout, PANGO_WRAP_CHAR); + pango_layout_set_wrap (layout, PANGO_WRAP_WORD_CHAR); pango_layout_set_ellipsize (layout, PANGO_ELLIPSIZE_END); pango_layout_set_height (layout, 0); @@ -730,21 +735,20 @@ ect_draw (ECellView *ecell_view, GdkDrawable *drawable, GdkColor *foreground; GtkWidget *canvas = GTK_WIDGET (text_view->canvas); GdkRectangle clip_rect; + GtkStyle *style; gint x_origin, y_origin, vspacing; + style = gtk_widget_get_style (canvas); + selected = flags & E_CELL_SELECTED; if (selected) { -#if GTK_CHECK_VERSION(2,19,7) if (gtk_widget_has_focus (canvas)) -#else - if (GTK_WIDGET_HAS_FOCUS (canvas)) -#endif - foreground = &canvas->style->fg [GTK_STATE_SELECTED]; + foreground = &style->fg[GTK_STATE_SELECTED]; else - foreground = &canvas->style->fg [GTK_STATE_ACTIVE]; + foreground = &style->fg[GTK_STATE_ACTIVE]; } else { - foreground = &canvas->style->text [GTK_STATE_NORMAL]; + foreground = &style->text[GTK_STATE_NORMAL]; if (ect->color_column != -1) { gchar *color_spec; @@ -805,11 +809,11 @@ ect_draw (ECellView *ecell_view, GdkDrawable *drawable, end_index = edit->selection_start ^ edit->selection_end ^ start_index; if (edit->has_selection) { - selection_gc = canvas->style->base_gc [GTK_STATE_SELECTED]; - text_gc = canvas->style->text_gc[GTK_STATE_SELECTED]; + selection_gc = style->base_gc[GTK_STATE_SELECTED]; + text_gc = style->text_gc[GTK_STATE_SELECTED]; } else { - selection_gc = canvas->style->base_gc [GTK_STATE_ACTIVE]; - text_gc = canvas->style->text_gc[GTK_STATE_ACTIVE]; + selection_gc = style->base_gc [GTK_STATE_ACTIVE]; + text_gc = style->text_gc[GTK_STATE_ACTIVE]; } gdk_gc_set_clip_rectangle (selection_gc, &clip_rect); @@ -1126,7 +1130,10 @@ ect_event (ECellView *ecell_view, GdkEvent *event, gint model_col, gint view_col #endif if (edit_display) { if (edit->default_cursor_shown) { - gdk_window_set_cursor (canvas->window, text_view->i_cursor); + GdkWindow *window; + + window = gtk_widget_get_window (canvas); + gdk_window_set_cursor (window, text_view->i_cursor); edit->default_cursor_shown = FALSE; } } @@ -1137,7 +1144,10 @@ ect_event (ECellView *ecell_view, GdkEvent *event, gint model_col, gint view_col #endif if (edit_display) { if (!edit->default_cursor_shown) { - gdk_window_set_cursor (canvas->window, NULL); + GdkWindow *window; + + window = gtk_widget_get_window (canvas); + gdk_window_set_cursor (window, NULL); edit->default_cursor_shown = TRUE; } } @@ -1334,6 +1344,7 @@ ect_print (ECellView *ecell_view, GtkPrintContext *context, ECellText *ect = E_CELL_TEXT(ecell_view->ecell); ECellTextView *ectView = (ECellTextView *)ecell_view; GtkWidget *canvas = GTK_WIDGET(ectView->canvas); + GtkStyle *style; PangoDirection dir; gboolean strikeout, underline; cairo_t *cr; @@ -1345,7 +1356,7 @@ ect_print (ECellView *ecell_view, GtkPrintContext *context, cairo_save (cr); layout = gtk_print_context_create_pango_layout (context); - font_des = pango_font_description_from_string ("sans 12"); /* fix me font hardcoded */ + font_des = pango_font_description_from_string ("sans 10"); /* fix me font hardcoded */ pango_layout_set_font_description (layout, font_des); pango_layout_set_text (layout, string, -1); @@ -1355,12 +1366,14 @@ ect_print (ECellView *ecell_view, GtkPrintContext *context, cairo_rectangle (cr, 2, 2, width + 2, height + 2); cairo_clip(cr); + style = gtk_widget_get_style (canvas); pango_context = gtk_widget_get_pango_context (canvas); - font_metrics = pango_context_get_metrics (pango_context, - canvas->style->font_desc, pango_context_get_language(pango_context)); - ty = (gdouble)(text_height - - pango_font_metrics_get_ascent (font_metrics) - - pango_font_metrics_get_descent (font_metrics)) / 2.0 /(gdouble)PANGO_SCALE; + font_metrics = pango_context_get_metrics ( + pango_context, style->font_desc, + pango_context_get_language(pango_context)); + ty = (gdouble)(text_height - + pango_font_metrics_get_ascent (font_metrics) - + pango_font_metrics_get_descent (font_metrics)) / 2.0 /(gdouble)PANGO_SCALE; strikeout = ect->strikeout_column >= 0 && row >= 0 && e_table_model_value_at (ecell_view->e_table_model, ect->strikeout_column, row); @@ -1402,6 +1415,7 @@ ect_print (ECellView *ecell_view, GtkPrintContext *context, cairo_move_to(cr, 2, text_height- 5); pango_layout_set_width (layout, (width - 4)*PANGO_SCALE); + pango_layout_set_wrap (layout, PANGO_WRAP_CHAR); pango_cairo_show_layout(cr, layout); cairo_restore (cr); @@ -1422,7 +1436,27 @@ ect_print_height (ECellView *ecell_view, GtkPrintContext *context, * Height of some special font is much higher than others, * such as Arabic. So leave some more margin for cell. */ - return 16 + 8; + PangoFontDescription *font_des; + PangoLayout *layout; + ECellText *ect = E_CELL_TEXT(ecell_view->ecell); + gchar *string; + gdouble text_width = 0.0, text_height = 0.0; + gint lines=1; + + string = e_cell_text_get_text(ect, ecell_view->e_table_model, model_col, row); + + layout = gtk_print_context_create_pango_layout (context); + font_des = pango_font_description_from_string ("sans 10"); /* fix me font hardcoded */ + pango_layout_set_font_description (layout, font_des); + + pango_layout_set_text (layout, string, -1); + get_font_size (layout, font_des, string, &text_width, &text_height); + /* Checking if the text width goes beyond the column width to increase the + * number of lines. + */ + if ( text_width > width-4) + lines = (text_width / (width-4)) + 1; + return 16*lines + 8; } static gint @@ -1628,43 +1662,43 @@ e_cell_text_class_init (ECellTextClass *klass) g_object_class_install_property (object_class, PROP_STRIKEOUT_COLUMN, g_param_spec_int ("strikeout_column", - _("Strikeout Column"), - /*_( */"XXX blurb" /*)*/, + "Strikeout Column", + NULL, -1, G_MAXINT, -1, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_UNDERLINE_COLUMN, g_param_spec_int ("underline_column", - _("Underline Column"), - /*_( */"XXX blurb" /*)*/, + "Underline Column", + NULL, -1, G_MAXINT, -1, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_BOLD_COLUMN, g_param_spec_int ("bold_column", - _("Bold Column"), - /*_( */"XXX blurb" /*)*/, + "Bold Column", + NULL, -1, G_MAXINT, -1, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_COLOR_COLUMN, g_param_spec_int ("color_column", - _("Color Column"), - /*_( */"XXX blurb" /*)*/, + "Color Column", + NULL, -1, G_MAXINT, -1, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_EDITABLE, g_param_spec_boolean ("editable", - _("Editable"), - /*_( */"XXX blurb" /*)*/, + "Editable", + NULL, FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_BG_COLOR_COLUMN, g_param_spec_int ("bg_color_column", - _("BG Color Column"), - /*_( */"XXX blurb" /*)*/, + "BG Color Column", + NULL, -1, G_MAXINT, -1, G_PARAM_READWRITE)); diff --git a/widgets/table/e-cell-toggle.c b/widgets/table/e-cell-toggle.c index 5f7cc66321..08a9d8dcc3 100644 --- a/widgets/table/e-cell-toggle.c +++ b/widgets/table/e-cell-toggle.c @@ -173,8 +173,10 @@ static void cell_toggle_realize (ECellView *ecell_view) { ECellToggleView *toggle_view = (ECellToggleView *) ecell_view; + GdkWindow *window; - toggle_view->gc = gdk_gc_new (GTK_WIDGET (toggle_view->canvas)->window); + window = gtk_widget_get_window (GTK_WIDGET (toggle_view->canvas)); + toggle_view->gc = gdk_gc_new (window); } static void diff --git a/widgets/table/e-cell-tree.c b/widgets/table/e-cell-tree.c index 8a8017e2e7..b5506af13b 100644 --- a/widgets/table/e-cell-tree.c +++ b/widgets/table/e-cell-tree.c @@ -169,11 +169,13 @@ static void ect_realize (ECellView *ecell_view) { ECellTreeView *tree_view = (ECellTreeView *) ecell_view; + GdkWindow *window; /* realize our subcell view */ e_cell_realize (tree_view->subcell_view); - tree_view->gc = gdk_gc_new (GTK_WIDGET (tree_view->canvas)->window); + window = gtk_widget_get_window (GTK_WIDGET (tree_view->canvas)); + tree_view->gc = gdk_gc_new (window); gdk_gc_set_line_attributes (tree_view->gc, 1, GDK_LINE_ON_OFF_DASH, @@ -229,11 +231,19 @@ draw_retro_expander (ECellTreeView *ectv, GdkDrawable *drawable, gboolean expand static void draw_expander (ECellTreeView *ectv, GdkDrawable *drawable, GtkExpanderStyle expander_style, GtkStateType state, GdkRectangle *rect) { - GtkWidget *tree = GTK_WIDGET (ectv->canvas)->parent; + GtkStyle *style; + GtkWidget *tree; gint exp_size; + + tree = gtk_widget_get_parent (GTK_WIDGET (ectv->canvas)); + style = gtk_widget_get_style (tree); + gtk_widget_style_get (tree, "expander_size", &exp_size, NULL); - gtk_paint_expander (tree->style, drawable, state, rect, tree, "treeview", rect->x + rect->width - exp_size / 2, rect->y + rect->height / 2, expander_style); + gtk_paint_expander ( + style, drawable, state, rect, tree, "treeview", + rect->x + rect->width - exp_size / 2, + rect->y + rect->height / 2, expander_style); } /* @@ -250,12 +260,16 @@ ect_draw (ECellView *ecell_view, GdkDrawable *drawable, ETreePath node; GdkRectangle rect, *clip_rect = NULL; GtkWidget *canvas = GTK_WIDGET (tree_view->canvas); - GdkGC *fg_gc = canvas->style->fg_gc[GTK_STATE_ACTIVE]; + GtkStyle *style; + GdkGC *fg_gc; GdkColor *foreground; gboolean selected; gint offset, subcell_offset; + style = gtk_widget_get_style (canvas); + fg_gc = style->fg_gc[GTK_STATE_ACTIVE]; + selected = flags & E_CELL_SELECTED; /* only draw the tree effects if we're the active sort */ @@ -263,7 +277,9 @@ ect_draw (ECellView *ecell_view, GdkDrawable *drawable, GdkPixbuf *node_image; gint node_image_width = 0, node_image_height = 0; ETreePath parent_node; - ETree *tree = E_TREE (canvas->parent); + ETree *tree; + + tree = E_TREE (gtk_widget_get_parent (canvas)); gtk_widget_style_get (GTK_WIDGET (tree), "retro_look", &tree_view->retro_look, @@ -295,9 +311,9 @@ ect_draw (ECellView *ecell_view, GdkDrawable *drawable, clip_rect = ▭ if (selected) { - foreground = &canvas->style->text [GTK_STATE_SELECTED]; + foreground = &style->text [GTK_STATE_SELECTED]; } else { - foreground = &canvas->style->text [GTK_STATE_NORMAL]; + foreground = &style->text [GTK_STATE_NORMAL]; } gdk_gc_set_foreground (tree_view->gc, foreground); @@ -445,6 +461,8 @@ typedef struct { static gboolean animate_expander (gpointer data) { + GtkLayout *layout; + GdkWindow *window; animate_closure_t *closure = (animate_closure_t *) data; if (closure->finish) { @@ -454,9 +472,14 @@ animate_expander (gpointer data) return FALSE; } - draw_expander (closure->ectv, GTK_LAYOUT (closure->ectv->canvas)->bin_window, - closure->expanded ? GTK_EXPANDER_SEMI_COLLAPSED : GTK_EXPANDER_SEMI_EXPANDED, - GTK_STATE_NORMAL, &closure->area); + layout = GTK_LAYOUT (closure->ectv->canvas); + window = gtk_layout_get_bin_window (layout); + + draw_expander ( + closure->ectv, window, closure->expanded ? + GTK_EXPANDER_SEMI_COLLAPSED : + GTK_EXPANDER_SEMI_EXPANDED, + GTK_STATE_NORMAL, &closure->area); closure->finish = TRUE; return TRUE; @@ -468,6 +491,8 @@ animate_expander (gpointer data) static gint ect_event (ECellView *ecell_view, GdkEvent *event, gint model_col, gint view_col, gint row, ECellFlags flags, ECellActions *actions) { + GtkLayout *layout; + GdkWindow *window; ECellTreeView *tree_view = (ECellTreeView *) ecell_view; ETreeModel *tree_model = e_cell_tree_get_tree_model (ecell_view->e_table_model, row); ETreeTableAdapter *etta = e_cell_tree_get_tree_table_adapter(ecell_view->e_table_model, row); @@ -475,6 +500,9 @@ ect_event (ECellView *ecell_view, GdkEvent *event, gint model_col, gint view_col gint offset = offset_of_node (ecell_view->e_table_model, row); gint result; + layout = GTK_LAYOUT (tree_view->canvas); + window = gtk_layout_get_bin_window (layout); + switch (event->type) { case GDK_BUTTON_PRESS: @@ -497,9 +525,11 @@ ect_event (ECellView *ecell_view, GdkEvent *event, gint model_col, gint view_col if (hgt != area.height) /* Composite cells */ area.height += hgt; - draw_expander (tree_view, GTK_LAYOUT (tree_view->canvas)->bin_window, - expanded ? GTK_EXPANDER_SEMI_EXPANDED : GTK_EXPANDER_SEMI_COLLAPSED, - GTK_STATE_NORMAL, &area); + draw_expander ( + tree_view, window, expanded ? + GTK_EXPANDER_SEMI_EXPANDED : + GTK_EXPANDER_SEMI_COLLAPSED, + GTK_STATE_NORMAL, &area); closure->ectv = tree_view; closure->etta = etta; closure->node = node; @@ -526,9 +556,11 @@ ect_event (ECellView *ecell_view, GdkEvent *event, gint model_col, gint view_col e_table_item_get_cell_geometry (tree_view->cell_view.e_table_item_view, &tmp_row, &view_col, &area.x, &area.y, NULL, &area.height); area.width = offset - 2; - draw_expander (tree_view, GTK_LAYOUT (tree_view->canvas)->bin_window, - e_tree_table_adapter_node_is_expanded (etta, node) ? GTK_EXPANDER_EXPANDED : GTK_EXPANDER_COLLAPSED, - in_expander ? GTK_STATE_PRELIGHT : GTK_STATE_NORMAL, &area); + draw_expander ( + tree_view, window, + e_tree_table_adapter_node_is_expanded (etta, node) ? + GTK_EXPANDER_EXPANDED : GTK_EXPANDER_COLLAPSED, + in_expander ? GTK_STATE_PRELIGHT : GTK_STATE_NORMAL, &area); tree_view->prelit = in_expander; return TRUE; } @@ -544,9 +576,11 @@ ect_event (ECellView *ecell_view, GdkEvent *event, gint model_col, gint view_col e_table_item_get_cell_geometry (tree_view->cell_view.e_table_item_view, &tmp_row, &view_col, &area.x, &area.y, NULL, &area.height); area.width = offset - 2; - draw_expander (tree_view, GTK_LAYOUT (tree_view->canvas)->bin_window, - e_tree_table_adapter_node_is_expanded (etta, node) ? GTK_EXPANDER_EXPANDED : GTK_EXPANDER_COLLAPSED, - GTK_STATE_NORMAL, &area); + draw_expander ( + tree_view, window, + e_tree_table_adapter_node_is_expanded (etta, node) ? + GTK_EXPANDER_EXPANDED : GTK_EXPANDER_COLLAPSED, + GTK_STATE_NORMAL, &area); tree_view->prelit = FALSE; } return TRUE; diff --git a/widgets/table/e-table-click-to-add.c b/widgets/table/e-table-click-to-add.c index 944e1dd268..e50d0f4274 100644 --- a/widgets/table/e-table-click-to-add.c +++ b/widgets/table/e-table-click-to-add.c @@ -73,21 +73,24 @@ etcta_cursor_change (GtkObject *object, gint row, gint col, ETableClickToAdd *et static void etcta_style_set (ETableClickToAdd *etcta, GtkStyle *previous_style) { - GtkWidget *widget = GTK_WIDGET(GNOME_CANVAS_ITEM(etcta)->canvas); + GtkWidget *widget; + GtkStyle *style; - if (etcta->rect) { - gnome_canvas_item_set (etcta->rect, - "outline_color_gdk", &widget->style->fg[GTK_STATE_NORMAL], - "fill_color_gdk", &widget->style->bg[GTK_STATE_NORMAL], - NULL ); + widget = GTK_WIDGET (GNOME_CANVAS_ITEM (etcta)->canvas); + style = gtk_widget_get_style (widget); - } + if (etcta->rect) + gnome_canvas_item_set ( + etcta->rect, + "outline_color_gdk", &style->fg[GTK_STATE_NORMAL], + "fill_color_gdk", &style->bg[GTK_STATE_NORMAL], + NULL); if (etcta->text) - gnome_canvas_item_set (etcta->text, - "fill_color_gdk", &widget->style->text[GTK_STATE_NORMAL], - NULL); - + gnome_canvas_item_set ( + etcta->text, + "fill_color_gdk", &style->text[GTK_STATE_NORMAL], + NULL); } static void @@ -237,28 +240,34 @@ etcta_set_property (GObject *object, static void create_rect_and_text (ETableClickToAdd *etcta) { - GtkWidget *widget = GTK_WIDGET (GNOME_CANVAS_ITEM(etcta)->canvas); + GtkWidget *widget; + GtkStyle *style; + + widget = GTK_WIDGET (GNOME_CANVAS_ITEM (etcta)->canvas); + style = gtk_widget_get_style (widget); if (!etcta->rect) - etcta->rect = gnome_canvas_item_new(GNOME_CANVAS_GROUP(etcta), - gnome_canvas_rect_get_type(), - "x1", (gdouble) 0, - "y1", (gdouble) 0, - "x2", (gdouble) etcta->width - 1, - "y2", (gdouble) etcta->height - 1, - "outline_color_gdk", &widget->style->fg[GTK_STATE_NORMAL], - "fill_color_gdk", &widget->style->bg[GTK_STATE_NORMAL], - NULL); + etcta->rect = gnome_canvas_item_new ( + GNOME_CANVAS_GROUP (etcta), + gnome_canvas_rect_get_type (), + "x1", (gdouble) 0, + "y1", (gdouble) 0, + "x2", (gdouble) etcta->width - 1, + "y2", (gdouble) etcta->height - 1, + "outline_color_gdk", &style->fg[GTK_STATE_NORMAL], + "fill_color_gdk", &style->bg[GTK_STATE_NORMAL], + NULL); if (!etcta->text) - etcta->text = gnome_canvas_item_new(GNOME_CANVAS_GROUP(etcta), - e_text_get_type(), - "text", etcta->message ? etcta->message : "", - "anchor", GTK_ANCHOR_NW, - "width", etcta->width - 4, - "draw_background", FALSE, - "fill_color_gdk", &widget->style->text[GTK_STATE_NORMAL], - NULL); + etcta->text = gnome_canvas_item_new ( + GNOME_CANVAS_GROUP (etcta), + e_text_get_type (), + "text", etcta->message ? etcta->message : "", + "anchor", GTK_ANCHOR_NW, + "width", etcta->width - 4, + "draw_background", FALSE, + "fill_color_gdk", &style->text[GTK_STATE_NORMAL], + NULL); } static void @@ -501,36 +510,36 @@ etcta_class_init (ETableClickToAddClass *klass) g_object_class_install_property (object_class, PROP_HEADER, g_param_spec_object ("header", - _("Header"), - /*_( */"XXX blurb" /*)*/, + "Header", + NULL, E_TABLE_HEADER_TYPE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_MODEL, g_param_spec_object ("model", - _("Model"), - /*_( */"XXX blurb" /*)*/, + "Model", + NULL, E_TABLE_MODEL_TYPE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_MESSAGE, g_param_spec_string ("message", - _("Message"), - /*_( */"XXX blurb" /*)*/, + "Message", + NULL, NULL, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_WIDTH, g_param_spec_double ("width", - _("Width"), - /*_( */"XXX blurb" /*)*/, + "Width", + NULL, 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE | G_PARAM_LAX_VALIDATION)); g_object_class_install_property (object_class, PROP_HEIGHT, g_param_spec_double ("height", - _("Height"), - /*_( */"XXX blurb" /*)*/, + "Height", + NULL, 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READABLE | G_PARAM_LAX_VALIDATION)); diff --git a/widgets/table/e-table-col.c b/widgets/table/e-table-col.c index cd96441b63..974ead48c1 100644 --- a/widgets/table/e-table-col.c +++ b/widgets/table/e-table-col.c @@ -118,7 +118,7 @@ e_table_col_class_init (ETableColClass *klass) g_object_class_install_property (object_class, PROP_COMPARE_COL, g_param_spec_int ("compare_col", - _( "Width" ), + "Width", "Width", 0, G_MAXINT, 0, G_PARAM_READWRITE)); diff --git a/widgets/table/e-table-config.c b/widgets/table/e-table-config.c index f87b316dd0..736473a81c 100644 --- a/widgets/table/e-table-config.c +++ b/widgets/table/e-table-config.c @@ -147,8 +147,8 @@ e_table_config_class_init (ETableConfigClass *klass) g_object_class_install_property (object_class, PROP_STATE, g_param_spec_object ("state", - _("State"), - /*_( */"XXX blurb" /*)*/, + "State", + NULL, E_TABLE_STATE_TYPE, G_PARAM_READABLE)); } @@ -549,18 +549,27 @@ do_sort_and_group_config_dialog (ETableConfig *config, gboolean is_sort) static void do_fields_config_dialog (ETableConfig *config) { + GtkDialog *dialog; + GtkWidget *widget; gint response, running = 1; + dialog = GTK_DIALOG (config->dialog_show_fields); + gtk_widget_ensure_style (config->dialog_show_fields); - gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (config->dialog_show_fields)->vbox), 0); - gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (config->dialog_show_fields)->action_area), 12); + + widget = gtk_dialog_get_content_area (dialog); + gtk_container_set_border_width (GTK_CONTAINER (widget), 0); + + widget = gtk_dialog_get_action_area (dialog); + gtk_container_set_border_width (GTK_CONTAINER (widget), 12); config->temp_state = e_table_state_duplicate (config->state); setup_fields (config); - gtk_window_set_transient_for (GTK_WINDOW (config->dialog_show_fields), - GTK_WINDOW (config->dialog_toplevel)); + gtk_window_set_transient_for ( + GTK_WINDOW (config->dialog_show_fields), + GTK_WINDOW (config->dialog_toplevel)); do { response = gtk_dialog_run (GTK_DIALOG(config->dialog_show_fields)); @@ -759,6 +768,7 @@ sort_combo_changed (GtkComboBox *combo_box, ETableConfigSortWidgets *sort) ETableConfig *config = sort->e_table_config; ETableSortInfo *sort_info = config->temp_state->sort_info; ETableConfigSortWidgets *base = &config->sort[0]; + GtkToggleButton *toggle_button; gint idx = sort - base; gchar *s; @@ -775,8 +785,9 @@ sort_combo_changed (GtkComboBox *combo_box, ETableConfigSortWidgets *sort) return; } - c.ascending = GTK_TOGGLE_BUTTON ( - config->sort [idx].radio_ascending)->active; + toggle_button = GTK_TOGGLE_BUTTON ( + config->sort[idx].radio_ascending); + c.ascending = gtk_toggle_button_get_active (toggle_button); c.column = col; e_table_sort_info_sorting_set_nth (sort_info, idx, c); @@ -799,7 +810,7 @@ sort_ascending_toggled (GtkToggleButton *t, ETableConfigSortWidgets *sort) ETableSortColumn c; c = e_table_sort_info_sorting_get_nth (si, idx); - c.ascending = t->active; + c.ascending = gtk_toggle_button_get_active (t); e_table_sort_info_sorting_set_nth (si, idx, c); } @@ -877,6 +888,7 @@ group_combo_changed (GtkComboBox *combo_box, ETableConfigSortWidgets *group) s = configure_combo_box_get_active (combo_box); if (s != NULL) { + GtkToggleButton *toggle_button; ETableSortColumn c; gint col; @@ -887,8 +899,9 @@ group_combo_changed (GtkComboBox *combo_box, ETableConfigSortWidgets *group) return; } - c.ascending = GTK_TOGGLE_BUTTON ( - config->group [idx].radio_ascending)->active; + toggle_button = GTK_TOGGLE_BUTTON ( + config->group[idx].radio_ascending); + c.ascending = gtk_toggle_button_get_active (toggle_button); c.column = col; e_table_sort_info_grouping_set_nth (sort_info, idx, c); @@ -911,7 +924,7 @@ group_ascending_toggled (GtkToggleButton *t, ETableConfigSortWidgets *group) ETableSortColumn c; c = e_table_sort_info_grouping_get_nth (si, idx); - c.ascending = t->active; + c.ascending = gtk_toggle_button_get_active (t); e_table_sort_info_grouping_set_nth (si, idx, c); } @@ -1324,15 +1337,23 @@ e_table_config_new (const gchar *header, GtkWindow *parent_window) { ETableConfig *config = g_object_new (E_TABLE_CONFIG_TYPE, NULL); + GtkDialog *dialog; + GtkWidget *widget; if (e_table_config_construct (config, header, spec, state, parent_window) == NULL) { g_object_unref (config); return NULL; } + dialog = GTK_DIALOG (config->dialog_toplevel); + gtk_widget_ensure_style (config->dialog_toplevel); - gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (config->dialog_toplevel)->vbox), 0); - gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (config->dialog_toplevel)->action_area), 12); + + widget = gtk_dialog_get_content_area (dialog); + gtk_container_set_border_width (GTK_CONTAINER (widget), 0); + + widget = gtk_dialog_get_action_area (dialog); + gtk_container_set_border_width (GTK_CONTAINER (widget), 12); gtk_dialog_set_response_sensitive (GTK_DIALOG (config->dialog_toplevel), GTK_RESPONSE_APPLY, FALSE); @@ -1350,6 +1371,9 @@ e_table_config_new (const gchar *header, void e_table_config_raise (ETableConfig *config) { - gdk_window_raise (GTK_WIDGET (config->dialog_toplevel)->window); + GdkWindow *window; + + window = gtk_widget_get_window (GTK_WIDGET (config->dialog_toplevel)); + gdk_window_raise (window); } diff --git a/widgets/table/e-table-field-chooser-dialog.c b/widgets/table/e-table-field-chooser-dialog.c index 74bbe827ac..c05506d953 100644 --- a/widgets/table/e-table-field-chooser-dialog.c +++ b/widgets/table/e-table-field-chooser-dialog.c @@ -63,21 +63,21 @@ e_table_field_chooser_dialog_class_init (ETableFieldChooserDialogClass *klass) g_object_class_install_property (object_class, PROP_DND_CODE, g_param_spec_string ("dnd_code", "DnD code", - /*_( */"XXX blurb" /*)*/, + NULL, NULL, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_FULL_HEADER, g_param_spec_object ("full_header", "Full Header", - /*_( */"XXX blurb" /*)*/, + NULL, E_TABLE_HEADER_TYPE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_HEADER, g_param_spec_object ("header", "Header", - /*_( */"XXX blurb" /*)*/, + NULL, E_TABLE_HEADER_TYPE, G_PARAM_READWRITE)); } @@ -85,17 +85,20 @@ e_table_field_chooser_dialog_class_init (ETableFieldChooserDialogClass *klass) static void e_table_field_chooser_dialog_init (ETableFieldChooserDialog *e_table_field_chooser_dialog) { + GtkDialog *dialog; + GtkWidget *content_area; GtkWidget *widget; + dialog = GTK_DIALOG (e_table_field_chooser_dialog); + e_table_field_chooser_dialog->etfc = NULL; e_table_field_chooser_dialog->dnd_code = g_strdup(""); e_table_field_chooser_dialog->full_header = NULL; e_table_field_chooser_dialog->header = NULL; - gtk_dialog_add_button(GTK_DIALOG(e_table_field_chooser_dialog), - GTK_STOCK_CLOSE, GTK_RESPONSE_OK); + gtk_dialog_add_button (dialog, GTK_STOCK_CLOSE, GTK_RESPONSE_OK); - gtk_window_set_resizable(GTK_WINDOW(e_table_field_chooser_dialog), TRUE); + gtk_window_set_resizable (GTK_WINDOW (dialog), TRUE); widget = e_table_field_chooser_new(); e_table_field_chooser_dialog->etfc = E_TABLE_FIELD_CHOOSER(widget); @@ -106,12 +109,12 @@ e_table_field_chooser_dialog_init (ETableFieldChooserDialog *e_table_field_choos "header", e_table_field_chooser_dialog->header, NULL); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(e_table_field_chooser_dialog)->vbox), - widget, TRUE, TRUE, 0); + content_area = gtk_dialog_get_content_area (dialog); + gtk_box_pack_start (GTK_BOX (content_area), widget, TRUE, TRUE, 0); - gtk_widget_show(GTK_WIDGET(widget)); + gtk_widget_show (GTK_WIDGET(widget)); - gtk_window_set_title (GTK_WINDOW (e_table_field_chooser_dialog), _("Add a Column")); + gtk_window_set_title (GTK_WINDOW (dialog), _("Add a Column")); } GtkWidget* diff --git a/widgets/table/e-table-field-chooser-item.c b/widgets/table/e-table-field-chooser-item.c index 69f1fe85dc..a04e4f3742 100644 --- a/widgets/table/e-table-field-chooser-item.c +++ b/widgets/table/e-table-field-chooser-item.c @@ -214,12 +214,14 @@ etfci_update (GnomeCanvasItem *item, gdouble *affine, ArtSVP *clip_path, gint fl static void etfci_font_load (ETableFieldChooserItem *etfci) { + GtkWidget *widget; GtkStyle *style; if (etfci->font_desc) pango_font_description_free (etfci->font_desc); - style = GTK_WIDGET (GNOME_CANVAS_ITEM (etfci)->canvas)->style; + widget = GTK_WIDGET (GNOME_CANVAS_ITEM (etfci)->canvas); + style = gtk_widget_get_style (widget); etfci->font_desc = pango_font_description_copy (style->font_desc); } @@ -462,7 +464,7 @@ etfci_draw (GnomeCanvasItem *item, GdkDrawable *drawable, gint x, gint y, gint w rows = e_table_header_count (etfci->combined_header); - style = GTK_WIDGET (canvas)->style; + style = gtk_widget_get_style (GTK_WIDGET (canvas)); state = gtk_widget_get_state (GTK_WIDGET (canvas)); y1 = y2 = 0; @@ -519,6 +521,8 @@ etfci_start_drag (ETableFieldChooserItem *etfci, GdkEvent *event, gdouble x, gdo GtkWidget *widget = GTK_WIDGET (GNOME_CANVAS_ITEM (etfci)->canvas); GtkTargetList *list; GdkDragContext *context; + GdkWindow *window; + GtkStyle *style; GtkStateType state; ETableCol *ecol; GdkPixmap *pixmap; @@ -551,24 +555,26 @@ etfci_start_drag (ETableFieldChooserItem *etfci, GdkEvent *event, gdouble x, gdo g_free(etfci_drag_types[0].target); button_height = e_table_header_compute_height (ecol, widget); - pixmap = gdk_pixmap_new (widget->window, etfci->width, button_height, -1); + window = gtk_widget_get_window (widget); + pixmap = gdk_pixmap_new (window, etfci->width, button_height, -1); + style = gtk_widget_get_style (widget); state = gtk_widget_get_state (widget); - e_table_header_draw_button (pixmap, ecol, - widget->style, state, - widget, - 0, 0, - etfci->width, button_height, - etfci->width, button_height, - E_TABLE_COL_ARROW_NONE); - - gtk_drag_set_icon_pixmap (context, - gdk_drawable_get_colormap (GDK_DRAWABLE (widget->window)), - pixmap, - NULL, - etfci->width / 2, - button_height / 2); + e_table_header_draw_button ( + pixmap, ecol, style, + state, widget, 0, 0, + etfci->width, button_height, + etfci->width, button_height, + E_TABLE_COL_ARROW_NONE); + + gtk_drag_set_icon_pixmap ( + context, + gdk_drawable_get_colormap (GDK_DRAWABLE (window)), + pixmap, NULL, + etfci->width / 2, + button_height / 2); + g_object_unref (pixmap); etfci->maybe_drag = FALSE; } @@ -632,35 +638,35 @@ etfci_class_init (ETableFieldChooserItemClass *klass) g_object_class_install_property (object_class, PROP_DND_CODE, g_param_spec_string ("dnd_code", "DnD code", - /*_( */"XXX blurb" /*)*/, + NULL, NULL, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_FULL_HEADER, g_param_spec_object ("full_header", "Full Header", - /*_( */"XXX blurb" /*)*/, + NULL, E_TABLE_HEADER_TYPE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_HEADER, g_param_spec_object ("header", "Header", - /*_( */"XXX blurb" /*)*/, + NULL, E_TABLE_HEADER_TYPE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_WIDTH, g_param_spec_double ("width", "Width", - /*_( */"XXX blurb" /*)*/, + NULL, 0, G_MAXDOUBLE, 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_HEIGHT, g_param_spec_double ("height", "Height", - /*_( */"XXX blurb" /*)*/, + NULL, 0, G_MAXDOUBLE, 0, G_PARAM_READABLE)); } diff --git a/widgets/table/e-table-field-chooser.c b/widgets/table/e-table-field-chooser.c index 3c1d722617..2cf0d5f114 100644 --- a/widgets/table/e-table-field-chooser.c +++ b/widgets/table/e-table-field-chooser.c @@ -62,21 +62,21 @@ e_table_field_chooser_class_init (ETableFieldChooserClass *klass) g_object_class_install_property (object_class, PROP_DND_CODE, g_param_spec_string ("dnd_code", "DnD code", - /*_( */"XXX blurb" /*)*/, + NULL, NULL, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_FULL_HEADER, g_param_spec_object ("full_header", "Full Header", - /*_( */"XXX blurb" /*)*/, + NULL, E_TABLE_HEADER_TYPE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_HEADER, g_param_spec_object ("header", "Header", - /*_( */"XXX blurb" /*)*/, + NULL, E_TABLE_HEADER_TYPE, G_PARAM_READWRITE)); } @@ -94,9 +94,9 @@ ensure_nonzero_step_increments (ETableFieldChooser *etfc) so use 16 pixels which should be OK */ if (va) - va->step_increment = 16.0; + gtk_adjustment_set_step_increment (va, 16.0); if (ha) - ha->step_increment = 16.0; + gtk_adjustment_set_step_increment (ha, 16.0); } static void allocate_callback(GtkWidget *canvas, GtkAllocation *allocation, ETableFieldChooser *etfc) @@ -156,14 +156,14 @@ create_content (GnomeCanvas **canvas) scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_show (scrolledwindow1); gtk_box_pack_start (GTK_BOX (vbox_top), scrolledwindow1, TRUE, TRUE, 0); - GTK_WIDGET_UNSET_FLAGS (scrolledwindow1, GTK_CAN_FOCUS); + gtk_widget_set_can_focus (scrolledwindow1, FALSE); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); canvas_buttons = e_canvas_new (); gtk_widget_show (canvas_buttons); gtk_container_add (GTK_CONTAINER (scrolledwindow1), canvas_buttons); - GTK_WIDGET_UNSET_FLAGS (canvas_buttons, GTK_CAN_FOCUS); - GTK_WIDGET_UNSET_FLAGS (canvas_buttons, GTK_CAN_DEFAULT); + gtk_widget_set_can_focus (canvas_buttons, FALSE); + gtk_widget_set_can_default (canvas_buttons, FALSE); *canvas = GNOME_CANVAS (canvas_buttons); diff --git a/widgets/table/e-table-group-container.c b/widgets/table/e-table-group-container.c index 810823db61..cf8aae1aff 100644 --- a/widgets/table/e-table-group-container.c +++ b/widgets/table/e-table-group-container.c @@ -146,6 +146,7 @@ e_table_group_container_construct (GnomeCanvasGroup *parent, ETableGroupContaine { ETableCol *col; ETableSortColumn column = e_table_sort_info_grouping_get_nth(sort_info, n); + GtkWidget *widget; GtkStyle *style; col = e_table_header_get_column_by_col_idx(full_header, column.column); @@ -160,7 +161,8 @@ e_table_group_container_construct (GnomeCanvasGroup *parent, ETableGroupContaine etgc->n = n; etgc->ascending = column.ascending; - style = GTK_WIDGET (GNOME_CANVAS_ITEM (etgc)->canvas)->style; + widget = GTK_WIDGET (GNOME_CANVAS_ITEM (etgc)->canvas); + style = gtk_widget_get_style (widget); etgc->font_desc = pango_font_description_copy (style->font_desc); etgc->open = TRUE; @@ -339,12 +341,25 @@ compute_text (ETableGroupContainer *etgc, ETableGroupContainerChildNode *child_n gchar *text; if (etgc->ecol->text) { - text = g_strdup_printf (ngettext("%s : %s (%d item)", - "%s : %s (%d items)", + /* Translators: This text is used as a special row when an ETable + has turned on grouping on a column, which has set a title. + The first %s is replaced with a column title. + The second %s is replaced with an actual group value. + Finally the %d is replaced with count of items in this group. + Example: "Family name: Smith (13 items)" + */ + text = g_strdup_printf (ngettext("%s: %s (%d item)", + "%s: %s (%d items)", child_node->count), etgc->ecol->text, child_node->string, (gint) child_node->count); } else { + /* Translators: This text is used as a special row when an ETable + has turned on grouping on a column, which doesn't have set a title. + The %s is replaced with an actual group value. + The %d is replaced with count of items in this group. + Example: "Smith (13 items)" + */ text = g_strdup_printf (ngettext("%s (%d item)", "%s (%d items)", child_node->count), @@ -929,85 +944,85 @@ etgc_class_init (ETableGroupContainerClass *klass) g_object_class_install_property (object_class, PROP_TABLE_ALTERNATING_ROW_COLORS, g_param_spec_boolean ("alternating_row_colors", - _( "Alternating Row Colors" ), - _( "Alternating Row Colors" ), + "Alternating Row Colors", + "Alternating Row Colors", FALSE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_TABLE_HORIZONTAL_DRAW_GRID, g_param_spec_boolean ("horizontal_draw_grid", - _( "Horizontal Draw Grid" ), - _( "Horizontal Draw Grid" ), + "Horizontal Draw Grid", + "Horizontal Draw Grid", FALSE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_TABLE_VERTICAL_DRAW_GRID, g_param_spec_boolean ("vertical_draw_grid", - _( "Vertical Draw Grid" ), - _( "Vertical Draw Grid" ), + "Vertical Draw Grid", + "Vertical Draw Grid", FALSE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_TABLE_DRAW_FOCUS, g_param_spec_boolean ("drawfocus", - _( "Draw focus" ), - _( "Draw focus" ), + "Draw focus", + "Draw focus", FALSE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_CURSOR_MODE, g_param_spec_int ("cursor_mode", - _( "Cursor mode" ), - _( "Cursor mode" ), + "Cursor mode", + "Cursor mode", E_CURSOR_LINE, E_CURSOR_SPREADSHEET, E_CURSOR_LINE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_SELECTION_MODEL, g_param_spec_object ("selection_model", - _( "Selection model" ), - _( "Selection model" ), + "Selection model", + "Selection model", E_SELECTION_MODEL_TYPE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_LENGTH_THRESHOLD, g_param_spec_int ("length_threshold", - _( "Length Threshold" ), - _( "Length Threshold" ), + "Length Threshold", + "Length Threshold", -1, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_UNIFORM_ROW_HEIGHT, g_param_spec_boolean ("uniform_row_height", - _( "Uniform row height" ), - _( "Uniform row height" ), + "Uniform row height", + "Uniform row height", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_FROZEN, g_param_spec_boolean ("frozen", - _( "Frozen" ), - _( "Frozen" ), + "Frozen", + "Frozen", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_HEIGHT, g_param_spec_double ("height", - _( "Height" ), - _( "Height" ), + "Height", + "Height", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_WIDTH, g_param_spec_double ("width", - _( "Width" ), - _( "Width" ), + "Width", + "Width", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_MINIMUM_WIDTH, g_param_spec_double ("minimum_width", - _( "Minimum width" ), - _( "Minimum Width" ), + "Minimum width", + "Minimum Width", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); } @@ -1176,7 +1191,9 @@ e_table_group_container_print_page (EPrintable *ep, ETGCPrintContext *groupcontext) { cairo_t *cr; + GtkPageSetup *setup; gdouble yd; + gdouble page_height, page_margin; gdouble child_height; ETableGroupContainerChildNode *child_node; GList *child; @@ -1187,7 +1204,10 @@ e_table_group_container_print_page (EPrintable *ep, child_printable = groupcontext->child_printable; child = groupcontext->child; - yd = 6.5 * 72; + setup = gtk_print_context_get_page_setup (context); + page_height = gtk_page_setup_get_page_height (setup, GTK_UNIT_POINTS); + page_margin = gtk_page_setup_get_bottom_margin (setup, GTK_UNIT_POINTS) + gtk_page_setup_get_top_margin (setup, GTK_UNIT_POINTS); + yd = page_height - page_margin; if (child_printable) { if (child) @@ -1251,7 +1271,7 @@ e_table_group_container_print_page (EPrintable *ep, cairo_rectangle (cr, 0, 0, width - 2 * TEXT_AREA_HEIGHT,child_height); cairo_clip(cr); - e_printable_print_page (child_printable, context, width-2 * TEXT_AREA_HEIGHT, 0, quantize); + e_printable_print_page (child_printable, context, width-2 * TEXT_AREA_HEIGHT, height , quantize); yd += child_height + TEXT_AREA_HEIGHT; if (e_printable_data_left(child_printable)) diff --git a/widgets/table/e-table-group-leaf.c b/widgets/table/e-table-group-leaf.c index 1748d3e509..0b0c0f4a59 100644 --- a/widgets/table/e-table-group-leaf.c +++ b/widgets/table/e-table-group-leaf.c @@ -583,85 +583,85 @@ etgl_class_init (ETableGroupLeafClass *klass) g_object_class_install_property (object_class, PROP_TABLE_ALTERNATING_ROW_COLORS, g_param_spec_boolean ("alternating_row_colors", - _( "Alternating Row Colors" ), - _( "Alternating Row Colors" ), + "Alternating Row Colors", + "Alternating Row Colors", FALSE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_TABLE_HORIZONTAL_DRAW_GRID, g_param_spec_boolean ("horizontal_draw_grid", - _( "Horizontal Draw Grid" ), - _( "Horizontal Draw Grid" ), + "Horizontal Draw Grid", + "Horizontal Draw Grid", FALSE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_TABLE_VERTICAL_DRAW_GRID, g_param_spec_boolean ("vertical_draw_grid", - _( "Vertical Draw Grid" ), - _( "Vertical Draw Grid" ), + "Vertical Draw Grid", + "Vertical Draw Grid", FALSE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_TABLE_DRAW_FOCUS, g_param_spec_boolean ("drawfocus", - _( "Draw focus" ), - _( "Draw focus" ), + "Draw focus", + "Draw focus", FALSE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_CURSOR_MODE, g_param_spec_int ("cursor_mode", - _( "Cursor mode" ), - _( "Cursor mode" ), + "Cursor mode", + "Cursor mode", E_CURSOR_LINE, E_CURSOR_SPREADSHEET, E_CURSOR_LINE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_LENGTH_THRESHOLD, g_param_spec_int ("length_threshold", - _( "Length Threshold" ), - _( "Length Threshold" ), + "Length Threshold", + "Length Threshold", -1, G_MAXINT, 0, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_SELECTION_MODEL, g_param_spec_object ("selection_model", - _( "Selection model" ), - _( "Selection model" ), + "Selection model", + "Selection model", E_SELECTION_MODEL_TYPE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_HEIGHT, g_param_spec_double ("height", - _( "Height" ), - _( "Height" ), + "Height", + "Height", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_WIDTH, g_param_spec_double ("width", - _( "Width" ), - _( "Width" ), + "Width", + "Width", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_MINIMUM_WIDTH, g_param_spec_double ("minimum_width", - _( "Minimum width" ), - _( "Minimum Width" ), + "Minimum width", + "Minimum Width", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_FROZEN, g_param_spec_boolean ("frozen", - _( "Frozen" ), - _( "Frozen" ), + "Frozen", + "Frozen", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_UNIFORM_ROW_HEIGHT, g_param_spec_boolean ("uniform_row_height", - _( "Uniform row height" ), - _( "Uniform row height" ), + "Uniform row height", + "Uniform row height", FALSE, G_PARAM_READWRITE)); } diff --git a/widgets/table/e-table-header-item.c b/widgets/table/e-table-header-item.c index b2bcb591f8..133a368754 100644 --- a/widgets/table/e-table-header-item.c +++ b/widgets/table/e-table-header-item.c @@ -498,6 +498,9 @@ make_shaped_window_from_xpm (const gchar **xpm) static void ethi_add_drop_marker (ETableHeaderItem *ethi, gint col, gboolean recreate) { + GnomeCanvas *canvas; + GtkAdjustment *adjustment; + GdkWindow *window; gint rx, ry; gint x; @@ -515,14 +518,15 @@ ethi_add_drop_marker (ETableHeaderItem *ethi, gint col, gboolean recreate) arrow_down = make_shaped_window_from_xpm (arrow_down_xpm); } - gdk_window_get_origin ( - GTK_WIDGET (GNOME_CANVAS_ITEM (ethi)->canvas)->window, - &rx, &ry); + canvas = GNOME_CANVAS_ITEM (ethi)->canvas; + window = gtk_widget_get_window (GTK_WIDGET (canvas)); + gdk_window_get_origin (window, &rx, &ry); - rx -= gtk_layout_get_hadjustment ( - GTK_LAYOUT (GNOME_CANVAS_ITEM (ethi)->canvas))->value; - ry -= gtk_layout_get_vadjustment ( - GTK_LAYOUT (GNOME_CANVAS_ITEM (ethi)->canvas))->value; + adjustment = gtk_layout_get_hadjustment (GTK_LAYOUT (canvas)); + rx -= gtk_adjustment_get_value (adjustment); + + adjustment = gtk_layout_get_vadjustment (GTK_LAYOUT (canvas)); + ry -= gtk_adjustment_get_value (adjustment); gtk_window_move ( GTK_WINDOW (arrow_down), @@ -645,7 +649,13 @@ scroll_timeout (gpointer data) { ETableHeaderItem *ethi = data; gint dx = 0; - GtkAdjustment *h, *v; + GtkLayout *layout; + GtkAdjustment *adjustment; + gdouble hadjustment_value; + gdouble vadjustment_value; + gdouble page_size; + gdouble lower; + gdouble upper; gdouble value; if (ethi->scroll_direction & ET_SCROLL_RIGHT) @@ -653,20 +663,35 @@ scroll_timeout (gpointer data) if (ethi->scroll_direction & ET_SCROLL_LEFT) dx -= 20; - h = GTK_LAYOUT(GNOME_CANVAS_ITEM (ethi)->canvas)->hadjustment; - v = GTK_LAYOUT(GNOME_CANVAS_ITEM (ethi)->canvas)->vadjustment; + layout = GTK_LAYOUT (GNOME_CANVAS_ITEM (ethi)->canvas); + + adjustment = gtk_layout_get_hadjustment (layout); + hadjustment_value = gtk_adjustment_get_value (adjustment); + + adjustment = gtk_layout_get_vadjustment (layout); + vadjustment_value = gtk_adjustment_get_value (adjustment); + + value = hadjustment_value; - value = h->value; + adjustment = gtk_layout_get_hadjustment (layout); + page_size = gtk_adjustment_get_page_size (adjustment); + lower = gtk_adjustment_get_lower (adjustment); + upper = gtk_adjustment_get_upper (adjustment); - gtk_adjustment_set_value(h, CLAMP(h->value + dx, h->lower, h->upper - h->page_size)); + gtk_adjustment_set_value ( + adjustment, CLAMP ( + hadjustment_value + dx, lower, upper - page_size)); - if (h->value != value) - do_drag_motion(ethi, - ethi->last_drop_context, - ethi->last_drop_x + h->value, - ethi->last_drop_y + v->value, - ethi->last_drop_time, - TRUE); + hadjustment_value = gtk_adjustment_get_value (adjustment); + + if (hadjustment_value != value) + do_drag_motion( + ethi, + ethi->last_drop_context, + ethi->last_drop_x + hadjustment_value, + ethi->last_drop_y + vadjustment_value, + ethi->last_drop_time, + TRUE); return TRUE; } @@ -723,6 +748,10 @@ ethi_drag_motion (GtkWidget *widget, guint time, ETableHeaderItem *ethi) { + GtkAllocation allocation; + GtkAdjustment *adjustment; + gdouble hadjustment_value; + gdouble vadjustment_value; gchar *droptype, *headertype; guint direction = 0; @@ -739,9 +768,11 @@ ethi_drag_motion (GtkWidget *widget, g_free (headertype); + gtk_widget_get_allocation (widget, &allocation); + if (x < 20) direction |= ET_SCROLL_LEFT; - if (x > widget->allocation.width - 20) + if (x > allocation.width - 20) direction |= ET_SCROLL_RIGHT; ethi->last_drop_x = x; @@ -750,12 +781,17 @@ ethi_drag_motion (GtkWidget *widget, ethi->last_drop_context = context; context_connect (ethi, context); - do_drag_motion (ethi, - context, - x + GTK_LAYOUT(widget)->hadjustment->value, - y + GTK_LAYOUT(widget)->vadjustment->value, - time, - FALSE); + adjustment = gtk_layout_get_hadjustment (GTK_LAYOUT (widget)); + hadjustment_value = gtk_adjustment_get_value (adjustment); + + adjustment = gtk_layout_get_vadjustment (GTK_LAYOUT (widget)); + vadjustment_value = gtk_adjustment_get_value (adjustment); + + do_drag_motion ( + ethi, context, + x + hadjustment_value, + y + vadjustment_value, + time, FALSE); if (direction != 0) scroll_on (ethi, direction); @@ -781,20 +817,23 @@ ethi_drag_data_received (GtkWidget *canvas, GdkDragContext *drag_context, gint x, gint y, - GtkSelectionData *data, + GtkSelectionData *selection_data, guint info, guint time, ETableHeaderItem *ethi) { + const guchar *data; gint found = FALSE; gint count; gint column; gint drop_col; gint i; - if (data->data) { + data = gtk_selection_data_get_data (selection_data); + + if (data != NULL) { count = e_table_header_count(ethi->eth); - column = atoi((gchar *)data->data); + column = atoi((gchar *)data); drop_col = ethi->drop_col; ethi->drop_col = -1; @@ -891,6 +930,7 @@ static void ethi_realize (GnomeCanvasItem *item) { ETableHeaderItem *ethi = E_TABLE_HEADER_ITEM (item); + GtkStyle *style; GtkTargetEntry ethi_drop_types [] = { { (gchar *) TARGET_ETABLE_COL_TYPE, 0, TARGET_ETABLE_COL_HEADER }, }; @@ -898,8 +938,10 @@ ethi_realize (GnomeCanvasItem *item) if (GNOME_CANVAS_ITEM_CLASS (ethi_parent_class)-> realize) (*GNOME_CANVAS_ITEM_CLASS (ethi_parent_class)->realize)(item); + style = gtk_widget_get_style (GTK_WIDGET (item->canvas)); + if (!ethi->font_desc) - ethi_font_set (ethi, GTK_WIDGET (item->canvas)->style->font_desc); + ethi_font_set (ethi, style->font_desc); /* * Now, configure DnD @@ -972,6 +1014,11 @@ ethi_draw (GnomeCanvasItem *item, gint x1, x2; gint col; GHashTable *arrows = g_hash_table_new (NULL, NULL); + GtkStateType state; + GtkStyle *style; + + state = gtk_widget_get_state (GTK_WIDGET (canvas)); + style = gtk_widget_get_style (GTK_WIDGET (canvas)); if (ethi->sort_info) { gint length = e_table_sort_info_grouping_get_count(ethi->sort_info); @@ -1018,15 +1065,13 @@ ethi_draw (GnomeCanvasItem *item, state = gtk_widget_get_state (GTK_WIDGET (canvas)); - e_table_header_draw_button (drawable, ecol, - GTK_WIDGET (canvas)->style, - state, - GTK_WIDGET (canvas), - x1 - x, -y, - width, height, - x2 - x1, ethi->height, - (ETableColArrow) g_hash_table_lookup ( - arrows, GINT_TO_POINTER (ecol->col_idx))); + e_table_header_draw_button ( + drawable, ecol, + style, state, GTK_WIDGET (canvas), + x1 - x, -y, width, height, + x2 - x1, ethi->height, + (ETableColArrow) g_hash_table_lookup ( + arrows, GINT_TO_POINTER (ecol->col_idx))); } g_hash_table_destroy (arrows); @@ -1088,12 +1133,16 @@ is_pointer_on_division (ETableHeaderItem *ethi, static void set_cursor (ETableHeaderItem *ethi, gint pos) { - gint col; - GtkWidget *canvas = GTK_WIDGET (GNOME_CANVAS_ITEM (ethi)->canvas); + GnomeCanvas *canvas; + GdkWindow *window; gboolean resizable = FALSE; + gint col; + + canvas = GNOME_CANVAS_ITEM (ethi)->canvas; + window = gtk_widget_get_window (GTK_WIDGET (canvas)); /* We might be invoked before we are realized */ - if (!canvas->window) + if (window == NULL) return; if (is_pointer_on_division (ethi, pos, NULL, &col)) { @@ -1119,9 +1168,9 @@ set_cursor (ETableHeaderItem *ethi, gint pos) } if (resizable) - gdk_window_set_cursor (canvas->window, ethi->resize_cursor); + gdk_window_set_cursor (window, ethi->resize_cursor); else - gdk_window_set_cursor (canvas->window, NULL); + gdk_window_set_cursor (window, NULL); } static void @@ -1157,17 +1206,24 @@ ethi_start_drag (ETableHeaderItem *ethi, GdkEvent *event) GtkWidget *widget = GTK_WIDGET (GNOME_CANVAS_ITEM (ethi)->canvas); GtkTargetList *list; GdkDragContext *context; - GtkStateType state; ETableCol *ecol; gint col_width; GdkPixmap *pixmap; gint group_indent = 0; GHashTable *arrows = g_hash_table_new (NULL, NULL); + GtkStateType state; + GtkStyle *style; + GdkWindow *window; GtkTargetEntry ethi_drag_types [] = { { (gchar *) TARGET_ETABLE_COL_TYPE, 0, TARGET_ETABLE_COL_HEADER }, }; + widget = GTK_WIDGET (GNOME_CANVAS_ITEM (ethi)->canvas); + window = gtk_widget_get_window (widget); + state = gtk_widget_get_state (widget); + style = gtk_widget_get_style (widget); + ethi->drag_col = ethi_find_col_by_x (ethi, event->motion.x); if (ethi->drag_col == -1) @@ -1212,23 +1268,21 @@ ethi_start_drag (ETableHeaderItem *ethi, GdkEvent *event) ecol = e_table_header_get_column (ethi->eth, ethi->drag_col); col_width = ecol->width; - pixmap = gdk_pixmap_new (widget->window, col_width, ethi->height, -1); + pixmap = gdk_pixmap_new (window, col_width, ethi->height, -1); state = gtk_widget_get_state (widget); e_table_header_draw_button ( pixmap, ecol, - widget->style, - state, - widget, - 0, 0, + style, state, + widget, 0, 0, col_width, ethi->height, col_width, ethi->height, (ETableColArrow) g_hash_table_lookup ( arrows, GINT_TO_POINTER (ecol->col_idx))); gtk_drag_set_icon_pixmap ( context, - gdk_drawable_get_colormap (GDK_DRAWABLE (widget->window)), + gdk_drawable_get_colormap (GDK_DRAWABLE (window)), pixmap, NULL, col_width / 2, @@ -1754,6 +1808,7 @@ ethi_event (GnomeCanvasItem *item, GdkEvent *e) { ETableHeaderItem *ethi = E_TABLE_HEADER_ITEM (item); GnomeCanvas *canvas = item->canvas; + GdkWindow *window; const gboolean resizing = ETHI_RESIZING (ethi); gint x, y, start, col; gint was_maybe_drag = 0; @@ -1765,7 +1820,8 @@ ethi_event (GnomeCanvasItem *item, GdkEvent *e) break; case GDK_LEAVE_NOTIFY: - gdk_window_set_cursor (GTK_WIDGET (canvas)->window, NULL); + window = gtk_widget_get_window (GTK_WIDGET (canvas)); + gdk_window_set_cursor (window, NULL); break; case GDK_MOTION_NOTIFY: @@ -1953,49 +2009,49 @@ ethi_class_init (ETableHeaderItemClass *klass) g_object_class_install_property (object_class, PROP_DND_CODE, g_param_spec_string ("dnd_code", "DnD code", - /*_( */"XXX blurb" /*)*/, + NULL, NULL, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_TABLE_FONT_DESC, g_param_spec_boxed ("font-desc", "Font Description", - /*_( */"XXX blurb" /*)*/, + NULL, PANGO_TYPE_FONT_DESCRIPTION, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_FULL_HEADER, g_param_spec_object ("full_header", "Full Header", - /*_( */"XXX blurb" /*)*/, + NULL, E_TABLE_HEADER_TYPE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_TABLE_HEADER, g_param_spec_object ("ETableHeader", "Header", - /*_( */"XXX blurb" /*)*/, + NULL, E_TABLE_HEADER_TYPE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_SORT_INFO, g_param_spec_object ("sort_info", "Sort Info", - /*_( */"XXX blurb" /*)*/, + NULL, E_TABLE_SORT_INFO_TYPE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_TABLE, g_param_spec_object ("table", "Table", - /*_( */"XXX blurb" /*)*/, + NULL, E_TABLE_TYPE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_TREE, g_param_spec_object ("tree", "Tree", - /*_( */"XXX blurb" /*)*/, + NULL, E_TREE_TYPE, G_PARAM_WRITABLE)); diff --git a/widgets/table/e-table-header-utils.c b/widgets/table/e-table-header-utils.c index 78ff576820..0547b22228 100644 --- a/widgets/table/e-table-header-utils.c +++ b/widgets/table/e-table-header-utils.c @@ -349,13 +349,13 @@ e_table_header_draw_button (GdkDrawable *drawable, ETableCol *ecol, gtk_container_add (GTK_CONTAINER (window), button); gtk_widget_ensure_style (window); gtk_widget_ensure_style (button); - g_label = GTK_BIN(button)->child; + g_label = gtk_bin_get_child (GTK_BIN (button)); g_object_add_weak_pointer (G_OBJECT (g_label), &g_label); gtk_widget_ensure_style (g_label); gtk_widget_realize (g_label); } - gc = GTK_WIDGET (g_label)->style->fg_gc[state]; + gc = gtk_widget_get_style (GTK_WIDGET (g_label))->fg_gc[state]; gdk_gc_set_clip_rectangle (gc, NULL); diff --git a/widgets/table/e-table-item.c b/widgets/table/e-table-item.c index 1bc3a08dc5..381f0cd24c 100644 --- a/widgets/table/e-table-item.c +++ b/widgets/table/e-table-item.c @@ -245,22 +245,22 @@ inline static GdkColor * eti_get_cell_background_color (ETableItem *eti, gint row, gint col, gboolean selected, gboolean *allocatedp) { ECellView *ecell_view = eti->cell_views [col]; - GtkWidget *canvas = GTK_WIDGET(GNOME_CANVAS_ITEM(eti)->canvas); + GtkWidget *canvas; GdkColor *background, bg; + GtkStyle *style; gchar *color_spec = NULL; gboolean allocated = FALSE; + canvas = GTK_WIDGET (GNOME_CANVAS_ITEM (eti)->canvas); + style = gtk_widget_get_style (canvas); + if (selected) { -#if GTK_CHECK_VERSION(2,19,7) if (gtk_widget_has_focus (canvas)) -#else - if (GTK_WIDGET_HAS_FOCUS(canvas)) -#endif - background = &canvas->style->bg [GTK_STATE_SELECTED]; + background = &style->bg [GTK_STATE_SELECTED]; else - background = &canvas->style->bg [GTK_STATE_ACTIVE]; + background = &style->bg [GTK_STATE_ACTIVE]; } else { - background = &canvas->style->base [GTK_STATE_NORMAL]; + background = &style->base [GTK_STATE_NORMAL]; } color_spec = e_cell_get_bg_color (ecell_view, row); @@ -268,7 +268,7 @@ eti_get_cell_background_color (ETableItem *eti, gint row, gint col, gboolean sel if (color_spec != NULL) { if (gdk_color_parse (color_spec, &bg)) { background = gdk_color_copy (&bg); - gdk_colormap_alloc_color (gtk_widget_get_colormap (GTK_WIDGET (canvas)), background, + gdk_colormap_alloc_color (gtk_widget_get_colormap (canvas), background, FALSE, TRUE); allocated = TRUE; } @@ -283,7 +283,7 @@ eti_get_cell_background_color (ETableItem *eti, gint row, gint col, gboolean sel allocated = TRUE; } e_hsv_tweak (background, 0.0f, 0.0f, -0.07f); - gdk_colormap_alloc_color (gtk_widget_get_colormap (GTK_WIDGET (canvas)), background, + gdk_colormap_alloc_color (gtk_widget_get_colormap (canvas), background, FALSE, TRUE); } } @@ -296,23 +296,23 @@ eti_get_cell_background_color (ETableItem *eti, gint row, gint col, gboolean sel inline static GdkColor * eti_get_cell_foreground_color (ETableItem *eti, gint row, gint col, gboolean selected, gboolean *allocated) { - GtkWidget *canvas = GTK_WIDGET(GNOME_CANVAS_ITEM(eti)->canvas); + GtkWidget *canvas; GdkColor *foreground; + GtkStyle *style; + + canvas = GTK_WIDGET (GNOME_CANVAS_ITEM (eti)->canvas); + style = gtk_widget_get_style (canvas); if (allocated) *allocated = FALSE; if (selected) { -#if GTK_CHECK_VERSION(2,19,7) if (gtk_widget_has_focus (canvas)) -#else - if (GTK_WIDGET_HAS_FOCUS (canvas)) -#endif - foreground = &canvas->style->fg [GTK_STATE_SELECTED]; + foreground = &style->fg [GTK_STATE_SELECTED]; else - foreground = &canvas->style->fg [GTK_STATE_ACTIVE]; + foreground = &style->fg [GTK_STATE_ACTIVE]; } else { - foreground = &canvas->style->text [GTK_STATE_NORMAL]; + foreground = &style->text [GTK_STATE_NORMAL]; } return foreground; @@ -1631,8 +1631,9 @@ static void eti_realize (GnomeCanvasItem *item) { ETableItem *eti = E_TABLE_ITEM (item); - GtkWidget *canvas_widget = GTK_WIDGET (item->canvas); GdkWindow *window; + GtkWidget *widget; + GtkStyle *style; if (GNOME_CANVAS_ITEM_CLASS (eti_parent_class)->realize) (*GNOME_CANVAS_ITEM_CLASS (eti_parent_class)->realize)(item); @@ -1642,15 +1643,17 @@ eti_realize (GnomeCanvasItem *item) /* * Gdk Resource allocation */ - window = canvas_widget->window; + widget = GTK_WIDGET (item->canvas); + style = gtk_widget_get_style (widget); + window = gtk_widget_get_window (widget); eti->fill_gc = gdk_gc_new (window); eti->grid_gc = gdk_gc_new (window); - gdk_gc_set_foreground (eti->grid_gc, &canvas_widget->style->dark [GTK_STATE_NORMAL]); + gdk_gc_set_foreground (eti->grid_gc, &style->dark [GTK_STATE_NORMAL]); eti->focus_gc = gdk_gc_new (window); - gdk_gc_set_foreground (eti->focus_gc, &canvas_widget->style->bg [GTK_STATE_NORMAL]); - gdk_gc_set_background (eti->focus_gc, &canvas_widget->style->fg [GTK_STATE_NORMAL]); + gdk_gc_set_foreground (eti->focus_gc, &style->bg [GTK_STATE_NORMAL]); + gdk_gc_set_background (eti->focus_gc, &style->fg [GTK_STATE_NORMAL]); eti->stipple = gdk_bitmap_create_from_data (NULL, gray50_bits, gray50_width, gray50_height); gdk_gc_set_ts_origin (eti->focus_gc, 0, 0); gdk_gc_set_stipple (eti->focus_gc, eti->stipple); @@ -1933,11 +1936,7 @@ eti_draw (GnomeCanvasItem *item, GdkDrawable *drawable, gint x, gint y, gint wid gdk_color_free (background); flags = col_selected ? E_CELL_SELECTED : 0; -#if GTK_CHECK_VERSION(2,19,7) flags |= gtk_widget_has_focus (canvas) ? E_CELL_FOCUSED : 0; -#else - flags |= GTK_WIDGET_HAS_FOCUS(canvas) ? E_CELL_FOCUSED : 0; -#endif flags |= cursor ? E_CELL_CURSOR : 0; switch (ecol->justification) { @@ -2818,98 +2817,98 @@ eti_class_init (ETableItemClass *klass) g_object_class_install_property (object_class, PROP_TABLE_HEADER, g_param_spec_object ("ETableHeader", - _( "Table header" ), - _( "Table header" ), + "Table header", + "Table header", E_TABLE_HEADER_TYPE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_TABLE_MODEL, g_param_spec_object ("ETableModel", - _( "Table model" ), - _( "Table model" ), + "Table model", + "Table model", E_TABLE_MODEL_TYPE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_SELECTION_MODEL, g_param_spec_object ("selection_model", - _( "Selection model" ), - _( "Selection model" ), + "Selection model", + "Selection model", E_SELECTION_MODEL_TYPE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_TABLE_ALTERNATING_ROW_COLORS, g_param_spec_boolean ("alternating_row_colors", - _( "Alternating Row Colors" ), - _( "Alternating Row Colors" ), + "Alternating Row Colors", + "Alternating Row Colors", FALSE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_TABLE_HORIZONTAL_DRAW_GRID, g_param_spec_boolean ("horizontal_draw_grid", - _( "Horizontal Draw Grid" ), - _( "Horizontal Draw Grid" ), + "Horizontal Draw Grid", + "Horizontal Draw Grid", FALSE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_TABLE_VERTICAL_DRAW_GRID, g_param_spec_boolean ("vertical_draw_grid", - _( "Vertical Draw Grid" ), - _( "Vertical Draw Grid" ), + "Vertical Draw Grid", + "Vertical Draw Grid", FALSE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_TABLE_DRAW_FOCUS, g_param_spec_boolean ("drawfocus", - _( "Draw focus" ), - _( "Draw focus" ), + "Draw focus", + "Draw focus", FALSE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_CURSOR_MODE, g_param_spec_int ("cursor_mode", - _( "Cursor mode" ), - _( "Cursor mode" ), + "Cursor mode", + "Cursor mode", E_CURSOR_LINE, E_CURSOR_SPREADSHEET, E_CURSOR_LINE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_LENGTH_THRESHOLD, g_param_spec_int ("length_threshold", - _( "Length Threshold" ), - _( "Length Threshold" ), + "Length Threshold", + "Length Threshold", -1, G_MAXINT, 0, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_MINIMUM_WIDTH, g_param_spec_double ("minimum_width", - _( "Minimum width" ), - _( "Minimum Width" ), + "Minimum width", + "Minimum Width", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_WIDTH, g_param_spec_double ("width", - _( "Width" ), - _( "Width" ), + "Width", + "Width", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_HEIGHT, g_param_spec_double ("height", - _( "Height" ), - _( "Height" ), + "Height", + "Height", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_CURSOR_ROW, g_param_spec_int ("cursor_row", - _( "Cursor row" ), - _( "Cursor row" ), + "Cursor row", + "Cursor row", 0, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_UNIFORM_ROW_HEIGHT, g_param_spec_boolean ("uniform_row_height", - _( "Uniform row height" ), - _( "Uniform row height" ), + "Uniform row height", + "Uniform row height", FALSE, G_PARAM_READWRITE)); diff --git a/widgets/table/e-table-selection-model.c b/widgets/table/e-table-selection-model.c index 67a27cde01..3e98ddbfef 100644 --- a/widgets/table/e-table-selection-model.c +++ b/widgets/table/e-table-selection-model.c @@ -299,15 +299,15 @@ e_table_selection_model_class_init (ETableSelectionModelClass *klass) g_object_class_install_property (object_class, PROP_MODEL, g_param_spec_object ("model", - _("Model"), - /*_( */"XXX blurb" /*)*/, + "Model", + NULL, E_TABLE_MODEL_TYPE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_HEADER, g_param_spec_object ("header", - _("Header"), - /*_( */"XXX blurb" /*)*/, + "Header", + NULL, E_TABLE_HEADER_TYPE, G_PARAM_READWRITE)); } diff --git a/widgets/table/e-table-sorter.c b/widgets/table/e-table-sorter.c index 82ed1d860a..805aed5ca1 100644 --- a/widgets/table/e-table-sorter.c +++ b/widgets/table/e-table-sorter.c @@ -170,8 +170,8 @@ ets_class_init (ETableSorterClass *klass) g_object_class_install_property (object_class, PROP_SORT_INFO, g_param_spec_object ("sort_info", - _("Sort Info"), - /*_( */"XXX blurb" /*)*/, + "Sort Info", + NULL, E_TABLE_SORT_INFO_TYPE, G_PARAM_READWRITE)); } diff --git a/widgets/table/e-table-sorting-utils.c b/widgets/table/e-table-sorting-utils.c index 8ad797a9d1..c07293242c 100644 --- a/widgets/table/e-table-sorting-utils.c +++ b/widgets/table/e-table-sorting-utils.c @@ -23,8 +23,7 @@ #include <config.h> #include <string.h> - -#include <camel/camel-string-utils.h> +#include <camel/camel.h> #include "e-util/e-util.h" diff --git a/widgets/table/e-table-utils.c b/widgets/table/e-table-utils.c index 89affd357d..f3bce34487 100644 --- a/widgets/table/e-table-utils.c +++ b/widgets/table/e-table-utils.c @@ -36,6 +36,7 @@ ETableHeader * e_table_state_to_header (GtkWidget *widget, ETableHeader *full_header, ETableState *state) { ETableHeader *nh; + GtkStyle *style; const gint max_cols = e_table_header_count (full_header); gint column; GValue *val = g_new0 (GValue, 1); @@ -44,9 +45,11 @@ e_table_state_to_header (GtkWidget *widget, ETableHeader *full_header, ETableSta g_return_val_if_fail (full_header, NULL); g_return_val_if_fail (state, NULL); + style = gtk_widget_get_style (widget); + nh = e_table_header_new (); g_value_init (val, G_TYPE_DOUBLE); - g_value_set_double (val, e_table_header_width_extras (widget->style)); + g_value_set_double (val, e_table_header_width_extras (style)); g_object_set_property (G_OBJECT(nh), "width_extras", val); g_free (val); diff --git a/widgets/table/e-table.c b/widgets/table/e-table.c index 8110732e2c..088e4e1693 100644 --- a/widgets/table/e-table.c +++ b/widgets/table/e-table.c @@ -58,7 +58,9 @@ #define d(x) #if d(!)0 -#define e_table_item_leave_edit_(x) (e_table_item_leave_edit((x)), g_print ("%s: e_table_item_leave_edit\n", __FUNCTION__)) +#define e_table_item_leave_edit_(x) \ + (e_table_item_leave_edit ((x)), \ + g_print ("%s: e_table_item_leave_edit\n", __FUNCTION__)) #else #define e_table_item_leave_edit_(x) (e_table_item_leave_edit((x))) #endif @@ -199,7 +201,9 @@ e_table_state_change (ETable *et) g_signal_emit (G_OBJECT (et), et_signals [STATE_CHANGE], 0); } -#define CHECK_HORIZONTAL(et) if ((et)->horizontal_scrolling || (et)->horizontal_resize) e_table_header_update_horizontal (et->header); +#define CHECK_HORIZONTAL(et) \ + if ((et)->horizontal_scrolling || (et)->horizontal_resize) \ + e_table_header_update_horizontal (et->header); static void clear_current_search_col (ETable *et) @@ -288,7 +292,8 @@ connect_header (ETable *e_table, ETableState *state) if (e_table->header != NULL) disconnect_header (e_table); - e_table->header = e_table_state_to_header (GTK_WIDGET(e_table), e_table->full_header, state); + e_table->header = e_table_state_to_header ( + GTK_WIDGET (e_table), e_table->full_header, state); e_table->structure_change_id = g_signal_connect (G_OBJECT (e_table->header), "structure_change", @@ -409,7 +414,11 @@ et_unrealize (GtkWidget *widget) } static gboolean -check_row (ETable *et, gint model_row, gint col, ETableSearchFunc search, gchar *string) +check_row (ETable *et, + gint model_row, + gint col, + ETableSearchFunc search, + gchar *string) { gconstpointer value; @@ -419,7 +428,10 @@ check_row (ETable *et, gint model_row, gint col, ETableSearchFunc search, gchar } static gboolean -et_search_search (ETableSearch *search, gchar *string, ETableSearchFlags flags, ETable *et) +et_search_search (ETableSearch *search, + gchar *string, + ETableSearchFlags flags, + ETable *et) { gint cursor; gint rows; @@ -435,7 +447,9 @@ et_search_search (ETableSearch *search, gchar *string, ETableSearchFlags flags, "cursor_row", &cursor, NULL); - if ((flags & E_TABLE_SEARCH_FLAGS_CHECK_CURSOR_FIRST) && cursor < rows && cursor >= 0 && check_row (et, cursor, col->col_idx, col->search, string)) + if ((flags & E_TABLE_SEARCH_FLAGS_CHECK_CURSOR_FIRST) && + cursor < rows && cursor >= 0 && + check_row (et, cursor, col->col_idx, col->search, string)) return TRUE; cursor = e_sorter_model_to_sorted (E_SORTER (et->sorter), cursor); @@ -443,7 +457,9 @@ et_search_search (ETableSearch *search, gchar *string, ETableSearchFlags flags, for (i = cursor + 1; i < rows; i++) { gint model_row = e_sorter_sorted_to_model (E_SORTER (et->sorter), i); if (check_row (et, model_row, col->col_idx, col->search, string)) { - e_selection_model_select_as_key_press(E_SELECTION_MODEL (et->selection), model_row, col->col_idx, GDK_CONTROL_MASK); + e_selection_model_select_as_key_press ( + E_SELECTION_MODEL (et->selection), + model_row, col->col_idx, GDK_CONTROL_MASK); return TRUE; } } @@ -451,7 +467,9 @@ et_search_search (ETableSearch *search, gchar *string, ETableSearchFlags flags, for (i = 0; i < cursor; i++) { gint model_row = e_sorter_sorted_to_model (E_SORTER (et->sorter), i); if (check_row (et, model_row, col->col_idx, col->search, string)) { - e_selection_model_select_as_key_press(E_SELECTION_MODEL (et->selection), model_row, col->col_idx, GDK_CONTROL_MASK); + e_selection_model_select_as_key_press ( + E_SELECTION_MODEL (et->selection), + model_row, col->col_idx, GDK_CONTROL_MASK); return TRUE; } } @@ -459,7 +477,9 @@ et_search_search (ETableSearch *search, gchar *string, ETableSearchFlags flags, cursor = e_sorter_sorted_to_model (E_SORTER (et->sorter), cursor); /* Check if the cursor row is the only matching row. */ - return (!(flags & E_TABLE_SEARCH_FLAGS_CHECK_CURSOR_FIRST) && cursor < rows && cursor >= 0 && check_row (et, cursor, col->col_idx, col->search, string)); + return (!(flags & E_TABLE_SEARCH_FLAGS_CHECK_CURSOR_FIRST) && + cursor < rows && cursor >= 0 && + check_row (et, cursor, col->col_idx, col->search, string)); } static void @@ -471,10 +491,10 @@ et_search_accept (ETableSearch *search, ETable *et) if (col == NULL) return; - g_object_get(et->selection, - "cursor_row", &cursor, - NULL); - e_selection_model_select_as_key_press(E_SELECTION_MODEL (et->selection), cursor, col->col_idx, 0); + g_object_get (et->selection, "cursor_row", &cursor, NULL); + + e_selection_model_select_as_key_press ( + E_SELECTION_MODEL (et->selection), cursor, col->col_idx, 0); } static void @@ -509,11 +529,9 @@ et_finalize (GObject *object) static void e_table_init (ETable *e_table) { - GtkTable *gtk_table = GTK_TABLE (e_table); + gtk_widget_set_can_focus (GTK_WIDGET (e_table), TRUE); - GTK_WIDGET_SET_FLAGS (GTK_WIDGET (e_table), GTK_CAN_FOCUS); - - gtk_table->homogeneous = FALSE; + gtk_table_set_homogeneous (GTK_TABLE (e_table), FALSE); e_table->sort_info = NULL; e_table->group_info_change_id = 0; @@ -582,7 +600,7 @@ et_focus (GtkWidget *container, GtkDirectionType direction) e_table = E_TABLE (container); - if (GTK_CONTAINER (container)->focus_child) { + if (gtk_container_get_focus_child (GTK_CONTAINER (container))) { gtk_container_set_focus_child (GTK_CONTAINER (container), NULL); return FALSE; } @@ -615,14 +633,18 @@ set_header_canvas_width (ETable *e_table) static void header_canvas_size_allocate (GtkWidget *widget, GtkAllocation *alloc, ETable *e_table) { + GtkAllocation allocation; + set_header_canvas_width (e_table); + gtk_widget_get_allocation ( + GTK_WIDGET (e_table->header_canvas), &allocation); + /* When the header item is created ->height == 0, as the font is only created when everything is realized. So we set the usize here as well, so that the size of the header is correct */ - if (GTK_WIDGET (e_table->header_canvas)->allocation.height != - E_TABLE_HEADER_ITEM (e_table->header_item)->height) + if (allocation.height != E_TABLE_HEADER_ITEM (e_table->header_item)->height) g_object_set ( e_table->header_canvas, "height-request", E_TABLE_HEADER_ITEM (e_table->header_item)->height, @@ -688,14 +710,16 @@ table_canvas_reflow_idle (ETable *e_table) { gdouble height, width; gdouble oldheight, oldwidth; - GtkAllocation *alloc = &(GTK_WIDGET (e_table->table_canvas)->allocation); + GtkAllocation allocation; - g_object_get (e_table->canvas_vbox, - "height", &height, - "width", &width, - NULL); - height = MAX ((gint)height, alloc->height); - width = MAX((gint)width, alloc->width); + gtk_widget_get_allocation ( + GTK_WIDGET (e_table->table_canvas), &allocation); + + g_object_get ( + e_table->canvas_vbox, + "height", &height, "width", &width, NULL); + height = MAX ((gint)height, allocation.height); + width = MAX((gint)width, allocation.width); /* I have no idea why this needs to be -1, but it works. */ gnome_canvas_get_scroll_region (GNOME_CANVAS (e_table->table_canvas), NULL, NULL, &oldwidth, &oldheight); @@ -745,7 +769,9 @@ static void table_canvas_reflow (GnomeCanvas *canvas, ETable *e_table) { if (!e_table->reflow_idle_id) - e_table->reflow_idle_id = g_idle_add_full (400, (GSourceFunc) table_canvas_reflow_idle, e_table, NULL); + e_table->reflow_idle_id = g_idle_add_full ( + 400, (GSourceFunc) table_canvas_reflow_idle, + e_table, NULL); } static void @@ -787,7 +813,11 @@ static gboolean group_right_click (ETableGroup *etg, gint row, gint col, GdkEvent *event, ETable *et) { gboolean return_val = FALSE; - g_signal_emit (G_OBJECT (et), et_signals [RIGHT_CLICK], 0, row, col, event, &return_val); + + g_signal_emit ( + et, et_signals[RIGHT_CLICK], 0, + row, col, event, &return_val); + return return_val; } @@ -805,14 +835,24 @@ group_key_press (ETableGroup *etg, gint row, gint col, GdkEvent *event, ETable * gboolean return_val = FALSE; GdkEventKey *key = (GdkEventKey *) event; gint y, row_local, col_local; - GtkAdjustment *vadj; + GtkAdjustment *adjustment; + GtkLayout *layout; + gdouble page_size; + gdouble upper; + gdouble value; + + layout = GTK_LAYOUT (et->table_canvas); + adjustment = gtk_layout_get_vadjustment (layout); switch (key->keyval) { case GDK_Page_Down: case GDK_KP_Page_Down: - vadj = gtk_layout_get_vadjustment (GTK_LAYOUT (et->table_canvas)); - y = CLAMP(vadj->value + (2 * vadj->page_size - 50), 0, vadj->upper); - y -= vadj->value; + page_size = gtk_adjustment_get_page_size (adjustment); + upper = gtk_adjustment_get_value (adjustment); + value = gtk_adjustment_get_value (adjustment); + + y = CLAMP (value + (2 * page_size - 50), 0, upper); + y -= value; e_table_get_cell_at (et, 30, y, &row_local, &col_local); if (row_local == -1) @@ -820,14 +860,19 @@ group_key_press (ETableGroup *etg, gint row, gint col, GdkEvent *event, ETable * row_local = e_table_view_to_model_row (et, row_local); col_local = e_selection_model_cursor_col (E_SELECTION_MODEL (et->selection)); - e_selection_model_select_as_key_press (E_SELECTION_MODEL (et->selection), row_local, col_local, key->state); + e_selection_model_select_as_key_press ( + E_SELECTION_MODEL (et->selection), + row_local, col_local, key->state); return_val = 1; break; case GDK_Page_Up: case GDK_KP_Page_Up: - vadj = gtk_layout_get_vadjustment (GTK_LAYOUT (et->table_canvas)); - y = CLAMP(vadj->value - (vadj->page_size - 50), 0, vadj->upper); - y -= vadj->value; + page_size = gtk_adjustment_get_page_size (adjustment); + upper = gtk_adjustment_get_upper (adjustment); + value = gtk_adjustment_get_value (adjustment); + + y = CLAMP (value - (page_size - 50), 0, upper); + y -= value; e_table_get_cell_at (et, 30, y, &row_local, &col_local); if (row_local == -1) @@ -835,7 +880,9 @@ group_key_press (ETableGroup *etg, gint row, gint col, GdkEvent *event, ETable * row_local = e_table_view_to_model_row (et, row_local); col_local = e_selection_model_cursor_col (E_SELECTION_MODEL (et->selection)); - e_selection_model_select_as_key_press (E_SELECTION_MODEL (et->selection), row_local, col_local, key->state); + e_selection_model_select_as_key_press ( + E_SELECTION_MODEL (et->selection), + row_local, col_local, key->state); return_val = 1; break; case GDK_BackSpace: @@ -845,7 +892,9 @@ group_key_press (ETableGroup *etg, gint row, gint col, GdkEvent *event, ETable * /* Fall through */ default: init_search (et); - if ((key->state & ~(GDK_SHIFT_MASK | GDK_LOCK_MASK | GDK_MOD1_MASK | GDK_MOD2_MASK | GDK_MOD3_MASK | GDK_MOD4_MASK | GDK_MOD5_MASK)) == 0 + if ((key->state & ~(GDK_SHIFT_MASK | GDK_LOCK_MASK | + GDK_MOD1_MASK | GDK_MOD2_MASK | GDK_MOD3_MASK | + GDK_MOD4_MASK | GDK_MOD5_MASK)) == 0 && ((key->keyval >= GDK_a && key->keyval <= GDK_z) || (key->keyval >= GDK_A && key->keyval <= GDK_Z) || (key->keyval >= GDK_0 && key->keyval <= GDK_9))) @@ -937,20 +986,25 @@ et_build_groups (ETable *et) 0); if (et->use_click_to_add_end) - e_canvas_vbox_add_item_start(E_CANVAS_VBOX(et->canvas_vbox), GNOME_CANVAS_ITEM(et->group)); + e_canvas_vbox_add_item_start ( + E_CANVAS_VBOX (et->canvas_vbox), + GNOME_CANVAS_ITEM (et->group)); else - e_canvas_vbox_add_item(E_CANVAS_VBOX(et->canvas_vbox), GNOME_CANVAS_ITEM(et->group)); - - gnome_canvas_item_set(GNOME_CANVAS_ITEM(et->group), - "alternating_row_colors", et->alternating_row_colors, - "horizontal_draw_grid", et->horizontal_draw_grid, - "vertical_draw_grid", et->vertical_draw_grid, - "drawfocus", et->draw_focus, - "cursor_mode", et->cursor_mode, - "length_threshold", et->length_threshold, - "uniform_row_height", et->uniform_row_height, - "selection_model", et->selection, - NULL); + e_canvas_vbox_add_item ( + E_CANVAS_VBOX (et->canvas_vbox), + GNOME_CANVAS_ITEM (et->group)); + + gnome_canvas_item_set ( + GNOME_CANVAS_ITEM(et->group), + "alternating_row_colors", et->alternating_row_colors, + "horizontal_draw_grid", et->horizontal_draw_grid, + "vertical_draw_grid", et->vertical_draw_grid, + "drawfocus", et->draw_focus, + "cursor_mode", et->cursor_mode, + "length_threshold", et->length_threshold, + "uniform_row_height", et->uniform_row_height, + "selection_model", et->selection, + NULL); g_signal_connect (G_OBJECT (et->group), "cursor_change", G_CALLBACK (group_cursor_change), et); @@ -971,20 +1025,25 @@ et_build_groups (ETable *et) et_disconnect_model (et); if (et->is_grouped && (!was_grouped)) { - et->table_model_change_id = g_signal_connect (G_OBJECT (et->model), "model_changed", - G_CALLBACK (et_table_model_changed), et); + et->table_model_change_id = g_signal_connect ( + et->model, "model_changed", + G_CALLBACK (et_table_model_changed), et); - et->table_row_change_id = g_signal_connect (G_OBJECT (et->model), "model_row_changed", - G_CALLBACK (et_table_row_changed), et); + et->table_row_change_id = g_signal_connect ( + et->model, "model_row_changed", + G_CALLBACK (et_table_row_changed), et); - et->table_cell_change_id = g_signal_connect (G_OBJECT (et->model), "model_cell_changed", - G_CALLBACK (et_table_cell_changed), et); + et->table_cell_change_id = g_signal_connect ( + et->model, "model_cell_changed", + G_CALLBACK (et_table_cell_changed), et); - et->table_rows_inserted_id = g_signal_connect (G_OBJECT (et->model), "model_rows_inserted", - G_CALLBACK (et_table_rows_inserted), et); + et->table_rows_inserted_id = g_signal_connect ( + et->model, "model_rows_inserted", + G_CALLBACK (et_table_rows_inserted), et); - et->table_rows_deleted_id = g_signal_connect (G_OBJECT (et->model), "model_rows_deleted", - G_CALLBACK (et_table_rows_deleted), et); + et->table_rows_deleted_id = g_signal_connect ( + et->model, "model_rows_deleted", + G_CALLBACK (et_table_rows_deleted), et); } @@ -1029,9 +1088,15 @@ changed_idle (gpointer data) static void et_canvas_realize (GtkWidget *canvas, ETable *e_table) { + GtkWidget *widget; + GtkStyle *style; + + widget = GTK_WIDGET (e_table->table_canvas); + style = gtk_widget_get_style (widget); + gnome_canvas_item_set( e_table->white_item, - "fill_color_gdk", >K_WIDGET(e_table->table_canvas)->style->base[GTK_STATE_NORMAL], + "fill_color_gdk", &style->base[GTK_STATE_NORMAL], NULL); CHECK_HORIZONTAL(e_table); @@ -1052,11 +1117,7 @@ et_eti_leave_edit (ETable *et) { GnomeCanvas *canvas = et->table_canvas; -#if GTK_CHECK_VERSION(2,19,7) if (gtk_widget_has_focus (GTK_WIDGET (canvas))) { -#else - if (GTK_WIDGET_HAS_FOCUS(canvas)) { -#endif GnomeCanvasItem *item = GNOME_CANVAS(canvas)->focused_item; if (E_IS_TABLE_ITEM(item)) { @@ -1208,6 +1269,9 @@ static void e_table_setup_table (ETable *e_table, ETableHeader *full_header, ETableHeader *header, ETableModel *model) { + GtkWidget *widget; + GtkStyle *style; + e_table->table_canvas = GNOME_CANVAS (e_canvas_new ()); g_signal_connect ( G_OBJECT (e_table->table_canvas), "size_allocate", @@ -1247,12 +1311,15 @@ e_table_setup_table (ETable *e_table, ETableHeader *full_header, ETableHeader *h g_signal_connect (G_OBJECT(e_table->table_canvas), "reflow", G_CALLBACK (table_canvas_reflow), e_table); - gtk_widget_show (GTK_WIDGET (e_table->table_canvas)); + widget = GTK_WIDGET (e_table->table_canvas); + style = gtk_widget_get_style (widget); + + gtk_widget_show (widget); e_table->white_item = gnome_canvas_item_new( gnome_canvas_root(e_table->table_canvas), e_canvas_background_get_type(), - "fill_color_gdk", >K_WIDGET(e_table->table_canvas)->style->base[GTK_STATE_NORMAL], + "fill_color_gdk", &style->base[GTK_STATE_NORMAL], NULL); g_signal_connect (G_OBJECT (e_table->white_item), "event", @@ -1321,12 +1388,19 @@ e_table_fill_table (ETable *e_table, ETableModel *model) void e_table_set_state_object(ETable *e_table, ETableState *state) { - GValue *val = g_new0 (GValue, 1); + GValue *val; + GtkWidget *widget; + GtkAllocation allocation; + + val = g_new0 (GValue, 1); g_value_init (val, G_TYPE_DOUBLE); connect_header (e_table, state); - g_value_set_double (val, (gdouble) (GTK_WIDGET(e_table->table_canvas)->allocation.width)); + widget = GTK_WIDGET (e_table->table_canvas); + gtk_widget_get_allocation (widget, &allocation); + + g_value_set_double (val, (gdouble) allocation.width); g_object_set_property (G_OBJECT (e_table->header), "width", val); g_free (val); @@ -1528,7 +1602,11 @@ et_real_construct (ETable *e_table, ETableModel *etm, ETableExtras *ete, { gint row = 0; gint col_count, i; - GValue *val = g_new0 (GValue, 1); + GValue *val; + GtkLayout *layout; + GtkAdjustment *adjustment; + + val = g_new0 (GValue, 1); g_value_init (val, G_TYPE_OBJECT); if (ete) @@ -1541,7 +1619,9 @@ et_real_construct (ETable *e_table, ETableModel *etm, ETableExtras *ete, e_table->use_click_to_add = specification->click_to_add; e_table->use_click_to_add_end = specification->click_to_add_end; - e_table->click_to_add_message = specification->click_to_add_message ? g_strdup (dgettext (e_table->domain, specification->click_to_add_message)) : NULL; + e_table->click_to_add_message = specification->click_to_add_message ? + g_strdup (dgettext (e_table->domain, + specification->click_to_add_message)) : NULL; e_table->alternating_row_colors = specification->alternating_row_colors; e_table->horizontal_draw_grid = specification->horizontal_draw_grid; e_table->vertical_draw_grid = specification->vertical_draw_grid; @@ -1607,15 +1687,16 @@ et_real_construct (ETable *e_table, ETableModel *etm, ETableExtras *ete, e_table_setup_table (e_table, e_table->full_header, e_table->header, etm); e_table_fill_table (e_table, etm); - gtk_layout_get_vadjustment (GTK_LAYOUT (e_table->table_canvas))->step_increment = 20; - gtk_adjustment_changed(gtk_layout_get_vadjustment (GTK_LAYOUT (e_table->table_canvas))); - gtk_layout_get_hadjustment (GTK_LAYOUT (e_table->table_canvas))->step_increment = 20; - gtk_adjustment_changed(gtk_layout_get_hadjustment (GTK_LAYOUT (e_table->table_canvas))); + layout = GTK_LAYOUT (e_table->table_canvas); + + adjustment = gtk_layout_get_vadjustment (layout); + gtk_adjustment_set_step_increment (adjustment, 20); + + adjustment = gtk_layout_get_hadjustment (layout); + gtk_adjustment_set_step_increment (adjustment, 20); if (!specification->no_headers) { - /* - * The header - */ + /* The header */ gtk_table_attach (GTK_TABLE (e_table), GTK_WIDGET (e_table->header_canvas), 0, 1, 0 + row, 1 + row, GTK_FILL | GTK_EXPAND, @@ -1776,7 +1857,10 @@ e_table_construct_from_spec_file (ETable *e_table, ETableModel *etm, ETableExtra * The newly created #ETable or %NULL if there's an error. **/ GtkWidget * -e_table_new (ETableModel *etm, ETableExtras *ete, const gchar *spec, const gchar *state) +e_table_new (ETableModel *etm, + ETableExtras *ete, + const gchar *spec, + const gchar *state) { ETable *e_table; @@ -1813,7 +1897,10 @@ e_table_new (ETableModel *etm, ETableExtras *ete, const gchar *spec, const gchar * The newly created #ETable or %NULL if there's an error. **/ GtkWidget * -e_table_new_from_spec_file (ETableModel *etm, ETableExtras *ete, const gchar *spec_fn, const gchar *state_fn) +e_table_new_from_spec_file (ETableModel *etm, + ETableExtras *ete, + const gchar *spec_fn, + const gchar *state_fn) { ETable *e_table; @@ -2237,25 +2324,22 @@ set_scroll_adjustments (ETable *table, GtkAdjustment *hadjustment, GtkAdjustment *vadjustment) { - if (vadjustment != NULL) { - vadjustment->step_increment = 20; - gtk_adjustment_changed(vadjustment); - } - if (hadjustment != NULL) { - hadjustment->step_increment = 20; - gtk_adjustment_changed(hadjustment); - } + if (vadjustment != NULL) + gtk_adjustment_set_step_increment (vadjustment, 20); + + if (hadjustment != NULL) + gtk_adjustment_set_step_increment (hadjustment, 20); if (table->table_canvas != NULL) { - gtk_layout_set_hadjustment (GTK_LAYOUT(table->table_canvas), - hadjustment); - gtk_layout_set_vadjustment (GTK_LAYOUT(table->table_canvas), - vadjustment); + gtk_layout_set_hadjustment ( + GTK_LAYOUT(table->table_canvas), hadjustment); + gtk_layout_set_vadjustment ( + GTK_LAYOUT(table->table_canvas), vadjustment); } if (table->header_canvas != NULL) - gtk_layout_set_hadjustment (GTK_LAYOUT(table->header_canvas), - hadjustment); + gtk_layout_set_hadjustment ( + GTK_LAYOUT(table->header_canvas), hadjustment); } /** @@ -2384,7 +2468,9 @@ e_table_get_cell_at (ETable *table, gint x, gint y, gint *row_return, gint *col_return) { - g_return_if_fail (table != NULL); + GtkAdjustment *adjustment; + GtkLayout *layout; + g_return_if_fail (E_IS_TABLE (table)); g_return_if_fail (row_return != NULL); g_return_if_fail (col_return != NULL); @@ -2392,9 +2478,16 @@ e_table_get_cell_at (ETable *table, /* FIXME it would be nice if it could handle a NULL row_return or * col_return gracefully. */ - x += GTK_LAYOUT(table->table_canvas)->hadjustment->value; - y += GTK_LAYOUT(table->table_canvas)->vadjustment->value; - e_table_group_compute_location(table->group, &x, &y, row_return, col_return); + layout = GTK_LAYOUT (table->table_canvas); + + adjustment = gtk_layout_get_hadjustment (layout); + x += gtk_adjustment_get_value (adjustment); + + adjustment = gtk_layout_get_vadjustment (layout); + y += gtk_adjustment_get_value (adjustment); + + e_table_group_compute_location ( + table->group, &x, &y, row_return, col_return); } /** @@ -2402,8 +2495,10 @@ e_table_get_cell_at (ETable *table, * @table: The #ETable. * @row: The row to get the geometry of. * @col: The col to get the geometry of. - * @x_return: Returns the x coordinate of the upper left hand corner of the cell with respect to the widget. - * @y_return: Returns the y coordinate of the upper left hand corner of the cell with respect to the widget. + * @x_return: Returns the x coordinate of the upper left hand corner + * of the cell with respect to the widget. + * @y_return: Returns the y coordinate of the upper left hand corner + * of the cell with respect to the widget. * @width_return: Returns the width of the cell. * @height_return: Returns the height of the cell. * @@ -2416,24 +2511,43 @@ e_table_get_cell_geometry (ETable *table, gint *x_return, gint *y_return, gint *width_return, gint *height_return) { - g_return_if_fail (table != NULL); + GtkAdjustment *adjustment; + GtkAllocation allocation; + GtkLayout *layout; + g_return_if_fail (E_IS_TABLE (table)); - e_table_group_get_cell_geometry(table->group, &row, &col, x_return, y_return, width_return, height_return); + layout = GTK_LAYOUT (table->table_canvas); + + e_table_group_get_cell_geometry ( + table->group, &row, &col, x_return, y_return, + width_return, height_return); + + if (x_return && table->table_canvas) { + adjustment = gtk_layout_get_hadjustment (layout); + (*x_return) -= gtk_adjustment_get_value (adjustment); + } - if (x_return && table->table_canvas) - (*x_return) -= GTK_LAYOUT(table->table_canvas)->hadjustment->value; if (y_return) { - if (table->table_canvas) - (*y_return) -= GTK_LAYOUT(table->table_canvas)->vadjustment->value; - if (table->header_canvas) - (*y_return) += GTK_WIDGET(table->header_canvas)->allocation.height; + if (table->table_canvas) { + adjustment = gtk_layout_get_vadjustment (layout); + (*y_return) -= gtk_adjustment_get_value (adjustment); + } + + if (table->header_canvas) { + gtk_widget_get_allocation ( + GTK_WIDGET (table->header_canvas), + &allocation); + (*y_return) += allocation.height; + } } } /** * e_table_get_mouse_over_cell: - * Similar to e_table_get_cell_at, only here we check based on the mouse motion information in the group. + * + * Similar to e_table_get_cell_at, only here we check + * based on the mouse motion information in the group. **/ void e_table_get_mouse_over_cell (ETable *table, gint *row, gint *col) @@ -2578,30 +2692,39 @@ e_table_drag_highlight (ETable *table, gint row, gint col) { - g_return_if_fail(table != NULL); - g_return_if_fail(E_IS_TABLE(table)); + GtkAdjustment *adjustment; + GtkAllocation allocation; + GtkLayout *layout; + GtkStyle *style; + + g_return_if_fail (E_IS_TABLE (table)); + + layout = GTK_LAYOUT (table->table_canvas); + style = gtk_widget_get_style (GTK_WIDGET (table)); + gtk_widget_get_allocation (GTK_WIDGET (layout), &allocation); if (row != -1) { gint x, y, width, height; if (col == -1) { e_table_get_cell_geometry (table, row, 0, &x, &y, &width, &height); x = 0; - width = GTK_WIDGET (table->table_canvas)->allocation.width; + width = allocation.width; } else { e_table_get_cell_geometry (table, row, col, &x, &y, &width, &height); - x += GTK_LAYOUT(table->table_canvas)->hadjustment->value; + adjustment = gtk_layout_get_hadjustment (layout); + x += gtk_adjustment_get_value (adjustment); } - y += GTK_LAYOUT(table->table_canvas)->vadjustment->value; + + adjustment = gtk_layout_get_vadjustment (layout); + y += gtk_adjustment_get_value (adjustment); if (table->drop_highlight == NULL) { - table->drop_highlight = - gnome_canvas_item_new (gnome_canvas_root (table->table_canvas), - gnome_canvas_rect_get_type (), - "fill_color", NULL, - /* "outline_color", "black", - "width_pixels", 1,*/ - "outline_color_gdk", &(GTK_WIDGET (table)->style->fg[GTK_STATE_NORMAL]), - NULL); + table->drop_highlight = gnome_canvas_item_new ( + gnome_canvas_root (table->table_canvas), + gnome_canvas_rect_get_type (), + "fill_color", NULL, + "outline_color_gdk", &style->fg[GTK_STATE_NORMAL], + NULL); } gnome_canvas_item_set (table->drop_highlight, "x1", (gdouble) x, @@ -2901,8 +3024,15 @@ scroll_timeout (gpointer data) { ETable *et = data; gint dx = 0, dy = 0; - GtkAdjustment *h, *v; - gdouble hvalue, vvalue; + GtkAdjustment *adjustment; + GtkLayout *layout; + gdouble old_h_value; + gdouble new_h_value; + gdouble old_v_value; + gdouble new_v_value; + gdouble page_size; + gdouble lower; + gdouble upper; if (et->scroll_direction & ET_SCROLL_DOWN) dy += 20; @@ -2914,22 +3044,37 @@ scroll_timeout (gpointer data) if (et->scroll_direction & ET_SCROLL_LEFT) dx -= 20; - h = GTK_LAYOUT(et->table_canvas)->hadjustment; - v = GTK_LAYOUT(et->table_canvas)->vadjustment; + layout = GTK_LAYOUT (et->table_canvas); - hvalue = h->value; - vvalue = v->value; + adjustment = gtk_layout_get_hadjustment (layout); - gtk_adjustment_set_value(h, CLAMP(h->value + dx, h->lower, h->upper - h->page_size)); - gtk_adjustment_set_value(v, CLAMP(v->value + dy, v->lower, v->upper - v->page_size)); + lower = gtk_adjustment_get_lower (adjustment); + upper = gtk_adjustment_get_upper (adjustment); + page_size = gtk_adjustment_get_page_size (adjustment); - if (h->value != hvalue || - v->value != vvalue) - do_drag_motion(et, - et->last_drop_context, - et->last_drop_x, - et->last_drop_y, - et->last_drop_time); + old_h_value = gtk_adjustment_get_value (adjustment); + new_h_value = CLAMP (old_h_value + dx, lower, upper - page_size); + + gtk_adjustment_set_value (adjustment, new_h_value); + + adjustment = gtk_layout_get_vadjustment (layout); + + lower = gtk_adjustment_get_lower (adjustment); + upper = gtk_adjustment_get_upper (adjustment); + page_size = gtk_adjustment_get_page_size (adjustment); + + old_v_value = gtk_adjustment_get_value (adjustment); + new_v_value = CLAMP (old_v_value + dy, lower, upper - page_size); + + gtk_adjustment_set_value (adjustment, new_v_value); + + if (new_h_value != old_h_value || new_v_value != old_v_value) + do_drag_motion ( + et, + et->last_drop_context, + et->last_drop_x, + et->last_drop_y, + et->last_drop_time); return TRUE; } @@ -3001,28 +3146,27 @@ et_drag_motion(GtkWidget *widget, guint time, ETable *et) { + GtkAllocation allocation; gboolean ret_val; guint direction = 0; + gtk_widget_get_allocation (widget, &allocation); + et->last_drop_x = x; et->last_drop_y = y; et->last_drop_time = time; et->last_drop_context = context; context_connect (et, context); - ret_val = do_drag_motion (et, - context, - x, - y, - time); + ret_val = do_drag_motion (et, context, x, y, time); if (y < 20) direction |= ET_SCROLL_UP; - if (y > widget->allocation.height - 20) + if (y > allocation.height - 20) direction |= ET_SCROLL_DOWN; if (x < 20) direction |= ET_SCROLL_LEFT; - if (x > widget->allocation.width - 20) + if (x > allocation.width - 20) direction |= ET_SCROLL_RIGHT; if (direction != 0) @@ -3336,47 +3480,48 @@ e_table_class_init (ETableClass *class) g_object_class_install_property (object_class, PROP_LENGTH_THRESHOLD, g_param_spec_int ("length_threshold", - _("Length Threshold"), - /*_( */"XXX blurb" /*)*/, + "Length Threshold", + NULL, 0, G_MAXINT, 0, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_UNIFORM_ROW_HEIGHT, g_param_spec_boolean ("uniform_row_height", - _("Uniform row height"), - /*_( */"XXX blurb" /*)*/, + "Uniform row height", + NULL, FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_ALWAYS_SEARCH, g_param_spec_boolean ("always_search", - _("Always search"), - /*_( */"XXX blurb" /*)*/, + "Always search", + NULL, FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_USE_CLICK_TO_ADD, g_param_spec_boolean ("use_click_to_add", - _("Use click to add"), - /*_( */"XXX blurb" /*)*/, + "Use click to add", + NULL, FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_MODEL, g_param_spec_object ("model", - _("Model"), - /*_( */"XXX blurb" /*)*/, + "Model", + NULL, E_TABLE_MODEL_TYPE, G_PARAM_READABLE)); gtk_widget_class_install_style_property (widget_class, g_param_spec_int ("vertical-spacing", - _("Vertical Row Spacing"), - _("Vertical space between rows. It is added to top and to bottom of a row"), + "Vertical Row Spacing", + "Vertical space between rows. It is added to top and to bottom of a row", 0, G_MAXINT, 3, - G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB)); + G_PARAM_READABLE | + G_PARAM_STATIC_STRINGS)); gal_a11y_e_table_init (); } diff --git a/widgets/table/e-tree-selection-model.c b/widgets/table/e-tree-selection-model.c index 6f89816fbe..0c877e2279 100644 --- a/widgets/table/e-tree-selection-model.c +++ b/widgets/table/e-tree-selection-model.c @@ -800,29 +800,29 @@ e_tree_selection_model_class_init (ETreeSelectionModelClass *klass) g_object_class_install_property (object_class, PROP_CURSOR_ROW, g_param_spec_int ("cursor_row", - _("Cursor Row"), - /*_( */"XXX blurb" /*)*/, + "Cursor Row", + NULL, 0, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_CURSOR_COL, g_param_spec_int ("cursor_col", - _("Cursor Column"), - /*_( */"XXX blurb" /*)*/, + "Cursor Column", + NULL, 0, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_MODEL, g_param_spec_object ("model", - _("Model"), - "XXX blurb", + "Model", + NULL, E_TREE_MODEL_TYPE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_ETTA, g_param_spec_object ("etta", "ETTA", - "XXX blurb", + NULL, E_TREE_TABLE_ADAPTER_TYPE, G_PARAM_READWRITE)); diff --git a/widgets/table/e-tree.c b/widgets/table/e-tree.c index ac1fcdd2d7..f813b64e8f 100644 --- a/widgets/table/e-tree.c +++ b/widgets/table/e-tree.c @@ -538,11 +538,9 @@ et_search_accept (ETableSearch *search, ETree *et) static void e_tree_init (ETree *e_tree) { - GtkTable *gtk_table = GTK_TABLE (e_tree); + gtk_widget_set_can_focus (GTK_WIDGET (e_tree), TRUE); - GTK_WIDGET_SET_FLAGS (GTK_WIDGET (e_tree), GTK_CAN_FOCUS); - - gtk_table->homogeneous = FALSE; + gtk_table_set_homogeneous (GTK_TABLE (e_tree), FALSE); e_tree->priv = g_new(ETreePriv, 1); @@ -656,7 +654,7 @@ et_focus (GtkWidget *container, GtkDirectionType direction) e_tree = E_TREE (container); - if (GTK_CONTAINER (container)->focus_child) { + if (gtk_container_get_focus_child (GTK_CONTAINER (container))) { gtk_container_set_focus_child (GTK_CONTAINER (container), NULL); return FALSE; } @@ -689,26 +687,33 @@ set_header_canvas_width (ETree *e_tree) static void header_canvas_size_allocate (GtkWidget *widget, GtkAllocation *alloc, ETree *e_tree) { + GtkAllocation allocation; + set_header_canvas_width (e_tree); + widget = GTK_WIDGET (e_tree->priv->header_canvas); + gtk_widget_get_allocation (widget, &allocation); + /* When the header item is created ->height == 0, as the font is only created when everything is realized. So we set the usize here as well, so that the size of the header is correct */ - if (GTK_WIDGET (e_tree->priv->header_canvas)->allocation.height != - E_TABLE_HEADER_ITEM (e_tree->priv->header_item)->height) - gtk_widget_set_size_request (GTK_WIDGET (e_tree->priv->header_canvas), -1, - E_TABLE_HEADER_ITEM (e_tree->priv->header_item)->height); + if (allocation.height != E_TABLE_HEADER_ITEM (e_tree->priv->header_item)->height) + gtk_widget_set_size_request ( + widget, -1, + E_TABLE_HEADER_ITEM (e_tree->priv->header_item)->height); } static void e_tree_setup_header (ETree *e_tree) { + GtkWidget *widget; gchar *pointer; - e_tree->priv->header_canvas = GNOME_CANVAS (e_canvas_new ()); - GTK_WIDGET_UNSET_FLAGS (e_tree->priv->header_canvas, GTK_CAN_FOCUS); - gtk_widget_show (GTK_WIDGET (e_tree->priv->header_canvas)); + widget = e_canvas_new (); + gtk_widget_set_can_focus (widget, FALSE); + e_tree->priv->header_canvas = GNOME_CANVAS (widget); + gtk_widget_show (widget); pointer = g_strdup_printf("%p", (gpointer) e_tree); @@ -737,23 +742,39 @@ static void scroll_to_cursor (ETree *e_tree) { ETreePath path; - GtkAdjustment *adj; + GtkAdjustment *adjustment; + GtkLayout *layout; gint x, y, w, h; + gdouble page_size; + gdouble lower; + gdouble upper; + gdouble value; path = e_tree_get_cursor (e_tree); - adj = GTK_LAYOUT (e_tree->priv->table_canvas)->vadjustment; x = y = w = h = 0; + if (path) { gint row = e_tree_row_of_node(e_tree, path); gint col = 0; if (row >= 0) - e_table_item_get_cell_geometry (E_TABLE_ITEM (e_tree->priv->item), - &row, &col, &x, &y, &w, &h); + e_table_item_get_cell_geometry ( + E_TABLE_ITEM (e_tree->priv->item), + &row, &col, &x, &y, &w, &h); } - if (y < adj->value || y + h > adj->value + adj->page_size) - gtk_adjustment_set_value(adj, CLAMP(y - adj->page_size / 2, adj->lower, adj->upper - adj->page_size)); + layout = GTK_LAYOUT (e_tree->priv->table_canvas); + adjustment = gtk_layout_get_vadjustment (layout); + + page_size = gtk_adjustment_get_page_size (adjustment); + lower = gtk_adjustment_get_lower (adjustment); + upper = gtk_adjustment_get_upper (adjustment); + value = gtk_adjustment_get_value (adjustment); + + if (y < value || y + h > value + page_size) { + value = CLAMP (y - page_size / 2, lower, upper - page_size); + gtk_adjustment_set_value (adjustment, value); + } } static gboolean @@ -761,24 +782,32 @@ tree_canvas_reflow_idle (ETree *e_tree) { gdouble height, width; gdouble oldheight, oldwidth; - GtkAllocation *alloc = &(GTK_WIDGET (e_tree->priv->table_canvas)->allocation); + GtkAllocation allocation; + GtkWidget *widget; + + widget = GTK_WIDGET (e_tree->priv->table_canvas); + gtk_widget_get_allocation (widget, &allocation); + + g_object_get ( + e_tree->priv->item, + "height", &height, "width", &width, NULL); + + height = MAX ((gint)height, allocation.height); + width = MAX((gint)width, allocation.width); - g_object_get (e_tree->priv->item, - "height", &height, - "width", &width, - NULL); - height = MAX ((gint)height, alloc->height); - width = MAX((gint)width, alloc->width); /* I have no idea why this needs to be -1, but it works. */ - gnome_canvas_get_scroll_region (GNOME_CANVAS (e_tree->priv->table_canvas), - NULL, NULL, &oldwidth, &oldheight); + gnome_canvas_get_scroll_region ( + GNOME_CANVAS (e_tree->priv->table_canvas), + NULL, NULL, &oldwidth, &oldheight); if (oldwidth != width - 1 || oldheight != height - 1) { - gnome_canvas_set_scroll_region (GNOME_CANVAS (e_tree->priv->table_canvas), - 0, 0, width - 1, height - 1); + gnome_canvas_set_scroll_region ( + GNOME_CANVAS (e_tree->priv->table_canvas), + 0, 0, width - 1, height - 1); set_header_canvas_width (e_tree); } + e_tree->priv->reflow_idle_id = 0; if (e_tree->priv->show_cursor_after_reflow) { @@ -881,14 +910,24 @@ item_key_press (ETableItem *eti, gint row, gint col, GdkEvent *event, ETree *et) GdkEventKey *key = (GdkEventKey *) event; ETreePath path; gint y, row_local, col_local; - GtkAdjustment *vadj; + GtkAdjustment *adjustment; + GtkLayout *layout; + gdouble page_size; + gdouble upper; + gdouble value; + + layout = GTK_LAYOUT (et->priv->table_canvas); + adjustment = gtk_layout_get_vadjustment (layout); + + page_size = gtk_adjustment_get_page_size (adjustment); + upper = gtk_adjustment_get_upper (adjustment); + value = gtk_adjustment_get_value (adjustment); switch (key->keyval) { case GDK_Page_Down: case GDK_KP_Page_Down: - vadj = gtk_layout_get_vadjustment (GTK_LAYOUT (et->priv->table_canvas)); - y = CLAMP(vadj->value + (2 * vadj->page_size - 50), 0, vadj->upper); - y -= vadj->value; + y = CLAMP (value + (2 * page_size - 50), 0, upper); + y -= value; e_tree_get_cell_at (et, 30, y, &row_local, &col_local); if (row_local == -1) @@ -902,9 +941,8 @@ item_key_press (ETableItem *eti, gint row, gint col, GdkEvent *event, ETree *et) break; case GDK_Page_Up: case GDK_KP_Page_Up: - vadj = gtk_layout_get_vadjustment (GTK_LAYOUT (et->priv->table_canvas)); - y = CLAMP(vadj->value - (vadj->page_size - 50), 0, vadj->upper); - y -= vadj->value; + y = CLAMP (value - (page_size - 50), 0, upper); + y -= value; e_tree_get_cell_at (et, 30, y, &row_local, &col_local); if (row_local == -1) @@ -1029,9 +1067,13 @@ et_build_item (ETree *et) static void et_canvas_style_set (GtkWidget *widget, GtkStyle *prev_style) { + GtkStyle *style; + + style = gtk_widget_get_style (widget); + gnome_canvas_item_set( E_TREE(widget)->priv->white_item, - "fill_color_gdk", &widget->style->base[GTK_STATE_NORMAL], + "fill_color_gdk", &style->base[GTK_STATE_NORMAL], NULL); } @@ -1053,11 +1095,7 @@ et_canvas_root_event (GnomeCanvasItem *root, GdkEvent *event, ETree *e_tree) case GDK_2BUTTON_PRESS: case GDK_BUTTON_RELEASE: if (event->button.button != 4 && event->button.button != 5) { -#if GTK_CHECK_VERSION(2,19,7) if (gtk_widget_has_focus (GTK_WIDGET (root->canvas))) { -#else - if (GTK_WIDGET_HAS_FOCUS(root->canvas)) { -#endif GnomeCanvasItem *item = GNOME_CANVAS(root->canvas)->focused_item; if (E_IS_TABLE_ITEM(item)) { @@ -1102,6 +1140,9 @@ table_canvas_focus_event_cb (GtkWidget *widget, GdkEventFocus *event, gpointer d static void e_tree_setup_table (ETree *e_tree) { + GtkWidget *widget; + GtkStyle *style; + e_tree->priv->table_canvas = GNOME_CANVAS (e_canvas_new ()); g_signal_connect ( e_tree->priv->table_canvas, "size_allocate", @@ -1141,16 +1182,20 @@ e_tree_setup_table (ETree *e_tree) g_signal_connect (e_tree->priv->table_canvas, "reflow", G_CALLBACK (tree_canvas_reflow), e_tree); - gtk_widget_show (GTK_WIDGET (e_tree->priv->table_canvas)); + widget = GTK_WIDGET (e_tree->priv->table_canvas); + style = gtk_widget_get_style (widget); + + gtk_widget_show (widget); - e_tree->priv->white_item = gnome_canvas_item_new( - gnome_canvas_root(e_tree->priv->table_canvas), + e_tree->priv->white_item = gnome_canvas_item_new ( + gnome_canvas_root (e_tree->priv->table_canvas), e_canvas_background_get_type(), - "fill_color_gdk", >K_WIDGET(e_tree->priv->table_canvas)->style->base[GTK_STATE_NORMAL], + "fill_color_gdk", &style->base[GTK_STATE_NORMAL], NULL); - g_signal_connect (e_tree->priv->white_item, "event", - G_CALLBACK (white_item_event), e_tree); + g_signal_connect ( + e_tree->priv->white_item, "event", + G_CALLBACK (white_item_event), e_tree); g_signal_connect ( gnome_canvas_root (e_tree->priv->table_canvas), "event", G_CALLBACK(et_canvas_root_event), e_tree); @@ -1182,12 +1227,19 @@ e_tree_set_search_column (ETree *e_tree, gint col) void e_tree_set_state_object(ETree *e_tree, ETableState *state) { - GValue *val = g_new0 (GValue, 1); + GValue *val; + GtkAllocation allocation; + GtkWidget *widget; + + val = g_new0 (GValue, 1); g_value_init (val, G_TYPE_DOUBLE); connect_header (e_tree, state); - g_value_set_double (val, (gdouble) (GTK_WIDGET(e_tree->priv->table_canvas)->allocation.width)); + widget = GTK_WIDGET (e_tree->priv->table_canvas); + gtk_widget_get_allocation (widget, &allocation); + + g_value_set_double (val, (gdouble) allocation.width); g_object_set_property (G_OBJECT (e_tree->priv->header), "width", val); g_free (val); @@ -1424,6 +1476,8 @@ static gboolean et_real_construct (ETree *e_tree, ETreeModel *etm, ETableExtras *ete, ETableSpecification *specification, ETableState *state) { + GtkAdjustment *adjustment; + GtkLayout *layout; gint row = 0; if (ete) @@ -1475,10 +1529,13 @@ et_real_construct (ETree *e_tree, ETreeModel *etm, ETableExtras *ete, } e_tree_setup_table (e_tree); - gtk_layout_get_vadjustment (GTK_LAYOUT (e_tree->priv->table_canvas))->step_increment = 20; - gtk_adjustment_changed(gtk_layout_get_vadjustment (GTK_LAYOUT (e_tree->priv->table_canvas))); - gtk_layout_get_hadjustment (GTK_LAYOUT (e_tree->priv->table_canvas))->step_increment = 20; - gtk_adjustment_changed(gtk_layout_get_hadjustment (GTK_LAYOUT (e_tree->priv->table_canvas))); + layout = GTK_LAYOUT (e_tree->priv->table_canvas); + + adjustment = gtk_layout_get_vadjustment (layout); + gtk_adjustment_set_step_increment (adjustment, 20); + + adjustment = gtk_layout_get_hadjustment (layout); + gtk_adjustment_set_step_increment (adjustment, 20); if (!specification->no_headers) { /* @@ -1930,24 +1987,24 @@ set_scroll_adjustments (ETree *tree, GtkAdjustment *hadjustment, GtkAdjustment *vadjustment) { - if (vadjustment != NULL) { - vadjustment->step_increment = 20; - gtk_adjustment_changed(vadjustment); - } - if (hadjustment != NULL) { - hadjustment->step_increment = 20; - gtk_adjustment_changed(hadjustment); - } + if (vadjustment != NULL) + gtk_adjustment_set_step_increment (vadjustment, 20); + + if (hadjustment != NULL) + gtk_adjustment_set_step_increment (hadjustment, 20); if (tree->priv) { - gtk_layout_set_hadjustment (GTK_LAYOUT(tree->priv->table_canvas), - hadjustment); - gtk_layout_set_vadjustment (GTK_LAYOUT(tree->priv->table_canvas), - vadjustment); + GtkLayout *layout; + + layout = GTK_LAYOUT (tree->priv->table_canvas); + + gtk_layout_set_hadjustment (layout, hadjustment); + gtk_layout_set_vadjustment (layout, vadjustment); if (tree->priv->header_canvas != NULL) - gtk_layout_set_hadjustment (GTK_LAYOUT(tree->priv->header_canvas), - hadjustment); + gtk_layout_set_hadjustment ( + GTK_LAYOUT(tree->priv->header_canvas), + hadjustment); } } @@ -2383,37 +2440,48 @@ e_tree_drag_highlight (ETree *tree, gint row, gint col) { - g_return_if_fail(tree != NULL); + GtkAdjustment *adjustment; + GtkAllocation allocation; + GtkLayout *layout; + GtkStyle *style; + g_return_if_fail(E_IS_TREE(tree)); + layout = GTK_LAYOUT (tree->priv->table_canvas); + style = gtk_widget_get_style (GTK_WIDGET (tree)); + gtk_widget_get_allocation (GTK_WIDGET (layout), &allocation); + if (row != -1) { gint x, y, width, height; if (col == -1) { e_tree_get_cell_geometry (tree, row, 0, &x, &y, &width, &height); x = 0; - width = GTK_WIDGET (tree->priv->table_canvas)->allocation.width; + width = allocation.width; } else { e_tree_get_cell_geometry (tree, row, col, &x, &y, &width, &height); - x += GTK_LAYOUT(tree->priv->table_canvas)->hadjustment->value; + adjustment = gtk_layout_get_hadjustment (layout); + x += gtk_adjustment_get_value (adjustment); } - y += GTK_LAYOUT(tree->priv->table_canvas)->vadjustment->value; + + adjustment = gtk_layout_get_vadjustment (layout); + y += gtk_adjustment_get_value (adjustment); if (tree->priv->drop_highlight == NULL) { - tree->priv->drop_highlight = - gnome_canvas_item_new (gnome_canvas_root (tree->priv->table_canvas), - gnome_canvas_rect_get_type (), - "fill_color", NULL, - /* "outline_color", "black", - "width_pixels", 1,*/ - "outline_color_gdk", &(GTK_WIDGET (tree)->style->fg[GTK_STATE_NORMAL]), - NULL); + tree->priv->drop_highlight = gnome_canvas_item_new ( + gnome_canvas_root (tree->priv->table_canvas), + gnome_canvas_rect_get_type (), + "fill_color", NULL, + "outline_color_gdk", &style->fg[GTK_STATE_NORMAL], + NULL); } - gnome_canvas_item_set (tree->priv->drop_highlight, - "x1", (gdouble) x, - "x2", (gdouble) x + width - 1, - "y1", (gdouble) y, - "y2", (gdouble) y + height - 1, - NULL); + + gnome_canvas_item_set ( + tree->priv->drop_highlight, + "x1", (gdouble) x, + "x2", (gdouble) x + width - 1, + "y1", (gdouble) y, + "y2", (gdouble) y + height - 1, + NULL); } else { gtk_object_destroy (GTK_OBJECT (tree->priv->drop_highlight)); tree->priv->drop_highlight = NULL; @@ -2617,7 +2685,9 @@ e_tree_get_cell_at (ETree *tree, gint x, gint y, gint *row_return, gint *col_return) { - g_return_if_fail (tree != NULL); + GtkAdjustment *adjustment; + GtkLayout *layout; + g_return_if_fail (E_IS_TREE (tree)); g_return_if_fail (row_return != NULL); g_return_if_fail (col_return != NULL); @@ -2630,9 +2700,17 @@ e_tree_get_cell_at (ETree *tree, if (col_return) *col_return = -1; - x += GTK_LAYOUT(tree->priv->table_canvas)->hadjustment->value; - y += GTK_LAYOUT(tree->priv->table_canvas)->vadjustment->value; - e_table_item_compute_location(E_TABLE_ITEM(tree->priv->item), &x, &y, row_return, col_return); + layout = GTK_LAYOUT (tree->priv->table_canvas); + + adjustment = gtk_layout_get_hadjustment (layout); + x += gtk_adjustment_get_value (adjustment); + + adjustment = gtk_layout_get_vadjustment (layout); + y += gtk_adjustment_get_value (adjustment); + + e_table_item_compute_location ( + E_TABLE_ITEM (tree->priv->item), + &x, &y, row_return, col_return); } /** @@ -2653,7 +2731,9 @@ e_tree_get_cell_geometry (ETree *tree, gint *x_return, gint *y_return, gint *width_return, gint *height_return) { - g_return_if_fail (tree != NULL); + GtkAdjustment *adjustment; + GtkLayout *layout; + g_return_if_fail (E_IS_TREE (tree)); g_return_if_fail (row >= 0); g_return_if_fail (col >= 0); @@ -2661,12 +2741,22 @@ e_tree_get_cell_geometry (ETree *tree, /* FIXME it would be nice if it could handle a NULL row_return or * col_return gracefully. */ - e_table_item_get_cell_geometry(E_TABLE_ITEM(tree->priv->item), &row, &col, x_return, y_return, width_return, height_return); + e_table_item_get_cell_geometry ( + E_TABLE_ITEM (tree->priv->item), + &row, &col, x_return, y_return, + width_return, height_return); + + layout = GTK_LAYOUT (tree->priv->table_canvas); + + if (x_return) { + adjustment = gtk_layout_get_hadjustment (layout); + (*x_return) -= gtk_adjustment_get_value (adjustment); + } - if (x_return) - (*x_return) -= GTK_LAYOUT(tree->priv->table_canvas)->hadjustment->value; - if (y_return) - (*y_return) -= GTK_LAYOUT(tree->priv->table_canvas)->vadjustment->value; + if (y_return) { + adjustment = gtk_layout_get_vadjustment (layout); + (*y_return) -= gtk_adjustment_get_value (adjustment); + } } static void @@ -2777,8 +2867,15 @@ scroll_timeout (gpointer data) { ETree *et = data; gint dx = 0, dy = 0; - GtkAdjustment *v, *h; - gdouble vvalue, hvalue; + GtkAdjustment *adjustment; + GtkLayout *layout; + gdouble old_h_value; + gdouble new_h_value; + gdouble old_v_value; + gdouble new_v_value; + gdouble page_size; + gdouble lower; + gdouble upper; if (et->priv->scroll_direction & ET_SCROLL_DOWN) dy += 20; @@ -2790,22 +2887,37 @@ scroll_timeout (gpointer data) if (et->priv->scroll_direction & ET_SCROLL_LEFT) dx -= 20; - h = GTK_LAYOUT(et->priv->table_canvas)->hadjustment; - v = GTK_LAYOUT(et->priv->table_canvas)->vadjustment; + layout = GTK_LAYOUT (et->priv->table_canvas); + + adjustment = gtk_layout_get_hadjustment (layout); + + page_size = gtk_adjustment_get_page_size (adjustment); + lower = gtk_adjustment_get_lower (adjustment); + upper = gtk_adjustment_get_upper (adjustment); - hvalue = h->value; - vvalue = v->value; + old_h_value = gtk_adjustment_get_value (adjustment); + new_h_value = CLAMP (old_h_value + dx, lower, upper - page_size); - gtk_adjustment_set_value(h, CLAMP(h->value + dx, h->lower, h->upper - h->page_size)); - gtk_adjustment_set_value(v, CLAMP(v->value + dy, v->lower, v->upper - v->page_size)); + gtk_adjustment_set_value (adjustment, new_h_value); - if (h->value != hvalue || - v->value != vvalue) - do_drag_motion(et, - et->priv->last_drop_context, - et->priv->last_drop_x, - et->priv->last_drop_y, - et->priv->last_drop_time); + adjustment = gtk_layout_get_vadjustment (layout); + + page_size = gtk_adjustment_get_page_size (adjustment); + lower = gtk_adjustment_get_lower (adjustment); + upper = gtk_adjustment_get_upper (adjustment); + + old_v_value = gtk_adjustment_get_value (adjustment); + new_v_value = CLAMP (old_v_value + dy, lower, upper - page_size); + + gtk_adjustment_set_value (adjustment, new_v_value); + + if (new_h_value != old_h_value || new_v_value != old_v_value) + do_drag_motion ( + et, + et->priv->last_drop_context, + et->priv->last_drop_x, + et->priv->last_drop_y, + et->priv->last_drop_time); return TRUE; } @@ -2969,6 +3081,7 @@ et_drag_motion(GtkWidget *widget, guint time, ETree *et) { + GtkAllocation allocation; gint ret_val; guint direction = 0; @@ -2987,19 +3100,17 @@ et_drag_motion(GtkWidget *widget, hover_on (et, x, y); } - ret_val = do_drag_motion (et, - context, - x, - y, - time); + ret_val = do_drag_motion (et, context, x, y, time); + + gtk_widget_get_allocation (widget, &allocation); if (y < 20) direction |= ET_SCROLL_UP; - if (y > widget->allocation.height - 20) + if (y > allocation.height - 20) direction |= ET_SCROLL_DOWN; if (x < 20) direction |= ET_SCROLL_LEFT; - if (x > widget->allocation.width - 20) + if (x > allocation.width - 20) direction |= ET_SCROLL_RIGHT; if (direction != 0) @@ -3364,61 +3475,61 @@ e_tree_class_init (ETreeClass *class) g_object_class_install_property (object_class, PROP_LENGTH_THRESHOLD, g_param_spec_int ("length_threshold", - _( "Length Threshold" ), - _( "Length Threshold" ), + "Length Threshold", + "Length Threshold", 0, G_MAXINT, 0, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_HORIZONTAL_DRAW_GRID, g_param_spec_boolean ("horizontal_draw_grid", - _( "Horizontal Draw Grid" ), - _( "Horizontal Draw Grid" ), + "Horizontal Draw Grid", + "Horizontal Draw Grid", FALSE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_VERTICAL_DRAW_GRID, g_param_spec_boolean ("vertical_draw_grid", - _( "Vertical Draw Grid" ), - _( "Vertical Draw Grid" ), + "Vertical Draw Grid", + "Vertical Draw Grid", FALSE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_DRAW_FOCUS, g_param_spec_boolean ("drawfocus", - _( "Draw focus" ), - _( "Draw focus" ), + "Draw focus", + "Draw focus", FALSE, G_PARAM_WRITABLE)); g_object_class_install_property (object_class, PROP_ETTA, g_param_spec_object ("ETreeTableAdapter", - _( "ETree table adapter" ), - _( "ETree table adapter" ), + "ETree table adapter", + "ETree table adapter", E_TREE_TABLE_ADAPTER_TYPE, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_UNIFORM_ROW_HEIGHT, g_param_spec_boolean ("uniform_row_height", - _( "Uniform row height" ), - _( "Uniform row height" ), + "Uniform row height", + "Uniform row height", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_ALWAYS_SEARCH, g_param_spec_boolean ("always_search", - _( "Always search" ), - _( "Always search" ), + "Always search", + "Always search", FALSE, G_PARAM_READWRITE)); gtk_widget_class_install_style_property (widget_class, g_param_spec_boolean ("retro_look", - _("Retro Look"), - _("Draw lines and +/- expanders."), + "Retro Look", + "Draw lines and +/- expanders.", FALSE, G_PARAM_READABLE)); gtk_widget_class_install_style_property (widget_class, g_param_spec_int ("expander_size", - _("Expander Size"), - _("Size of the expander arrow"), + "Expander Size", + "Size of the expander arrow", 0, G_MAXINT, 10, @@ -3453,6 +3564,9 @@ tree_size_allocate (GtkWidget *widget, GtkAllocation *alloc, ETree *tree) void e_tree_set_info_message (ETree *tree, const gchar *info_message) { + GtkAllocation allocation; + GtkWidget *widget; + g_return_if_fail (tree != NULL); g_return_if_fail (tree->priv != NULL); @@ -3466,18 +3580,22 @@ e_tree_set_info_message (ETree *tree, const gchar *info_message) return; } + widget = GTK_WIDGET (tree->priv->table_canvas); + gtk_widget_get_allocation (widget, &allocation); + if (!tree->priv->info_text) { - tree->priv->info_text = gnome_canvas_item_new (GNOME_CANVAS_GROUP (gnome_canvas_root (tree->priv->table_canvas)), - e_text_get_type (), - "anchor", GTK_ANCHOR_NW, - "line_wrap", TRUE, - "clip", TRUE, - "justification", GTK_JUSTIFY_LEFT, - "text", info_message, - "draw_background", FALSE, - "width", (gdouble) GTK_WIDGET (tree->priv->table_canvas)->allocation.width - 60.0, - "clip_width", (gdouble) GTK_WIDGET (tree->priv->table_canvas)->allocation.width - 60.0, - NULL); + tree->priv->info_text = gnome_canvas_item_new ( + GNOME_CANVAS_GROUP (gnome_canvas_root (tree->priv->table_canvas)), + e_text_get_type (), + "anchor", GTK_ANCHOR_NW, + "line_wrap", TRUE, + "clip", TRUE, + "justification", GTK_JUSTIFY_LEFT, + "text", info_message, + "draw_background", FALSE, + "width", (gdouble) allocation.width - 60.0, + "clip_width", (gdouble) allocation.width - 60.0, + NULL); e_canvas_item_move_absolute (tree->priv->info_text, 30, 30); diff --git a/widgets/table/gal-a11y-e-cell-popup.c b/widgets/table/gal-a11y-e-cell-popup.c index 141ce172a4..921ae8e4d5 100644 --- a/widgets/table/gal-a11y-e-cell-popup.c +++ b/widgets/table/gal-a11y-e-cell-popup.c @@ -118,8 +118,9 @@ gal_a11y_e_cell_popup_new (ETableItem *item, g_return_val_if_fail (a11y != NULL, NULL); cell = GAL_A11Y_E_CELL(a11y); gal_a11y_e_cell_add_action (cell, - _("popup"), /* action name*/ - _("popup a child"), /* action description */ + "popup", + /* Translators: description of a "popup" action */ + _("popup a child"), "<Alt>Down", /* action keybinding */ popup_cell_action); @@ -132,9 +133,12 @@ popup_cell_action (GalA11yECell *cell) { gint finished; GdkEvent event; + GtkLayout *layout; + + layout = GTK_LAYOUT (GNOME_CANVAS_ITEM (cell->item)->canvas); event.key.type = GDK_KEY_PRESS; - event.key.window = GTK_LAYOUT(GNOME_CANVAS_ITEM(cell->item)->canvas)->bin_window;; + event.key.window = gtk_layout_get_bin_window (layout); event.key.send_event = TRUE; event.key.time = GDK_CURRENT_TIME; event.key.state = GDK_MOD1_MASK; diff --git a/widgets/table/gal-a11y-e-cell-text.c b/widgets/table/gal-a11y-e-cell-text.c index 26fffcb3e7..bc69ca3d26 100644 --- a/widgets/table/gal-a11y-e-cell-text.c +++ b/widgets/table/gal-a11y-e-cell-text.c @@ -613,7 +613,8 @@ ect_action_init (GalA11yECellText *a11y) ECellText *ect = E_CELL_TEXT (gaec->cell_view->ecell); if (ect->editable && e_table_model_is_cell_editable (gaec->cell_view->e_table_model, gaec->model_col, gaec->row)) gal_a11y_e_cell_add_action (gaec, - _("edit"), + "edit", + /* Translators: description of an "edit" action */ _("begin editing this cell"), NULL, (ACTION_FUNC) ect_do_action_edit); diff --git a/widgets/table/gal-a11y-e-cell-toggle.c b/widgets/table/gal-a11y-e-cell-toggle.c index fa23f6c6fd..54b1b3586c 100644 --- a/widgets/table/gal-a11y-e-cell-toggle.c +++ b/widgets/table/gal-a11y-e-cell-toggle.c @@ -90,6 +90,7 @@ static void toggle_cell_action (GalA11yECell *cell) { gint finished; + GtkLayout *layout; GdkEventButton event; gint x, y, width, height; gint row, col; @@ -97,14 +98,16 @@ toggle_cell_action (GalA11yECell *cell) row = cell->row; col = cell->view_col; - e_table_item_get_cell_geometry (cell->item, &row, &col, - &x, &y, &width, &height); + layout = GTK_LAYOUT (GNOME_CANVAS_ITEM (cell->item)->canvas); + + e_table_item_get_cell_geometry ( + cell->item, &row, &col, &x, &y, &width, &height); event.x = x + width / 2 + (gint)(GNOME_CANVAS_ITEM (cell->item)->x1); event.y = y + height / 2 + (gint)(GNOME_CANVAS_ITEM (cell->item)->y1); event.type = GDK_BUTTON_PRESS; - event.window = GTK_LAYOUT(GNOME_CANVAS_ITEM(cell->item)->canvas)->bin_window; + event.window = gtk_layout_get_bin_window (layout); event.button = 1; event.send_event = TRUE; event.time = GDK_CURRENT_TIME; @@ -166,8 +169,9 @@ gal_a11y_e_cell_toggle_new (ETableItem *item, row); gal_a11y_e_cell_add_action (cell, - _("toggle"), /* action name*/ - _("toggle the cell"), /* action description */ + "toggle", + /* Translators: description of a "toggle" action */ + _("toggle the cell"), NULL, /* action keybinding */ toggle_cell_action); diff --git a/widgets/table/gal-a11y-e-cell-tree.c b/widgets/table/gal-a11y-e-cell-tree.c index aaf490c726..148d36392f 100644 --- a/widgets/table/gal-a11y-e-cell-tree.c +++ b/widgets/table/gal-a11y-e-cell-tree.c @@ -207,13 +207,15 @@ gal_a11y_e_cell_tree_new (ETableItem *item, view_col, row); gal_a11y_e_cell_add_action (GAL_A11Y_E_CELL (subcell_a11y), - _("expand"), + "expand", + /* Translators: description of an "expand" action */ _("expands the row in the ETree containing this cell"), NULL, (ACTION_FUNC)ectr_do_action_expand); gal_a11y_e_cell_add_action (GAL_A11Y_E_CELL (subcell_a11y), - _("collapse"), + "collapse", + /* Translators: description of a "collapse" action */ _("collapses the row in the ETree containing this cell"), NULL, (ACTION_FUNC)ectr_do_action_collapse); diff --git a/widgets/table/gal-a11y-e-table-click-to-add.c b/widgets/table/gal-a11y-e-table-click-to-add.c index 8d788a458b..ebec8681ae 100644 --- a/widgets/table/gal-a11y-e-table-click-to-add.c +++ b/widgets/table/gal-a11y-e-table-click-to-add.c @@ -72,26 +72,30 @@ etcta_action_get_name (AtkAction *action, gint i) static gboolean idle_do_action (gpointer data) { - GdkEventButton event; + GtkLayout *layout; + GdkEventButton event; ETableClickToAdd * etcta; - gint finished; + gint finished; g_return_val_if_fail ( data!= NULL, FALSE); - etcta = E_TABLE_CLICK_TO_ADD (atk_gobject_accessible_get_object (ATK_GOBJECT_ACCESSIBLE (data))); + etcta = E_TABLE_CLICK_TO_ADD ( + atk_gobject_accessible_get_object ( + ATK_GOBJECT_ACCESSIBLE (data))); g_return_val_if_fail (etcta, FALSE); + layout = GTK_LAYOUT (GNOME_CANVAS_ITEM (etcta)->canvas); + event.x = 0; event.y = 0; - - event.type = GDK_BUTTON_PRESS; - event.window = GTK_LAYOUT(GNOME_CANVAS_ITEM(etcta)->canvas)->bin_window; - event.button = 1; - event.send_event = TRUE; - event.time = GDK_CURRENT_TIME; - event.axes = NULL; - - g_signal_emit_by_name (etcta, "event", &event, &finished); + event.type = GDK_BUTTON_PRESS; + event.window = gtk_layout_get_bin_window (layout); + event.button = 1; + event.send_event = TRUE; + event.time = GDK_CURRENT_TIME; + event.axes = NULL; + + g_signal_emit_by_name (etcta, "event", &event, &finished); return FALSE; } diff --git a/widgets/table/gal-a11y-e-table.c b/widgets/table/gal-a11y-e-table.c index 37e5b892d2..6134b2d297 100644 --- a/widgets/table/gal-a11y-e-table.c +++ b/widgets/table/gal-a11y-e-table.c @@ -90,11 +90,7 @@ init_child_item (GalA11yETable *a11y) return FALSE; table = E_TABLE (GTK_ACCESSIBLE (a11y)->widget); -#if GTK_CHECK_VERSION(2,19,7) if (table && gtk_widget_get_mapped (GTK_WIDGET (table)) && table->group && E_IS_TABLE_GROUP_CONTAINER(table->group)) { -#else - if (table && GTK_WIDGET_MAPPED (GTK_WIDGET (table)) && table->group && E_IS_TABLE_GROUP_CONTAINER(table->group)) { -#endif ETableGroupContainer *etgc = (ETableGroupContainer *)table->group; GList *list; @@ -288,11 +284,7 @@ gal_a11y_e_table_new (GObject *widget) GTK_ACCESSIBLE (a11y)->widget = GTK_WIDGET (widget); /* we need to init all the children for multiple table items */ -#if GTK_CHECK_VERSION(2,19,7) if (table && gtk_widget_get_mapped (GTK_WIDGET (table)) && table->group && E_IS_TABLE_GROUP_CONTAINER (table->group)) { -#else - if (table && GTK_WIDGET_MAPPED (GTK_WIDGET (table)) && table->group && E_IS_TABLE_GROUP_CONTAINER (table->group)) { -#endif /* Ref it here so that it is still valid in the idle function */ /* It will be unrefed in the idle function */ g_object_ref (a11y); diff --git a/widgets/text/e-reflow.c b/widgets/text/e-reflow.c index 0ce3302da1..4e3f36fd19 100644 --- a/widgets/text/e-reflow.c +++ b/widgets/text/e-reflow.c @@ -162,20 +162,25 @@ static gboolean do_adjustment (gpointer user_data) { gint row; - GtkAdjustment *adj; - gfloat value, min_value, max_value; + GtkLayout *layout; + GtkAdjustment *adjustment; + gdouble page_size; + gdouble value, min_value, max_value; EReflow *reflow = user_data; row = reflow->cursor_row; if (row == -1) return FALSE; - adj = gtk_layout_get_hadjustment (GTK_LAYOUT (GNOME_CANVAS_ITEM (reflow)->canvas)); - value = adj->value; + layout = GTK_LAYOUT (GNOME_CANVAS_ITEM (reflow)->canvas); + adjustment = gtk_layout_get_hadjustment (layout); + + value = gtk_adjustment_get_value (adjustment); + page_size = gtk_adjustment_get_page_size (adjustment); if ((!reflow->items) || (!reflow->items[row])) return TRUE; - min_value = reflow->items[row]->x2 - adj->page_size; + min_value = reflow->items[row]->x2 - page_size; max_value = reflow->items[row]->x1; if (value < min_value) @@ -184,10 +189,8 @@ do_adjustment (gpointer user_data) if (value > max_value) value = max_value; - if (value != adj->value) { - adj->value = value; - gtk_adjustment_value_changed (adj); - } + if (value != gtk_adjustment_get_value (adjustment)) + gtk_adjustment_set_value (adjustment, value); reflow->do_adjustment_idle_id = 0; @@ -238,14 +241,23 @@ incarnate (EReflow *reflow) gint first_cell; gint last_cell; gint i; - GtkAdjustment *adjustment = gtk_layout_get_hadjustment (GTK_LAYOUT (GNOME_CANVAS_ITEM (reflow)->canvas)); + GtkLayout *layout; + GtkAdjustment *adjustment; + gdouble value; + gdouble page_size; + + layout = GTK_LAYOUT (GNOME_CANVAS_ITEM (reflow)->canvas); + adjustment = gtk_layout_get_hadjustment (layout); + + value = gtk_adjustment_get_value (adjustment); + page_size = gtk_adjustment_get_page_size (adjustment); column_width = reflow->column_width; - first_column = adjustment->value - 1 + E_REFLOW_BORDER_WIDTH; + first_column = value - 1 + E_REFLOW_BORDER_WIDTH; first_column /= column_width + E_REFLOW_FULL_GUTTER; - last_column = adjustment->value + adjustment->page_size + 1 - E_REFLOW_BORDER_WIDTH - E_REFLOW_DIVIDER_WIDTH; + last_column = value + page_size + 1 - E_REFLOW_BORDER_WIDTH - E_REFLOW_DIVIDER_WIDTH; last_column /= column_width + E_REFLOW_FULL_GUTTER; last_column ++; @@ -733,13 +745,23 @@ e_reflow_set_property (GObject *object, guint prop_id, const GValue *value, GPar break; case PROP_COLUMN_WIDTH: if (reflow->column_width != g_value_get_double (value)) { - GtkAdjustment *adjustment = gtk_layout_get_hadjustment(GTK_LAYOUT(item->canvas)); + GtkLayout *layout; + GtkAdjustment *adjustment; gdouble old_width = reflow->column_width; + gdouble step_increment; + gdouble page_size; + + layout = GTK_LAYOUT (item->canvas); + adjustment = gtk_layout_get_hadjustment (layout); + page_size = gtk_adjustment_get_page_size (adjustment); reflow->column_width = g_value_get_double (value); - adjustment->step_increment = (reflow->column_width + E_REFLOW_FULL_GUTTER) / 2; - adjustment->page_increment = adjustment->page_size - adjustment->step_increment; - gtk_adjustment_changed(adjustment); + step_increment = (reflow->column_width + + E_REFLOW_FULL_GUTTER) / 2; + gtk_adjustment_set_step_increment ( + adjustment, step_increment); + gtk_adjustment_set_page_increment ( + adjustment, page_size - step_increment); e_reflow_resize_children(item); e_canvas_item_request_reflow(item); @@ -827,6 +849,9 @@ e_reflow_realize (GnomeCanvasItem *item) { EReflow *reflow; GtkAdjustment *adjustment; + gdouble page_increment; + gdouble step_increment; + gdouble page_size; gint count; gint i; @@ -851,19 +876,18 @@ e_reflow_realize (GnomeCanvasItem *item) reflow->need_reflow_columns = TRUE; e_canvas_item_request_reflow(item); - adjustment = gtk_layout_get_hadjustment(GTK_LAYOUT(item->canvas)); + adjustment = gtk_layout_get_hadjustment (GTK_LAYOUT (item->canvas)); #if 0 connect_set_adjustment (reflow); #endif connect_adjustment (reflow, adjustment); - adjustment->step_increment = (reflow->column_width + E_REFLOW_FULL_GUTTER) / 2; - adjustment->page_increment = adjustment->page_size - adjustment->step_increment; - gtk_adjustment_changed(adjustment); - - if (!item->canvas->aa) { - } + page_size = gtk_adjustment_get_page_size (adjustment); + step_increment = (reflow->column_width + E_REFLOW_FULL_GUTTER) / 2; + page_increment = page_size - step_increment; + gtk_adjustment_set_step_increment (adjustment, step_increment); + gtk_adjustment_set_page_increment (adjustment, page_increment); } static void @@ -873,9 +897,6 @@ e_reflow_unrealize (GnomeCanvasItem *item) reflow = E_REFLOW (item); - if (!item->canvas->aa) { - } - gdk_cursor_unref (reflow->arrow_cursor); gdk_cursor_unref (reflow->default_cursor); reflow->arrow_cursor = NULL; @@ -979,20 +1000,34 @@ e_reflow_event (GnomeCanvasItem *item, GdkEvent *event) break; case 4: { - GtkAdjustment *adjustment = gtk_layout_get_hadjustment(GTK_LAYOUT(item->canvas)); - gdouble new_value = adjustment->value; - new_value -= adjustment->step_increment; - gtk_adjustment_set_value(adjustment, new_value); + GtkLayout *layout; + GtkAdjustment *adjustment; + gdouble new_value; + + layout = GTK_LAYOUT (item->canvas); + adjustment = gtk_layout_get_hadjustment (layout); + new_value = gtk_adjustment_get_value (adjustment); + new_value -= gtk_adjustment_get_step_increment (adjustment); + gtk_adjustment_set_value (adjustment, new_value); } break; case 5: { - GtkAdjustment *adjustment = gtk_layout_get_hadjustment(GTK_LAYOUT(item->canvas)); - gdouble new_value = adjustment->value; - new_value += adjustment->step_increment; - if (new_value > adjustment->upper - adjustment->page_size) - new_value = adjustment->upper - adjustment->page_size; - gtk_adjustment_set_value(adjustment, new_value); + GtkLayout *layout; + GtkAdjustment *adjustment; + gdouble new_value; + gdouble page_size; + gdouble upper; + + layout = GTK_LAYOUT (item->canvas); + adjustment = gtk_layout_get_hadjustment (layout); + new_value = gtk_adjustment_get_value (adjustment); + new_value += gtk_adjustment_get_step_increment (adjustment); + upper = gtk_adjustment_get_upper (adjustment); + page_size = gtk_adjustment_get_page_size (adjustment); + if (new_value > upper - page_size) + new_value = upper - page_size; + gtk_adjustment_set_value (adjustment, new_value); } break; } @@ -1001,18 +1036,31 @@ e_reflow_event (GnomeCanvasItem *item, GdkEvent *event) if (reflow->column_drag) { gdouble old_width = reflow->column_width; GdkEventButton *button = (GdkEventButton *) event; - GtkAdjustment *adjustment = gtk_layout_get_hadjustment(GTK_LAYOUT(item->canvas)); + GtkAdjustment *adjustment; + GtkLayout *layout; + gdouble value; + + layout = GTK_LAYOUT (item->canvas); + adjustment = gtk_layout_get_hadjustment (layout); + value = gtk_adjustment_get_value (adjustment); + reflow->temp_column_width = reflow->column_width + - (button->x - reflow->start_x)/(reflow->which_column_dragged - e_reflow_pick_line(reflow, adjustment->value)); + (button->x - reflow->start_x)/(reflow->which_column_dragged - e_reflow_pick_line(reflow, value)); if (reflow->temp_column_width < 50) reflow->temp_column_width = 50; reflow->column_drag = FALSE; if (old_width != reflow->temp_column_width) { - gtk_adjustment_set_value(adjustment, adjustment->value + e_reflow_pick_line(reflow, adjustment->value) * (reflow->temp_column_width - reflow->column_width)); + gdouble page_increment; + gdouble step_increment; + gdouble page_size; + + page_size = gtk_adjustment_get_page_size (adjustment); + gtk_adjustment_set_value(adjustment, value + e_reflow_pick_line(reflow, value) * (reflow->temp_column_width - reflow->column_width)); reflow->column_width = reflow->temp_column_width; - adjustment->step_increment = (reflow->column_width + E_REFLOW_FULL_GUTTER) / 2; - adjustment->page_increment = adjustment->page_size - adjustment->step_increment; - gtk_adjustment_changed(adjustment); + step_increment = (reflow->column_width + E_REFLOW_FULL_GUTTER) / 2; + page_increment = page_size - step_increment; + gtk_adjustment_set_step_increment (adjustment, step_increment); + gtk_adjustment_set_page_increment (adjustment, page_increment); e_reflow_resize_children(item); e_canvas_item_request_reflow(item); gnome_canvas_request_redraw(item->canvas, 0, 0, reflow->width, reflow->height); @@ -1028,9 +1076,16 @@ e_reflow_event (GnomeCanvasItem *item, GdkEvent *event) if (reflow->column_drag) { gdouble old_width = reflow->temp_column_width; GdkEventMotion *motion = (GdkEventMotion *) event; - GtkAdjustment *adjustment = gtk_layout_get_hadjustment(GTK_LAYOUT(item->canvas)); + GtkAdjustment *adjustment; + GtkLayout *layout; + gdouble value; + + layout = GTK_LAYOUT (item->canvas); + adjustment = gtk_layout_get_hadjustment (layout); + value = gtk_adjustment_get_value (adjustment); + reflow->temp_column_width = reflow->column_width + - (motion->x - reflow->start_x)/(reflow->which_column_dragged - e_reflow_pick_line(reflow, adjustment->value)); + (motion->x - reflow->start_x)/(reflow->which_column_dragged - e_reflow_pick_line(reflow, value)); if (reflow->temp_column_width < 50) reflow->temp_column_width = 50; if (old_width != reflow->temp_column_width) { @@ -1040,20 +1095,23 @@ e_reflow_event (GnomeCanvasItem *item, GdkEvent *event) return TRUE; } else { GdkEventMotion *motion = (GdkEventMotion *) event; + GdkWindow *window; gdouble n_x; n_x = motion->x; n_x += E_REFLOW_BORDER_WIDTH + E_REFLOW_DIVIDER_WIDTH; n_x = fmod(n_x,(reflow->column_width + E_REFLOW_FULL_GUTTER)); + window = gtk_widget_get_window (GTK_WIDGET (item->canvas)); + if (motion->y >= E_REFLOW_BORDER_WIDTH && motion->y <= reflow->height - E_REFLOW_BORDER_WIDTH && n_x < E_REFLOW_FULL_GUTTER) { if (reflow->default_cursor_shown) { - gdk_window_set_cursor(GTK_WIDGET(item->canvas)->window, reflow->arrow_cursor); + gdk_window_set_cursor(window, reflow->arrow_cursor); reflow->default_cursor_shown = FALSE; } } else if (!reflow->default_cursor_shown) { - gdk_window_set_cursor(GTK_WIDGET(item->canvas)->window, reflow->default_cursor); + gdk_window_set_cursor(window, reflow->default_cursor); reflow->default_cursor_shown = TRUE; } @@ -1062,14 +1120,18 @@ e_reflow_event (GnomeCanvasItem *item, GdkEvent *event) case GDK_ENTER_NOTIFY: if (!reflow->column_drag) { GdkEventCrossing *crossing = (GdkEventCrossing *) event; + GdkWindow *window; gdouble n_x; + n_x = crossing->x; n_x += E_REFLOW_BORDER_WIDTH + E_REFLOW_DIVIDER_WIDTH; n_x = fmod(n_x,(reflow->column_width + E_REFLOW_FULL_GUTTER)); + window = gtk_widget_get_window (GTK_WIDGET (item->canvas)); + if (crossing->y >= E_REFLOW_BORDER_WIDTH && crossing->y <= reflow->height - E_REFLOW_BORDER_WIDTH && n_x < E_REFLOW_FULL_GUTTER) { if (reflow->default_cursor_shown) { - gdk_window_set_cursor(GTK_WIDGET(item->canvas)->window, reflow->arrow_cursor); + gdk_window_set_cursor(window, reflow->arrow_cursor); reflow->default_cursor_shown = FALSE; } } @@ -1078,13 +1140,18 @@ e_reflow_event (GnomeCanvasItem *item, GdkEvent *event) case GDK_LEAVE_NOTIFY: if (!reflow->column_drag) { GdkEventCrossing *crossing = (GdkEventCrossing *) event; + GdkWindow *window; gdouble n_x; + n_x = crossing->x; n_x += E_REFLOW_BORDER_WIDTH + E_REFLOW_DIVIDER_WIDTH; n_x = fmod(n_x,(reflow->column_width + E_REFLOW_FULL_GUTTER)); + + window = gtk_widget_get_window (GTK_WIDGET (item->canvas)); + if (!( crossing->y >= E_REFLOW_BORDER_WIDTH && crossing->y <= reflow->height - E_REFLOW_BORDER_WIDTH && n_x < E_REFLOW_FULL_GUTTER )) { if (!reflow->default_cursor_shown) { - gdk_window_set_cursor(GTK_WIDGET(item->canvas)->window, reflow->default_cursor); + gdk_window_set_cursor(window, reflow->default_cursor); reflow->default_cursor_shown = TRUE; } } @@ -1104,6 +1171,7 @@ e_reflow_event (GnomeCanvasItem *item, GdkEvent *event) static void e_reflow_draw (GnomeCanvasItem *item, GdkDrawable *drawable, gint x, gint y, gint width, gint height) { + GtkStyle *style; gint x_rect, y_rect, width_rect, height_rect; gdouble running_width; EReflow *reflow = E_REFLOW(item); @@ -1123,11 +1191,13 @@ static void e_reflow_draw (GnomeCanvasItem *item, GdkDrawable *drawable, i /= column_width + E_REFLOW_FULL_GUTTER; running_width += i * (column_width + E_REFLOW_FULL_GUTTER); + style = gtk_widget_get_style (GTK_WIDGET (item->canvas)); + for (; i < reflow->column_count; i++) { if (running_width > x + width) break; x_rect = running_width; - gtk_paint_flat_box(GTK_WIDGET(item->canvas)->style, + gtk_paint_flat_box(style, drawable, GTK_STATE_ACTIVE, GTK_SHADOW_NONE, @@ -1141,8 +1211,16 @@ static void e_reflow_draw (GnomeCanvasItem *item, GdkDrawable *drawable, running_width += E_REFLOW_DIVIDER_WIDTH + E_REFLOW_BORDER_WIDTH + column_width + E_REFLOW_BORDER_WIDTH; } if (reflow->column_drag) { - gint start_line = e_reflow_pick_line(reflow, - gtk_layout_get_hadjustment(GTK_LAYOUT(item->canvas))->value); + GtkAdjustment *adjustment; + GtkLayout *layout; + gdouble value; + gint start_line; + + layout = GTK_LAYOUT (item->canvas); + adjustment = gtk_layout_get_hadjustment (layout); + value = gtk_adjustment_get_value (adjustment); + + start_line = e_reflow_pick_line(reflow, value); i = x - start_line * (column_width + E_REFLOW_FULL_GUTTER); running_width = start_line * (column_width + E_REFLOW_FULL_GUTTER); column_width = reflow->temp_column_width; @@ -1162,7 +1240,7 @@ static void e_reflow_draw (GnomeCanvasItem *item, GdkDrawable *drawable, break; x_rect = running_width; gdk_draw_rectangle(drawable, - GTK_WIDGET(item->canvas)->style->fg_gc[GTK_STATE_NORMAL], + style->fg_gc[GTK_STATE_NORMAL], TRUE, x_rect - x, y_rect - y, @@ -1212,12 +1290,19 @@ e_reflow_update (GnomeCanvasItem *item, gdouble affine[6], ArtSVP *clip_path, gi gnome_canvas_request_redraw(item->canvas, x0, y0, x1, y1); reflow->need_height_update = FALSE; } else if (reflow->need_column_resize) { + GtkLayout *layout; + GtkAdjustment *adjustment; gint x_rect, y_rect, width_rect, height_rect; - gint start_line = e_reflow_pick_line(reflow, - gtk_layout_get_hadjustment(GTK_LAYOUT(item->canvas))->value); + gint start_line; gdouble running_width; gint i; gdouble column_width; + gdouble value; + + layout = GTK_LAYOUT (item->canvas); + adjustment = gtk_layout_get_hadjustment (layout); + value = gtk_adjustment_get_value (adjustment); + start_line = e_reflow_pick_line (reflow, value); if (reflow->previous_temp_column_width != -1) { running_width = start_line * (reflow->column_width + E_REFLOW_FULL_GUTTER); @@ -1409,43 +1494,43 @@ e_reflow_class_init (EReflowClass *klass) g_object_class_install_property (object_class, PROP_MINIMUM_WIDTH, g_param_spec_double ("minimum_width", - _( "Minimum width" ), - _( "Minimum Width" ), + "Minimum width", + "Minimum Width", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_WIDTH, g_param_spec_double ("width", - _( "Width" ), - _( "Width" ), + "Width", + "Width", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READABLE)); g_object_class_install_property (object_class, PROP_HEIGHT, g_param_spec_double ("height", - _( "Height" ), - _( "Height" ), + "Height", + "Height", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_EMPTY_MESSAGE, g_param_spec_string ("empty_message", - _( "Empty message" ), - _( "Empty message" ), + "Empty message", + "Empty message", NULL, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_MODEL, g_param_spec_object ("model", - _( "Reflow model" ), - _( "Reflow model" ), + "Reflow model", + "Reflow model", E_REFLOW_MODEL_TYPE, G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_COLUMN_WIDTH, g_param_spec_double ("column_width", - _( "Column width" ), - _( "Column width" ), + "Column width", + "Column width", 0.0, G_MAXDOUBLE, 150.0, G_PARAM_READWRITE)); diff --git a/widgets/text/e-text.c b/widgets/text/e-text.c index f964ae9bb1..92fc67cbfa 100644 --- a/widgets/text/e-text.c +++ b/widgets/text/e-text.c @@ -1439,11 +1439,7 @@ e_text_draw (GnomeCanvasItem *item, GdkDrawable *drawable, widget = gtk_widget_get_parent (widget); while (widget && !GTK_IS_BUTTON(widget)) { -#if GTK_CHECK_VERSION(2,19,7) if (gtk_widget_get_has_window (widget)) { -#else - if (!GTK_WIDGET_NO_WINDOW (widget)) { -#endif widget = NULL; break; } @@ -1498,11 +1494,7 @@ e_text_draw (GnomeCanvasItem *item, GdkDrawable *drawable, thisy += (1 + default_spacing) / 2; } -#if GTK_CHECK_VERSION(2,19,7) if (gtk_widget_has_focus (widget)) { -#else - if (GTK_WIDGET_HAS_FOCUS (widget)) { -#endif thisx += 1; thisy += 1; thiswidth -= 2; @@ -1522,11 +1514,7 @@ e_text_draw (GnomeCanvasItem *item, GdkDrawable *drawable, thisx + xoff, thisy + yoff, thiswidth, thisheight); -#if GTK_CHECK_VERSION(2,19,7) if (gtk_widget_has_focus (widget)) { -#else - if (GTK_WIDGET_HAS_FOCUS (widget)) { -#endif thisx -= 1; thisy -= 1; thiswidth += 2; @@ -3305,241 +3293,239 @@ e_text_class_init (ETextClass *klass) g_object_class_install_property (gobject_class, PROP_MODEL, g_param_spec_object ("model", - _( "Model" ), - _( "Model" ), + "Model", + "Model", E_TYPE_TEXT_MODEL, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_EVENT_PROCESSOR, g_param_spec_object ("event_processor", - _( "Event Processor" ), - _( "Event Processor" ), + "Event Processor", + "Event Processor", E_TEXT_EVENT_PROCESSOR_TYPE, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_TEXT, g_param_spec_string ("text", - _( "Text" ), - _( "Text" ), + "Text", + "Text", NULL, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_BOLD, g_param_spec_boolean ("bold", - _( "Bold" ), - _( "Bold" ), + "Bold", + "Bold", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_STRIKEOUT, g_param_spec_boolean ("strikeout", - _( "Strikeout" ), - _( "Strikeout" ), + "Strikeout", + "Strikeout", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_ANCHOR, g_param_spec_enum ("anchor", - _( "Anchor" ), - _( "Anchor" ), + "Anchor", + "Anchor", GTK_TYPE_ANCHOR_TYPE, GTK_ANCHOR_CENTER, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_JUSTIFICATION, g_param_spec_enum ("justification", - _( "Justification" ), - _( "Justification" ), + "Justification", + "Justification", GTK_TYPE_JUSTIFICATION, GTK_JUSTIFY_LEFT, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_CLIP_WIDTH, g_param_spec_double ("clip_width", - _( "Clip Width" ), - _( "Clip Width" ), + "Clip Width", + "Clip Width", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_CLIP_HEIGHT, g_param_spec_double ("clip_height", - _( "Clip Height" ), - _( "Clip Height" ), + "Clip Height", + "Clip Height", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_CLIP, g_param_spec_boolean ("clip", - _( "Clip" ), - _( "Clip" ), + "Clip", + "Clip", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_FILL_CLIP_RECTANGLE, g_param_spec_boolean ("fill_clip_rectangle", - _( "Fill clip rectangle" ), - _( "Fill clip rectangle" ), + "Fill clip rectangle", + "Fill clip rectangle", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_X_OFFSET, g_param_spec_double ("x_offset", - _( "X Offset" ), - _( "X Offset" ), + "X Offset", + "X Offset", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_Y_OFFSET, g_param_spec_double ("y_offset", - _( "Y Offset" ), - _( "Y Offset" ), + "Y Offset", + "Y Offset", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_FILL_COLOR, g_param_spec_string ("fill_color", - _( "Fill color" ), - _( "Fill color" ), + "Fill color", + "Fill color", NULL, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_FILL_COLOR_GDK, g_param_spec_boxed ("fill_color_gdk", - _( "GDK fill color" ), - _( "GDK fill color" ), + "GDK fill color", + "GDK fill color", GDK_TYPE_COLOR, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_FILL_COLOR_RGBA, g_param_spec_uint ("fill_color_rgba", - _( "GDK fill color" ), - _( "GDK fill color" ), + "GDK fill color", + "GDK fill color", 0, G_MAXUINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_FILL_STIPPLE, g_param_spec_object ("fill_stipple", - _( "Fill stipple" ), - _( "Fill stipple" ), + "Fill stipple", + "Fill stipple", GDK_TYPE_DRAWABLE, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_TEXT_WIDTH, g_param_spec_double ("text_width", - _( "Text width" ), - _( "Text width" ), + "Text width", + "Text width", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READABLE)); g_object_class_install_property (gobject_class, PROP_TEXT_HEIGHT, g_param_spec_double ("text_height", - _( "Text height" ), - _( "Text height" ), + "Text height", + "Text height", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READABLE)); g_object_class_install_property (gobject_class, PROP_EDITABLE, g_param_spec_boolean ("editable", - _( "Editable" ), - _( "Editable" ), + "Editable", + "Editable", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_USE_ELLIPSIS, g_param_spec_boolean ("use_ellipsis", - _( "Use ellipsis" ), - _( "Use ellipsis" ), + "Use ellipsis", + "Use ellipsis", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_ELLIPSIS, g_param_spec_string ("ellipsis", - _( "Ellipsis" ), - _( "Ellipsis" ), + "Ellipsis", + "Ellipsis", NULL, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_LINE_WRAP, g_param_spec_boolean ("line_wrap", - _( "Line wrap" ), - _( "Line wrap" ), + "Line wrap", + "Line wrap", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_BREAK_CHARACTERS, g_param_spec_string ("break_characters", - _( "Break characters" ), - _( "Break characters" ), + "Break characters", + "Break characters", NULL, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_MAX_LINES, g_param_spec_int ("max_lines", - _( "Max lines" ), - _( "Max lines" ), + "Max lines", + "Max lines", 0, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_WIDTH, g_param_spec_double ("width", - _( "Width" ), - _( "Width" ), + "Width", + "Width", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_HEIGHT, g_param_spec_double ("height", - _( "Height" ), - _( "Height" ), + "Height", + "Height", 0.0, G_MAXDOUBLE, 0.0, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_DRAW_BORDERS, g_param_spec_boolean ("draw_borders", - _( "Draw borders" ), - _( "Draw borders" ), + "Draw borders", + "Draw borders", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_ALLOW_NEWLINES, g_param_spec_boolean ("allow_newlines", - _( "Allow newlines" ), - _( "Allow newlines" ), + "Allow newlines", + "Allow newlines", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_DRAW_BACKGROUND, g_param_spec_boolean ("draw_background", - _( "Draw background" ), - _( "Draw background" ), + "Draw background", + "Draw background", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_DRAW_BUTTON, g_param_spec_boolean ("draw_button", - _( "Draw button" ), - _( "Draw button" ), + "Draw button", + "Draw button", FALSE, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_CURSOR_POS, g_param_spec_int ("cursor_pos", - _( "Cursor position" ), - _( "Cursor position" ), + "Cursor position", + "Cursor position", 0, G_MAXINT, 0, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_IM_CONTEXT, g_param_spec_object ("im_context", - /* Translators: Input Method Context */ - _( "IM Context" ), - /* Translators: Input Method Context */ - _( "IM Context" ), + "IM Context", + "IM Context", GTK_TYPE_IM_CONTEXT, G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_HANDLE_POPUP, g_param_spec_boolean ("handle_popup", - _( "Handle Popup" ), - _( "Handle Popup" ), + "Handle Popup", + "Handle Popup", FALSE, G_PARAM_READWRITE)); diff --git a/widgets/text/gal-a11y-e-text.c b/widgets/text/gal-a11y-e-text.c index 6c6724ea6d..e368e7d68b 100644 --- a/widgets/text/gal-a11y-e-text.c +++ b/widgets/text/gal-a11y-e-text.c @@ -533,7 +533,7 @@ et_get_character_extents (AtkText *text, etext = E_TEXT(obj); canvas = GNOME_CANVAS_ITEM(etext)->canvas; widget = GTK_WIDGET(canvas); - window = widget->window; + window = gtk_widget_get_window (widget); gdk_window_get_origin (window, &x_widget, &y_widget); pango_layout_index_to_pos (etext->layout, offset, &pango_pos); @@ -611,7 +611,7 @@ et_get_offset_at_point (AtkText *text, etext = E_TEXT(obj); canvas = GNOME_CANVAS_ITEM(etext)->canvas; widget = GTK_WIDGET(canvas); - window = widget->window; + window = gtk_widget_get_window (widget); gdk_window_get_origin (window, &x_widget, &y_widget); if (coords == ATK_XY_SCREEN) { |