At 06:19 PM 2/25/00 +0900, Stephen J. Turnbull wrote:
2. [Gutters] gutter-items need removal methods, since installing
them seems pretty complicated.
Ok, this is pass 1 at improving the useability of the gutters themselves.
Specifiers are doing my head in so it would be useful if Ben or someone
could comment on the helper functions I have written to point out my mistakes.
andy
2000-02-26 Andy Piper <andy(a)xemacs.org>
* gutter-items.el (set-gutter-element): new function. Add gutter
elements to the specified gutter.
(remove-gutter-element): new function. Remove gutter elements from
the specified gutter.
(set-gutter-element-visible-p): new function. Set gutter element
visibility for the provided gutter-visible specifier.
* specifier.c (Fmake_specifier): add gutter references.
* gutter.h (RAW_WINDOW_GUTTER): new macro.
* lisp.h: declare Fvalid_plist_p.
* gutter.c (gutter_geometry_changed_in_window): mark the modeline
as changed.
(default_gutter_visible_p_changed_in_window): invalidate gutter as
well as its visibility so that it gets reconstructed.
(construct_window_gutter_spec): new function. Construct a string
to be displayed in the gutter from a plist of strings. Take care
to only use elements that are declared as visible.
(calculate_gutter_size): use RAW_WINDOW_GUTTER instead of
WINDOW_GUTTER.
(gutter_validate): allow plists of strings in the specifier.
(gutter_specs_changed): construct the real_gutter from the gutter
specs using construct_window_gutter_spec.
(gutter_visible_validate): gutter-visible is a new specifier type.
(Fgutter_visible_specifier_p): new function for the new specifier.
(syms_of_gutter): declare gutter-visible and
Fgutter_visible_specifier_p.
(specifier_type_create_gutter): intitalize new gutter-visible
specifier.
(reinit_specifier_type_create_gutter): ditto.
(specifier_vars_of_gutter): use new specifier type for gutter
visibility.
(init_frame_gutters): construct real_gutter correctly.
(Fgutter_specifier_p): beef up documentation.
(Fgutter_size_specifier_p): ditto.
* winslots.h: add real_gutter slots.
--------------------------------------------------------------
Dr Andy Piper
Senior Consultant Architect, BEA Systems Ltd