2001-02-05 Christopher James Lahey <clahey@ximian.com>
* gal/e-text/e-entry.h: Changed draw_borders from a gboolean to a
a guint : 1.
svn path=/trunk/; revision=7990
2001-02-05 Christopher James Lahey <clahey@ximian.com>
* gal-define-views-model.h: Removed unnecessary comment about now
non-existant virtual column list.
svn path=/trunk/; revision=7989
2001-02-05 Christopher James Lahey <clahey@helixcode.com>
* e-table-header-item.c: Changed the text to pop up the Field
Chooser.
svn path=/trunk/; revision=7988
2001-02-05 Christopher James Lahey <clahey@helixcode.com>
* gal-view-collection.c: Fixed a number of small bugs in how we
were saving and loading view collections.
* gal-view-etable.c (config_changed): Send the changed signal
properly.
(gal_view_etable_construct): Duplicate the spec's state here.
svn path=/trunk/; revision=7986
2001-02-05 Christopher James Lahey <clahey@helixcode.com>
* gal/widgets/e-font.c (e_font_to_native), gal/widgets/e-unicode.c
(e_utf8_from_gtk_string_sized, e_utf8_to_gtk_string_sized):
Changed the call to iconv to be char ** instead of const char **.
svn path=/trunk/; revision=7970
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.
svn path=/trunk/; revision=7960
2001-02-02 Not Zed <NotZed@Ximian.com>
* e-table-selection-model.c (model_row_deleted): Dont overwrite
the end of our bitmap array.
svn path=/trunk/; revision=7944
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.
svn path=/trunk/; revision=7927
2001-01-31 Radek Doulik <rodo@ximian.com>
* gal/e-text/e-entry.h: added gboolean draw_borders to make it
compile, probably some forgotten commit of e-entry.h
svn path=/trunk/; revision=7926
2001-01-30 Christopher James Lahey <clahey@ximian.com>
* gal/e-text/e-entry.c (canvas_size_allocate, et_set_arg): Fixed
allocation and placement of text for no bordered text.
svn path=/trunk/; revision=7922
2001-01-30 Christopher James Lahey <clahey@ximian.com>
* gal/e-text/e-entry.c (canvas_size_allocate, et_set_arg): Fixed
allocation and placement of text window.
* gal/e-text/e-text.c (e_text_draw): Fixed display of the text.
svn path=/trunk/; revision=7920
2001-01-30 Christopher James Lahey <clahey@helixcode.com>
* Reverted the latest change to EText since we're in feature freeze.
svn path=/trunk/; revision=7912
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.
svn path=/trunk/; revision=7910
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.
svn path=/trunk/; revision=7909
2001-01-29 Jon Trowbridge <trow@gnu.org>
* gal/e-text/e-text.c (e_text_init): Connect to the model's
"position" signal.
(e_text_init): Set default value for rgba_object as blue.
(e_text_destroy): Disconnect model position signal.
(fix_selection): Some extra sanity checking to keep the selection
from spilling outside of the bounds of the text string as it
expands or contracts. Should be obsolete due to the changes to
objectify_uris --- but I'll leave this in here for now, in an
attempt to avoid non-\0-terminated strings, segfaults, and all of
that fun stuff.
(e_text_text_model_position): Move our cursor according to the
suggestions made by our ETextModel, via the "position" signal.
(text_width_with_objects): Check that text is not NULL.
(text_draw_with_objects): Accept an extra GdkGC for use in drawing
objects.
(e_text_set_arg): Properly handle the "position" signal when
changing models.
(e_text_draw): Initialize the GC for drawing objects, if
necessary.
(_insert): Comment out the code that adjustes text->selection_*.
The cursor is now moved by the ETextModel directly via the
position signal, not by the view.
* gal/e-text/e-text-model-uri.c (objectify_uris): Add more
sophisticated uri recognition via regular expressions.
(objectify_uris): Changed to track position changes as model->text
expands and contracts along with the objects. Block the
objectification of any chunks of text that straddle our current
position.
(e_text_model_uri_set_text): Added position info to objectify_uris
call.
(e_text_model_uri_insert): Added position info to objectify_uris
call.
(e_text_model_uri_insert_length): Added position info to
objectify_uris call.
(e_text_model_uri_delete): Added position info to objectify_uris
call.
* gal/e-text/e-text-model.c (e_text_model_class_init): Added a
"position" signal that allows the ETextModel to send cursor
positioning information back to any view. We need this for text
with objects, where the text string can grow and shrink in ways
that the view doesn't expect.
(e_text_model_real_insert): Added sanity checking of args and a
position emission.
(e_text_model_real_insert_length): Added sanity checking of args
and a position emission.
(e_text_model_real_delete): Added sanity checking of args.
(e_text_model_suggest_position): A wrapper around the "position"
signal emitter.
svn path=/trunk/; revision=7894
2001-01-29 Christopher James Lahey <clahey@ximian.com>
* gal/Makefile.am (libgal_la_LIBADD): Added e-cell-number.lo
From gal/e-table/Changelog:
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.
svn path=/trunk/; revision=7889
2001-01-29 Not Zed <NotZed@Ximian.com>
* gal/widgets/e-unicode.c (e_utf8_xml1_decode): Always include +1
for the size. 0*2 == 0, so malloc returns NULL, which is not what
we want.
svn path=/trunk/; revision=7885
button as the option menu, and adding the right amount of empty space
on the right, to match the size of a scrollbar. (The latter is just a
dirty ugly bad hack, but it's fine for now.)
svn path=/trunk/; revision=7876
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.
svn path=/trunk/; revision=7875
bar (i.e. the menu is popped up on button_press instead of
button_release). Now it is also based on GtkToggleButton, so it stays
pushed down when the menu is on the screen.
svn path=/trunk/; revision=7869
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.
svn path=/trunk/; revision=7864
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.
svn path=/trunk/; revision=7857
2001-01-27 Christopher James Lahey <clahey@helixcode.com>
* e-table-item.c (eti_event): Make ETable stop editing when it
looses focus.
* e-table.c (et_canvas_button_press): Make ETable stop editing if
you click on an unhandled area of the table canvas (The white area
at the bottom for instance.)
svn path=/trunk/; revision=7849
2001-01-26 Jon Trowbridge <trow@gnu.org>
* gal/e-text/e-text-model-test.c: Added; a new test program that
demonstrates objects in ETexts.
* gal/e-text/e-text-model-uri.c: Added; a text model that converts
URIs in the text into objects that are passed off to the GNOME URI
handler when activated. This is actually still extremely broken;
I got it just working enough to test out my EText changes.
* gal/e-text/e-text.c: A whole lot of changes, designed to make
ETextModel objects render properly. The basic idea of the changes
is pretty simple, though.
(text_width_with_objects): First of all, this function is an
alternative to e_font_utf8_text_width that takes into the account
the embedded \1s in the text string and properly accounts for the
width of the object strings.
(unicode_strlen_with_objects): Next, this function finds the
proper strlen of a string, expanding the \1s.
(text_draw_with_objects): Finally, this is just a replacement for
e_font_draw_utf8_text that does the right thing for objects. I've
gone through all of e-text.c and replace calls by those original
functions with my new object-enabled alternatives.
(split_into_lines): Some tweaking to get line breaking to work
properly. Made \1 into a "break character", so that we can break
lines between multiple adjacent objects. (Which seemed like the
right thing to do, but there may be cases where that is
undesireable.)
(_get_position_from_xy): Fixed to properly handle embedded
objects, and to get the right selection semantics for objects.
(Or at least semantics that feel right to me.) Also fixed a bug
that caused selection, etc. to not work properly if the text was
anchored anywhere other than with GTK_ANCHOR_NORTH*.
(_get_position): Hacked to cause objects to activate when they are
double-clicked. There is probably a better way to do this.
* gal/e-text/e-text-model.c (e_text_model_real_object_count):
Provide a default implementation of an object counter. Derived
classes might want to override this for efficiency reasons.
(e_text_model_strdup_expanded_text): Added. Allocates and returns
a string contains the model's text with the objects "expanded"
within.
* gal/e-text/e-text-model.h: Added obj_count, get_nth_obj, and
activate_nth_obj virtual methods to ETextModelClass.
svn path=/trunk/; revision=7842
2001-01-25 Federico Mena Quintero <federico@ximian.com>
* e-table.c (e_table_init): Set the GTK_CAN_FOCUS flag on the
widget, since an ETable ought to be focusable.
(e_table_class_init): Override ::grab_focus() and ::focus().
(et_grab_focus): Since people may do gtk_widget_grab_focus() on
the ETable, we have to proxy the request to the actual focusable
canvas.
(e_table_setup_header): Unset GTK_CAN_FOCUS for the header canvas.
(et_focus): Reject focus if our child canvas already had it.
* e-table-scrolled.c (e_table_scrolled_init): Set the
GTK_FOCUS_FLAG on the widget. This is just so that people can
easily do gtk_widget_grab_focus (my_e_table_scrolled) on their own
applications.
(e_table_scrolled_class_init): Override ::grab_focus() and
::focus().
(ets_grab_focus): Proxy the grab_focus to our child ETable.
(ets_focus): Proxy the request to the child ETable.
svn path=/trunk/; revision=7830
2001-01-25 Christopher James Lahey <clahey@helixcode.com>
* gal/widgets/e-canvas-utils.c (e_canvas_item_show_area): Clamp
the value we set here.
(compute_offset): Switched to ints here.
svn path=/trunk/; revision=7825
2001-01-25 Christopher James Lahey <clahey@helixcode.com>
* gal/widgets/e-canvas-utils.c (e_canvas_item_show_area): Made
this function put some space around the area shown.
svn path=/trunk/; revision=7820
2001-01-25 Christopher James Lahey <clahey@helixcode.com>
* e-table-selection-model.c (move_selection): Made this correctly
check for going off the end of the table.
svn path=/trunk/; revision=7817
2001-01-25 Christopher James Lahey <clahey@helixcode.com>
* menus/gal-view-menus.c: Make this actually deploy the titles
from the GalViewCollection and emit the display_view signals and
such.
svn path=/trunk/; revision=7809
2001-01-25 Christopher James Lahey <clahey@helixcode.com>
* e-table-group-container.c, e-table-group-leaf.c,
e-table-group.c, e-table-group.h, e-table-item.c, e-table-item.h:
Documented. Added a "cursor_activated" signal. Removed some
unused functions (e_table_group_get_count and
e_table_group_get_ecol).
* e-table-selection-model.c, e-table-selection-model.h: Added a
"cursor_activated" signal. Call it when the user changes the
selection to match the cursor.
* e-table.c, e-table.h: Added a "cursor_activated" signal. Fixed
the e_table_compute_location function to take into account the
scrolled position.
svn path=/trunk/; revision=7808
2001-01-25 Damon Chaplin <damon@ximian.com>
* e-calendar-item.[hc]: e_calendar_item_get_date_range() now returns
a boolean, which is FALSE if no dates are currently shown.
Plus a couple of minor sanity checks.
svn path=/trunk/; revision=7799
2001-01-24 Christopher James Lahey <clahey@helixcode.com>
* gal-define-views-dialog.c (gal_define_views_dialog_class_init):
Have the argument system do type checking on our "collection"
argument. Refactored the setting of the "collection" argument
into a set_argument function.
* gal-define-views-model.c (gal_define_views_model_class_init):
Have the argument system do type checking on our "collection"
argument.
svn path=/trunk/; revision=7783
2001-01-24 Christopher James Lahey <clahey@helixcode.com>
* gal-view-collection.c (gal_view_collection_get_view_item):
Actually implement this function.
svn path=/trunk/; revision=7774
2001-01-23 Christopher James Lahey <clahey@helixcode.com>
* gal-view-collection.c, gal-view-collection.h: Made
GalViewCollectionItem a public type.
(load_single_file): Made it so that the filename does not get
saved with the directory structure.
(gal_view_collection_get_view_item): Added this function to return
a certain GalViewCollectionItem.
svn path=/trunk/; revision=7773
2001-01-22 Jon Trowbridge <trow@gnu.org>
* menus/gal-view-menus.c (define_views): Fixed
gal_define_views_dialog_new to be called with its proper argument.
svn path=/trunk/; revision=7707
2001-01-22 Christopher James Lahey <clahey@helixcode.com>
* gal-define-views-dialog.c, gal-define-views-dialog.h
(gal_define_views_dialog_init): Initialize collection field to
NULL. Set the collection on the model as soon as we create it.
(gal_define_views_dialog_new): Add a GalViewCollection argument to
this function. This just makes this dialog a bit easier to use
through the API.
(gal_define_views_dialog_set_arg): When we set the collection, set
it on the dialog->model.
* gal-define-views-model.c, gal-define-views-model.h: Rewrote this
object to use a GalViewCollection to store the information instead
of an array of GalViews.
* gal-view-collection.c, gal-view-collection.h: Added
gal_view_collection_get_count, gal_view_collection_get_view,
gal_view_collection_append, gal_view_collection_delete_view, and
gal_view_collection_copy_view.
(view_changed, load_single_file): Connect to the "changed" signal
on the views.
(load_single_dir): Survive loading if there's no xml file.
* gal-view-etable.c: Implemented get_type_code method.
* gal-view-factory-etable.c: Implemented get_type_code method.
* gal-view.c, gal-view.h: Added gal_view_get_type_code and
"changed" signal.
svn path=/trunk/; revision=7699
2001-01-21 Christopher James Lahey <clahey@helixcode.com>
* e-table-selection-model.c: Made the cursor move when rows are
inserted or deleted. If in single mode and the selected row gets
removed, move it up.
svn path=/trunk/; revision=7691
2001-01-21 Christopher James Lahey <clahey@helixcode.com>
* gal-define-views-model.c (gdvm_set_value_at): Use the new
gal_view_set_title function.
* gal-view-collection.c, gal-view-collection.h: Implemented this.
Added gal_view_collection_save and gal_view_collection_load.
* gal-view-etable.c: Implemented save, load, and set_title methods
for this class.
* gal-view-factory.c: Implemented gal_view_factory_get_type_code.
* gal-view.c, gal-view.h: Replaced gal_view_save_to_node with
gal_view_save. Replaced gal_view_load_from_node with
gal_view_load. Added gal_view_set_title.
svn path=/trunk/; revision=7676
2001-01-21 Christopher James Lahey <clahey@helixcode.com>
* e-table-header-item.c (ethi_header_context_menu): Made this
conform to the new prototype for e_popup_menu_run.
* e-table-item.c, e-table-item.h: Documented.
(e_table_item_is_row_selected): Removed this function.
(eti_draw): Changed this so that if the ETableItem is in
cursor-mode="row", the cursor is draw all the way across the row.
(eti_cursor_move_up, eti_cursor_move_down): Commented these out
since they're no longer used.
(_do_tooltip, eti_event): Commented out tooltips.
(eti_event): Made it so that we call the key_press function in the
%ETableSelectionModel on each key press.
* e-table-selection-model.c, e-table-selection-model.h:
Documented. Added a function e_table_selection_model_key_press
that does whatever behavior is correct for the user having pressed
the given key. Changed the behavior of this to better match
windows (use selection-mode="browse").
* e-table-specification.c, e-table-specification.h: Added a
draw_focus variable.
* e-table.c: Decide whether to draw the focus based on the
ETableSpecification. Removed the argument for setting whether to
draw the focus.
svn path=/trunk/; revision=7673