Commit Graph

9 Commits

Author SHA1 Message Date
d8e4ebebc3 Lots of GObject work.
2002-11-16  Chris Toshok  <toshok@ximian.com>

	* gal/e-text/e-completion-test.c: Lots of GObject work.

	* gal/e-text/e-completion-view.[ch]: same.

	* gal/e-text/e-completion.[ch]: same.

	* gal/e-text/e-entry.[ch]: same.

	* gal/e-text/e-table-text-model.[ch]: same.

	* gal/e-text/e-text-model-uri.[ch]: same.

	* gal/e-text/e-text-model.[ch]: same.

	* gal/e-text/e-text-test.c: same.

	* gal/e-text/e-text.[ch]: same.

svn path=/trunk/; revision=18800
2002-11-16 23:49:31 +00:00
613453b109 merging the gal-2 branch back to the trunk.
merging the gal-2 branch back to the trunk.

svn path=/trunk/; revision=18471
2002-10-31 21:30:57 +00:00
dc8927136a Changed the license announcement at the top of these files.
2001-10-26  Christopher James Lahey  <clahey@ximian.com>

	* gal/e-paned/e-hpaned.c, gal/e-paned/e-hpaned.h,
	gal/e-paned/e-paned.c, gal/e-paned/e-paned.h,
	gal/e-paned/e-vpaned.c, gal/e-paned/e-vpaned.h,
	gal/e-text/e-completion-match.c, gal/e-text/e-completion-match.h,
	gal/e-text/e-completion-test.c, gal/e-text/e-completion-view.c,
	gal/e-text/e-completion-view.h, gal/e-text/e-completion.c,
	gal/e-text/e-completion.h, gal/e-text/e-entry-test.c,
	gal/e-text/e-entry.c, gal/e-text/e-entry.h,
	gal/e-text/e-table-text-model.c, gal/e-text/e-table-text-model.h,
	gal/e-text/e-text-model-repos.c, gal/e-text/e-text-model-repos.h,
	gal/e-text/e-text-model-test.c, gal/e-text/e-text-model-uri.c,
	gal/e-text/e-text-model-uri.h, gal/e-text/e-text-model.c,
	gal/e-text/e-text-model.h, gal/e-text/e-text.c,
	gal/e-text/e-text.h, gal/util/e-bit-array.c,
	gal/util/e-bit-array.h, gal/util/e-cache.c, gal/util/e-cache.h,
	gal/util/e-iconv.c, gal/util/e-iconv.h, gal/util/e-sorter-array.c,
	gal/util/e-sorter-array.h, gal/util/e-sorter.c,
	gal/util/e-sorter.h, gal/util/e-text-event-processor-emacs-like.c,
	gal/util/e-text-event-processor-emacs-like.h,
	gal/util/e-text-event-processor-types.h,
	gal/util/e-text-event-processor.c,
	gal/util/e-text-event-processor.h, gal/util/e-util.c,
	gal/util/e-util.h, gal/util/e-xml-utils.c, gal/util/e-xml-utils.h,
	gal/widgets/color-group.c, gal/widgets/color-group.h,
	gal/widgets/color-palette.c, gal/widgets/color-palette.h,
	gal/widgets/e-canvas-utils.c, gal/widgets/e-canvas-utils.h,
	gal/widgets/e-canvas-vbox.c, gal/widgets/e-canvas-vbox.h,
	gal/widgets/e-canvas.c, gal/widgets/e-canvas.h,
	gal/widgets/e-categories-master-list-array.c,
	gal/widgets/e-categories-master-list-array.h,
	gal/widgets/e-categories-master-list-combo.c,
	gal/widgets/e-categories-master-list-combo.h,
	gal/widgets/e-categories-master-list-dialog-model.c,
	gal/widgets/e-categories-master-list-dialog-model.h,
	gal/widgets/e-categories-master-list-dialog.c,
	gal/widgets/e-categories-master-list-dialog.h,
	gal/widgets/e-categories-master-list.c,
	gal/widgets/e-categories-master-list.h,
	gal/widgets/e-categories.c, gal/widgets/e-categories.h,
	gal/widgets/e-colors.c, gal/widgets/e-colors.h,
	gal/widgets/e-cursors.c, gal/widgets/e-cursors.h,
	gal/widgets/e-font.c, gal/widgets/e-font.h,
	gal/widgets/e-gui-utils.c, gal/widgets/e-gui-utils.h,
	gal/widgets/e-hscrollbar.c, gal/widgets/e-hscrollbar.h,
	gal/widgets/e-popup-menu.c, gal/widgets/e-popup-menu.h,
	gal/widgets/e-printable.c, gal/widgets/e-printable.h,
	gal/widgets/e-reflow-model.c, gal/widgets/e-reflow-model.h,
	gal/widgets/e-reflow-sorted.c, gal/widgets/e-reflow-sorted.h,
	gal/widgets/e-reflow.c, gal/widgets/e-reflow.h,
	gal/widgets/e-scroll-frame.c, gal/widgets/e-scroll-frame.h,
	gal/widgets/e-selection-model-array.c,
	gal/widgets/e-selection-model-array.h,
	gal/widgets/e-selection-model-simple.c,
	gal/widgets/e-selection-model-simple.h,
	gal/widgets/e-selection-model.c, gal/widgets/e-selection-model.h,
	gal/widgets/e-unicode.c, gal/widgets/e-unicode.h,
	gal/widgets/e-vscrollbar.c, gal/widgets/e-vscrollbar.h,
	gal/widgets/gtk-combo-box.c, gal/widgets/gtk-combo-box.h,
	gal/widgets/gtk-combo-stack.c, gal/widgets/gtk-combo-stack.h,
	gal/widgets/gtk-combo-text.c, gal/widgets/gtk-combo-text.h,
	gal/widgets/test-color.c, gal/widgets/test-e-font.c,
	gal/widgets/test-e-font.h, gal/widgets/test-font-loading.c,
	gal/widgets/widget-color-combo.c,
	gal/widgets/widget-color-combo.h,
	gal/widgets/widget-pixmap-combo.c,
	gal/widgets/widget-pixmap-combo.h,
	src/e-table/e-table-sorted-variable.c, tests/test-define-views.c,
	tests/test-shortcut-bar.c, tests/test-table-1.c,
	tests/test-tree-1.c, tests/test-tree-2.c, tests/test-tree-3.c,
	tests/test-unicode.c: Changed the license announcement at the top
	of these files.

svn path=/trunk/; revision=14158
2001-10-26 18:33:33 +00:00
7957a3085c Fixed headers. Moved the .h associated with each .c to the top of the list
2001-04-04  Christopher James Lahey  <clahey@ximian.com>

	* gal/e-text/e-text-model-uri.c, gal/e-text/e-text.c,
	gal/e-text/e-text.h, gal/e-text/e-text-event-processor.c,
	gal/util/e-xml-utils.c, gal/widgets/e-cursors.c,
	gal/widgets/e-cursors.h: Fixed headers.  Moved the .h associated
	with each .c to the top of the list of included files.

	* gal/util/e-util.h: Removed the bonobo-xobject.h header here.

	* gal/util/e-xml-utils.c: Replaced strcasecmp with g_strcasecmp.

	* gal/widgets/e-canvas-vbox.c: Make this work even if the item is
	destroyed after the vbox.

	* gal/widgets/e-categories.c (do_parse_categories): Made this
	translate using e_utf8_from_locale string as it should.

svn path=/trunk/; revision=9175
2001-04-04 12:25:55 +00:00
8940bcc90c Fix headers. Ditto. Ditto. Ditto. Ditto. Ditto. Ditto. Same. Ditto. Same
2001-04-04  Kjartan Maraas  <kmaraas@gnome.org>

	* gal/e-text/e-entry.c: Fix headers.
	* gal/e-text/e-table-text-model.[ch]: Ditto.
	* gal/e-text/e-table-text-model-uri.c: Ditto.
	* gal/e-text/e-text-model-uri.[ch]: Ditto.
	* gal/e-text/e-text-model.[ch]: Ditto.
	* gal/e-text/e-text.[ch]: Ditto.
	* gal/util/e-text-event-processor-emacs-like.[ch]: Ditto.
	* gal/util/e-text-event-processor.[ch]: Same.
	* gal/util/e-util.h: Ditto.
	* gal/util/e-xml-utils.[ch]: Same here.
	* gal/widgets/color-group.[ch]: Ditto.
	* gal/widgets/color-palette.[ch]: Ditto.
	* gal/widgets/e-canvas-utils.h: Ditto.
	* gal/widgets/e-canvas-vbox.[ch]: Ditto.
	* gal/widgets/e-canvas.[ch]: Ditto.
	* gal/widgets/e-categories.h: Ditto.
	* gal/widgets/e-colors.[ch]: Ditto.
	* gal/widgets/e-cursors.c: Ditto.
	* gal/widgets/e-gui-utils.c: Ditto
	* gal/widgets/e-popup-menu.[ch]: Same.
	* gal/widgets/e-reflow-sorted.c: Same.
	* gal/widgets/e-reflow.[ch]: Same.
	* gal/widgets/e-selection-model.c: Same
	* gal/widgets/e-unicode.[ch]: Same.
	* gal/widgets/gtk-combo-stack.[ch]: Same.
	* gal/widgets/widget-color-combo.[ch]: Same.
	* gal/widgets/widget-pixmap-combo.[ch]: Same.

svn path=/trunk/; revision=9168
2001-04-04 07:33:09 +00:00
0e3e3e9914 Added. Allows you to attach an ECompletion to an EEntry, and have that
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-19 22:47:23 +00:00
2dee35819c Reverted the latest change to EText since we're in feature freeze.
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 11:54:53 +00:00
b0046a3699 Connect to the model's "position" signal. (e_text_init): Set default value
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 20:27:38 +00:00
8c1c827496 Added; a new test program that demonstrates objects in ETexts.
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-26 22:10:51 +00:00