2001-02-19 Christopher James Lahey <clahey@ximian.com>
* configure.in: Changed the version number to 0.5.99.1.
* gal/Makefile.am (libgal_la_LIBADD): Change the directories for
e-table-text-model.lo, e-text-event-processor.lo, and
e-text-event-processor-emacs-like.lo. Reordered the e-text
directory to be after the e-table directory in build order.
* gal/e-text/Makefile.am: Removed
e-text-event-processor-emacs-like.c,
e-text-event-processor-emacs-like.h,
e-text-event-processor-types.h, e-text-event-processor.c, and
e-text-event-processor.h. Added e-table-text-model.c and
e-table-text-model.h.
* gal/e-text/e-table-text-model.c: Changed the signature of these
mehtods to match the changed signature in ETextModel.
* gal/e-text/e-text-event-processor-emacs-like.c,
gal/e-text/e-text-event-processor-emacs-like.h,
gal/e-text/e-text-event-processor-types.h,
gal/e-text/e-text-event-processor.c,
gal/e-text/e-text-event-processor.h: Moved these to gal/util/.
* gal/e-text/e-text.c, gal/e-text/e-text.h: Changed the includes
to match the moved files.
* gal/util/Makefile.am: Added e-text-event-processor-emacs-like.c,
e-text-event-processor-emacs-like.h,
e-text-event-processor-types.h, e-text-event-processor.c, and
e-text-event-processor.h.
* gal/util/e-text-event-processor-emacs-like.h,
gal/util/e-text-event-processor.h: Changed the includes to match
the moved files.
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.
svn path=/trunk/; revision=8298
2001-02-19 Jon Trowbridge <trow@ximian.com>
* gal/e-text/e-entry.c (e_entry_enable_completion_full): Added.
Allows you to attach an ECompletion to an EEntry, and have that
ECompletion be used for (obviously enough) completions.
* gal/e-text/e-completion-view.h, gal/e-text/e-completion-view.c:
Added. ECompletionView is a widget for displaying the results of
a completion request in a format that is appropriate for a
drop-down window.
* gal/e-text/e-completion.h, gal/e-text/e-completion.c: Added.
ECompletion is a "pure virtual base class" for completion-type
operations. It is implemented so that completions can be either
synchronous or asynchronous.
* gal/e-text/e-text.c: Lots of changes to accomodate the
ETextModel changes. First of all, we render embedded text objects
as being underlined. We also cause the model to emit the
appropriate object activation signal when an embedded object is
double-clicked. Also, all of the code that moves the cursor in
response to user input has been removed. Instead, the EText now
listens for "reposition" events from the underlying model, and
bases all cursor motions on those.
(get_bounds_item_relative): Fixed bug in the handling of
differently-anchored text. Being differently-anchored is not a
crime or a perversion --- it is an alternative lifestyle that we
have to respect.
* gal/e-text/e-text-model-uri.h, gal/e-text/e-text-model-uri.c: A
sample ETextModel that converts URIs into embedded objects that
get opened in the browser when you double-click them.
* gal/e-text/e-text-model-repos.h,
gal/e-text/e-text-model-repos.c: Added. A group of simple
structures & functions for handling various cursor movement rules.
These are the sorts of things that are passed as arguments to
ETextModel "reposition" event handlers.
* gal/e-text/e-text-model.h, gal/e-text/e-text-model.c: Privitized
the ETextModel struct and "methodized" all of the operations, so
that derived classes can do arbitrarily respond to get/set
requests in arbitrarily strange ways. Also added the concept of
declaring regions of the text as "embedded text objects".
Finally, caused operations that change the text to emit a
"reposition" signal that passes information that can be used by a
view (like an EText) to move the cursor or selection in an
intelligent way in response to those changes. This means that you
can now open two ETexts that look at the same ETextModel, and have
the cursor in one do the right thing when you edit the other. (As
opposed to producing a lot of potential segfaults, as it was
before.)
svn path=/trunk/; revision=8280
2001-02-07 Christopher James Lahey <clahey@ximian.com>
* gal/e-text/e-text.c, gal/e-text/e-text.h (e_text_realize): Store
the whole GdkColor instead of just the pixel.
svn path=/trunk/; revision=8063
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-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-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-18 Christopher James Lahey <clahey@helixcode.com>
* gal/e-text/e-text.c (_do_tooltip): Make tooltip appear properly
even if anchor is set.
svn path=/trunk/; revision=7620
2001-01-16 Jason Leach <jasonleach@usa.net>
* gal/e-text/e-text.c (e_text_set_arg): Emit a "changed" signal to
the EText after we gtk_object_set a "model" arg and fill the EText
with text from the model, which obviously changes the text.
svn path=/trunk/; revision=7530
2000-12-26 Christopher James Lahey <clahey@helixcode.com>
* gal/e-text/e-entry.c: Added a "draw_background" argument. Set
the default for the "draw_background" argument to the contained
EText to TRUE.
* gal/e-text/e-text.c: Changed the default for the
"draw_background" argument to FALSE.
svn path=/trunk/; revision=7176
2000-12-25 Miguel de Icaza <miguel@helixcode.com>
* gal/e-text/e-text.c (e_text_init): Always have some text. Fixes crash.
svn path=/trunk/; revision=7171
2000-12-25 Miguel de Icaza <miguel@helixcode.com>
* gal/e-text/e-text.c (e_text_draw): Made the code CanvasItem
correct: the code should not draw at arbitrary positions in the
GdkWindow, it should instead draw from item->x1, item->y1 to
item->y1, item->y2 (Chris, we need to talk about this, I think my
current fix is passable, but might not be fully correct.
Specially the interpretation of the width, height arguments).
(e_text_class_init): Fix name.
(e_text_set_arg): Use correct name.
svn path=/trunk/; revision=7163
2000-12-13 Christopher James Lahey <clahey@helixcode.com>
* gal/e-text/e-text.c (_do_tooltip): Changed the color from yellow
to light gray.
* gal/widgets/e-canvas-vbox.c (e_canvas_vbox_event): Made it so
that e-canvas-vbox doesn't eat all the keyboard events. This
means widget navigation keys work properly.
svn path=/trunk/; revision=6989
2000-10-07 Damon Chaplin <damon@helixcode.com>
* gal/e-text/e-text.c (e_text_unrealize): set cursors to NULL after
destroying them, to avoid any possibility of BadCursor.
(e_text_event): just return if the EText item is destroyed.
svn path=/trunk/; revision=5780
2000-08-02 Christopher James Lahey <clahey@helixcode.com>
* widgets/e-text/e-text.c: Made clicking choose the right
character even if show_borders is on.
svn path=/trunk/; revision=4492
2000-07-21 Christopher James Lahey <clahey@helixcode.com>
* widgets/e-text/e-text.c: Made focus in not change your selection
position.
svn path=/trunk/; revision=4268
2000-07-09 Christopher James Lahey <clahey@helixcode.com>
* widgets/e-text/e-text.c: Don't draw quite as large a "flat_box".
If draw_borders is TRUE, cause the cursor to change even if not
editing.
svn path=/trunk/; revision=4017
2000-07-09 Christopher James Lahey <clahey@helixcode.com>
* widgets/e-text/e-entry.c: Removed some border padding and set
the "draw_borders" argument of the contained GtkText.
* widgets/e-text/e-text.c, widget/e-text/e-text.h: Added a
"draw_borders" argument which, if set, makes the EText look more
like a GtkEntry.
svn path=/trunk/; revision=4011
2000-07-07 Christopher James Lahey <clahey@helixcode.com>
* widgets/e-text/e-entry.c: Set "anchor" and "fill_clip_rectangle"
arguments.
* widgets/e-text/e-text.c, widgets/e-text/e-text.h: Added
"fill_clip_rectangle" argument which describes whether to accept
clicks throughout the clipping rectangle.
svn path=/trunk/; revision=3956
2000-07-03 Christopher James Lahey <clahey@helixcode.com>
* widgets/e-text/Makefile.am: Added e-entry.c and e-entry.h.
* widgets/e-text/e-entry.c, widgets/e-text/e-entry.h: New files to
be a widget containing a text item.
* widgets/e-text/e-text.c: Fixed some spacing.
svn path=/trunk/; revision=3874
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* widgets/e-text/e-text.c: Calculate height including if
clip_height is set to -1.
From addressbook/ChangeLog:
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* contact-editor/e-contact-editor-categories.c,
addressbook/gui/component/e-cardlist-model.c: Added
value_to_string handlers.
* demo/addressbook-widget.c, demo/demo.c: Removed usage of "x" and
"y" arguments.
* addressbook/gui/component/addressbook.c: Activated Click To Add
and set the click to add message.
* addressbook/gui/component/e-addressbook-model.c: Added
value_to_string and append_row handlers.
* addressbook/gui/component/e-select-names.c: Added a column.
From calendar/ChangeLog:
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* gui/calendar-model.c: Added an #ifdefed value_to_string handler
assignment.
From camel/ChangeLog:
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* providers/mbox/camel-mbox-summary.c: Added debugging
information.
From composer/ChangeLog:
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added e-msg-composer-select-file.h for make
distcheck.
From e-util/ChangeLog:
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added e-canvas-vbox.c and e-canvas-vbox.h.
* e-canvas-vbox.c, e-canvas-vbox.h: New canvas object to act like
a vbox using the reflow system.
From mail/ChangeLog:
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* message-list.c: Added a value_to_string handler.
From shell/ChangeLog:
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* glade/Makefile.am: Added EXTRA_DIST for make distcheck.
From widgets/e-table/ChangeLog:
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.
From widgets/meeting-time-sel/ChangeLog:
2000-06-26 Christopher James Lahey <clahey@helixcode.com>
* Makefile.am: Added the include path to top_srcdir.
svn path=/trunk/; revision=3744
2000-06-21 Christopher James Lahey <clahey@helixcode.com>
* widgets/e-text/e-text.c: Fix a bug with intial vertical scroll.
svn path=/trunk/; revision=3672
2000-06-21 Christopher James Lahey <clahey@helixcode.com>
* notes/e-note.c, widgets/meeting-time-sel/e-meeting-time-sel.c,
widgets/shortcut-bar/e-icon-bar.c: Removed the usage of "x" and
"y" arguments to EText.
* widgets/e-text/e-text.c, widgets/e-text/e-text.h: Removed the
"x" and "y" arguments to EText. Added vertical scrolling.
svn path=/trunk/; revision=3670
2000-06-17 Christopher James Lahey <clahey@helixcode.com>
* widgets/e-text/e-text.c: Made EText use the font from the
canvas's style if one isn't set.
svn path=/trunk/; revision=3607
2000-05-09 Christopher James Lahey <clahey@helixcode.com>
* widgets/e-text/e-text.c: Remove the tooltip callback when
destroyed.
svn path=/trunk/; revision=2952
2000-05-08 Christopher James Lahey <clahey@helixcode.com>
* widget/e-text/e-text.c, widgets/e-text/e-text.h: Added an
activate signal.
svn path=/trunk/; revision=2890
2000-05-06 Christopher James Lahey <clahey@helixcode.com>
* widgets/e-text/e-text.c, widgets/e-text/e-text.h: Added a
"changed" signal that gets sent whenever the text changes.
svn path=/trunk/; revision=2837
+ text->timeout on destroy.
+
+ * e-shell-view.c (bonobo_widget_is_dead): Helper function to see
+ whether a bonobo widget is a zombie (ie the remote bonobo control
+ died).
+ (e_shell_view_set_view): Try to respawn dead bonobo widgets.
svn path=/trunk/; revision=2638
2000-04-24 Christopher James Lahey <clahey@helixcode.com>
* widgets/e-text/e-text.c: Made the tooltip show up in the correct
place and configuration when using the "max_lines", "anchor"
(untested), or "justification" arguments.
From a patch by Iain Holmes <ih@csd.abdn.ac.uk>
* widgets/e-text/e-text-event-processor-emacs-like.c,
widget/e-text/e-text-event-processor-types.h,
widgets/e-text/e-text.c, widgets/e-text/e-text.h: Changed C-w and
C-y to control the X clipboard. Added double and triple click
events.
From widgets/e-table/:
2000-04-24 Christopher James Lahey <clahey@helixcode.com>
* e-table.c: Fixed some warnings.
svn path=/trunk/; revision=2581
2000-04-11 Christopher James Lahey <clahey@helixcode.com>
* widgets/e-text/e-text.c: Moved some logic a bit. Minor changes.
svn path=/trunk/; revision=2396
forward clicks on the tooltip to the pareent item
tooltip obeys parents line_wrap and max_lines
e_text_point returns 0 when pointer is on the item
svn path=/trunk/; revision=2394
2000-04-08 Christopher James Lahey <clahey@helixcode.com>
* art/Makefile.am: pixmap_DATA isn't defined so don't use it as a variable.
* addressbook/gui/component/,
addressbook/gui/component/.cvsignore, addressbook/gui/Makefile.am,
addressbook/gui/component/addressbook-factory.c,
addressbook/gui/component/addressbook.c,
addressbook/gui/component/addressbook.gnorba,
addressbook/gui/component/addressbook.h: New directory to proivde
the component for contact management. Simply uses an e-minicard-view.
* addressbook/gui/minicard/e-minicard-view.c,
addressbook/gui/minicard/e-minicard-view.h: New subclass of
e-reflow-sorted that takes an EBook and uses it to compute the
card data to display.
* addressbook/gui/minicard/e-minicard.c,
addressbook/gui/minicard/e-minicard.h: This now backends to a
ECard instead of a ETableModel.
* addressbook/gui/minicard/e-reflow.c,
addressbook/gui/minicard/e-reflow.h: This now has a virtualized
add method.
* addressbook/gui/minicard/e-reflow-sorted.c,
addressbook/gui/minicard/e-reflow-sorted.h: New subclass of
e-reflow that allows the data to be sorted on the fly.
* addressbook/gui/minicard/test-minicard-view.c: New test to test
the new minicard view.
* addressbook/gui/minicard/test-reflow.c: Uses the new ECard
backend of the e-minicard.
* addressbook/gui/minicard/.cvsignore,
addressbook/gui/minicard/Makefile.am: Added new test. Fixed
dependencies. Added new files.
* addressbook/gui/, addressbook/gui/Makefile.am,
addressbook/gui/.cvsignore: New directory for addressbook gui
bits. Added subdirectories. Created an initial .cvsignore.
* addressbook/Makefile.am (SUBDIRS): Removed demo and added gui.
* addressbook/backend/pas/pas-backend-file.c: Added code to do
notification on bookviews when changes in the backend are made.
* addressbook/backend/pas/pas-book-view.c,
addressbook/backend/pas/pas-book-view.h: Added helper functions to
notify the view about the addition or modification of a single
card. Fixed a mistaken extra free.
* addressbook/backend/ebook/e-card-list-iterator.h: Fixed
incorrect parent class.
* addressbook/backend/ebook/test-client.c: Made this accept an
optional parameter that specifies the vcard to add.
* configure.in: Replaced widgets/e-minicard/Makefile and
addressbook/demo/Makefile with addressbook/gui/minicard/Makefile
and addressbook/gui/component/Makefile respectively.
* widgets/Makefile.am: Removed e-minicard since it's being moved
to addressbook/gui/minicard.
* widgets/e-text/e-text.c: Fixed the border width around tooltips
and made the main tooltip area yellow.
From camel/ChangeLog:
2000-04-08 Christopher James Lahey <clahey@helixcode.com>
* providers/smtp/.cvsignore: Added a .cvsignore file.
From calendar/ChangeLog:
2000-04-08 Christopher James Lahey <clahey@helixcode.com>
* gui/Makefile.am: Removed linking with libetable and libeminicard
since they weren't being used.
svn path=/trunk/; revision=2343
2000-04-07 Christopher James Lahey <clahey@helixcode.com>
* widgets/e-text/e-text.c: Made text tooltips appear in place.
Iain figured out that to get them to not appear, we hide the
tooltip when the mouse leaves the tooltip window, not the canvas
item (this works because the tooltip window always covers the
canvas item completely.)
svn path=/trunk/; revision=2328
2000-04-04 Christopher James Lahey <clahey@helixcode.com>
* widgets/e-text/e-text.c: Removed an unnecessary get_bounds call.
(From a patch by Iain Holmes <ih@csd.abdn.ac.uk>)
* widgets/e-text/e-text.c: Made tooltips look more like the
underlying text. Made tooltips show up more consistently.
svn path=/trunk/; revision=2290