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.
svn path=/trunk/; revision=8544
2001-03-01 Jon Trowbridge <trow@ximian.com>
* configure.in: Boost version number to 0.5.99.3.
* gal/e-text/e-entry.c (e_entry_show_popup): Grab pointer when the
popup is visible, and then hide the popup if any button press
events occur outside of the popup. This lets up avoid most of the
worst "floating popup" cases that would occur if windows are
moved, desktops changed, etc. with the mouse. (Doing things like
changing desktop w/ keybindings can still cause a "floating
popup", but that is also true of Gtk's own combo box.) Change
popup positioning to slightly offset it from the entry, rather
than just plopping it down directly below.
(button_press_cb): Determine if a button press occured outside of
the popup when the pointer was grabbed, and unbrowse accordingly.
* gal/e-text/e-completion-view.c
(e_completion_view_key_press_handler): Improve keystroke handling.
Allow Tabs to pass through (after hiding the pop-up) in order to
allow focus change requests to work properly.
(e_completion_view_construct): Disable horizontal scrollbars.
* gal/e-text/e-completion-test.c (main): Reworked to use signals
instead of explicit callbacks.
* gal/e-text/e-completion.h:
* gal/e-text/e-completion.c: Fix the awkward mix of signals and
explicitly-specified callbacks by taking out the explicit
callbacks. This approach is more gtk-ish, after all.
svn path=/trunk/; revision=8458
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.
svn path=/trunk/; revision=8453
* gal/widgets/e-selection-model-simple.c,
gal/widgets/e-selection-model-simple.h: New class implementing a
simple selection model that you add rows to and remove rows from.
svn path=/trunk/; revision=8443
2001-03-01 Christopher James Lahey <clahey@ximian.com>
* gal/Makefile.am (libgal_la_LIBADD): Added
e-selection-model-simple.lo.
* gal/widgets/Makefile.am (libwidgets_la_SOURCES): Added e-selection-model-simple.c.
(libwidgetsinclude_HEADERS): Added e-selection-model-simple.h.
* gal/widgets/e-reflow-sorted.c, gal/widgets/e-reflow-sorted.h:
Added a gint *position argument to e_reflow_sorted_remove_item and
e_reflow_sorted_get_item and two gint * arguments to
e_reflow_sorted_replace_item and e_reflow_sorted_reorder_item to
return the positions in the array of the items removed, gotten, or
moved.
* gal/widgets/e-reflow.c, gal/widgets/e-reflow.h: Added a gint
*position argument to e_reflow_sorted_add_item to return the
positions in the array of the item added.
* gal/widgets/e-selection-model.c,
gal/widgets/e-selection-model.h: Added e_selection_model_move_row.
svn path=/trunk/; revision=8442
* e-table-extras.c: Added new ECellPixbuf --
takes a GdkPixbuf from the model and renders it centered
in the table cell.
svn path=/trunk/; revision=8441
* 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.
* gal/Makefile.am: added e-cell-pixbuf.lo
svn path=/trunk/; revision=8440
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.
svn path=/trunk/; revision=8436
2001-02-27 Miguel de Icaza <miguel@ximian.com>
* gal/widgets/e-gui-utils.c (e_popup_menu): Make this more robust:
do not assume that the GdkEvent will be either a GdkEventButton of
some sort or a GdkEventKey: deal gracefully with other possible
svn path=/trunk/; revision=8423
2001-02-27 Christopher James Lahey <clahey@ximian.com>
* gal/e-text/e-completion-view.c: Changed
e_table_selection_model_clear to e_selection_model_clear.
* tests/test-tree-3.c: Changed E_TABLE_CURSOR_LINE to
E_CURSOR_LINE.
From gal/e-table/ChangeLog:
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.
svn path=/trunk/; revision=8422
2001-02-27 Christopher James Lahey <clahey@ximian.com>
* gal/Makefile.am: Added e-sorter.lo and e-selection-model.lo.
* gal/util/Makefile.am: Added e-sorter.c and e-sorter.h.
* gal/util/e-sorter.c, gal/util/e-sorter.h: New class. This is a
new simple virtual class for use with ESelectionModel. It
implements the same set of methods as ETableSorter but the default
behavior is as if the sorting was a no-op.
* gal/widgets/Makefile.am: Added e-selection-model.c and
e-selection-model.h.
* gal/widgets/e-selection-model.c,
gal/widgets/e-selection-model.h: New class. Implements all of the
semantics of ETableSelectionModel except for the connection to the
ETableModel.
svn path=/trunk/; revision=8421
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]
svn path=/trunk/; revision=8387
2001-02-23 Christopher James Lahey <clahey@ximian.com>
* gal/Makefile.am (libgal_la_LIBADD): Added
e-table/e-table-sorting-utils.lo.
From gal/e-table/ChangeLog:
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.
svn path=/trunk/; revision=8374
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.
svn path=/trunk/; revision=8373
2001-02-23 Jon Trowbridge <trow@ximian.com>
* gal/e-text/e-entry.c (e_entry_set_position): Fixed.
(e_entry_select_region): Fixed.
(e_entry_show_popup): Grab/ungrab the pointer and keyboard when
the popup appears/disappears. This (mostly) solves the "floating
popup" problem.
(button_press_cb): Added. We catch button presses outside of
the popup, and hide the popup when they occur.
* gal/e-text/e-completion-view.c (e_completion_view_get_type,
e_completion_view_class_init): Changed base class to GtkEventBox.
(e_completion_view_key_press_handler): Make Escape always cause an
unbrowse, even wehen we are editting.
svn path=/trunk/; revision=8369
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.
svn path=/trunk/; revision=8304
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.
svn path=/trunk/; revision=8302
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-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.
svn path=/trunk/; revision=8268
2001-02-17 Christopher James Lahey <clahey@ximian.com>
From a patch submitted by Murray Cumming <Murray.Cumming@mybau.com>
* gal-define-views-model.h, gal-view-collection.h,
gal-view-etable.h, gal-view-factory-etable.h, gal-view-factory.h,
gal-view.h: Added GNOME_DECLS.
svn path=/trunk/; revision=8266
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.
svn path=/trunk/; revision=8264
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.
svn path=/trunk/; revision=8240
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.
svn path=/trunk/; revision=8214
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.
svn path=/trunk/; revision=8208
2001-02-13 Christopher James Lahey <clahey@ximian.com>
* e-table-item.c (eti_destroy): Fix the crash when ETableItems are
destroyed.
svn path=/trunk/; revision=8207
2001-02-11 Christopher James Lahey <clahey@ximian.com>
* gal/widgets/e-canvas-vbox.c, gal/widgets/e-canvas-vbox.h: Made a
width other than the default possible if the children have widths
larger than the default.
svn path=/trunk/; revision=8171
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.
svn path=/trunk/; revision=8170
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.
svn path=/trunk/; revision=8169
2001-02-11 Christopher James Lahey <clahey@ximian.com>
* gal/widgets/e-canvas-utils.c, gal/widgets/e-canvas-utils.h
(e_canvas_item_show_area_delayed): Added this function.
svn path=/trunk/; revision=8168
2001-02-09 JP Rosevear <jpr@ximian.com>
* gal/widgets/e-canvas.c (e_canvas_key): Since gdkevent is a
union, casting a smaller struct to a gdkevent caused unknown
memory to be copied around. fix by copying to a full gdkevent
structure before calling gdkevent.
(e_canvas_focus_in): ditto
(e_canvas_focus_out): ditto
svn path=/trunk/; revision=8153
2001-02-08 Christopher James Lahey <clahey@ximian.com>
* e-table.c (e_table_setup_header): Set the dnd_code on the header
properly.
svn path=/trunk/; revision=8110
2001-02-08 Christopher James Lahey <clahey@ximian.com>
* gal/e-text/e-text-model-test.c (describe_model): Commented out
this function since it's not being used.
svn path=/trunk/; revision=8109
2001-02-08 Christopher James Lahey <clahey@ximian.com>
* gal/widgets/gal-categories.glade, gal/widgets/e-categories.c
(ec_set_header): Added a "header" argument to set the label at the
top of the dialog.
svn path=/trunk/; revision=8108
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.
svn path=/trunk/; revision=8106
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-02-06 Christopher James Lahey <clahey@ximian.com>
* gal-view-collection.c (gal_view_collection_save): Create the
local directory when saving if it doesn't exist already.
svn path=/trunk/; revision=8043