Native layouts do not actually yet work in this, but there are too many
fixes to hold off any longer.
andy
2000-05-03 Andy Piper <andy(a)xemacs.org>
* gui-x.c (popup_selection_callback): fix no selection abort.
2000-05-02 Andy Piper <andy(a)xemacs.org>
* glyphs-msw.c (mswindows_update_widget): cope with nil text.
(mswindows_widget_instantiate): ditto.
* glyphs-widget.c (initialize_widget_image_instance): initialize
children correctly.
(widget_instantiate): cope with children and items in the same
instance.
* glyphs.c (mark_image_instance): cope with children as a first
class member.
(image_instance_equal): ditto.
(image_instance_hash): ditto.
(image_instance_changed): ditto.
2000-04-30 Andy Piper <andy(a)xemacs.org>
* glyphs.c (subwindow_query_geometry): new function. Return some
defaults.
(subwindow_instantiate): don't assign dimensions if none have been
given.
(image_instantiator_format_create): add subwindow_query_geometry.
(print_image_instance): cope with layouts as widgets.
2000-04-29 Andy Piper <andy(a)xemacs.org>
* frame.c (delete_frame_internal): call
free_frame_subwindow_instance_cache so that all subwindows are
finalized before their parent.
(mark_frame): remove subwindow_cachels.
(Fmake_frame): remove subwindow_cachel manipulation.
(allocate_frame_core): subwindow_instance_cache is a weak list.
(delete_frame_internal): set subwindow_instance_cache to nil.
* glyphs-msw.c (mswindows_finalize_image_instance): make double
finalization safe.
(mswindows_finalize_image_instance): use the device
not the domain as the domain may have died already.
* glyphs-x.c (x_finalize_image_instance): ditto.
(x_subwindow_instantiate): remove SUBWINDOW_WIDTH &
HEIGHT.
* redisplay-output.c (redisplay_unmap_subwindows): update for
subwindow instance cache as a weak list.
(redisplay_unmap_subwindows_maybe): ditto.
(redisplay_unmap_subwindows_except_us): ditto.
* glyphs.c (unmap_subwindow): error checking will check the domain
so don't deal with it here. Don't use cachels anymore.
(map_subwindow): ditto.
(update_subwindow_cachel_data): remove old accessor names.
(subwindow_instantiate): remove SUBWINDOW_WIDTH & HEIGHT.
(Fresize_subwindow): don't update cachel.
(mark_subwindow_cachels):
(update_subwindow_cachel_data):
(add_subwindow_cachel):
(get_subwindow_cachel_index):
(update_subwindow_cachel):
(reset_subwindow_cachels):
(mark_subwindow_cachels_as_not_updated): deleted.
(cache_subwindow_instance_in_frame_maybe): new function. Add a
subwindow instance to the frame cache.
(find_matching_subwindow): update for subwindow instance cache as
a weak list.
(update_widget_instances): ditto.
(image_instance_type_to_mask):inlined.
(free_frame_subwindow_instance_cache): new function. finalize all
subwindows that are instantiated.
* glyphs.h (struct Lisp_Image_Instance): add display_data instead
of cachel information.
(IMAGE_INSTANCE_DISPLAY_X):
(IMAGE_INSTANCE_DISPLAY_Y):
(IMAGE_INSTANCE_DISPLAY_WIDTH):
(IMAGE_INSTANCE_DISPLAY_HEIGHT):
(XIMAGE_INSTANCE_DISPLAY_X):
(XIMAGE_INSTANCE_DISPLAY_Y):
(XIMAGE_INSTANCE_DISPLAY_WIDTH):
(XIMAGE_INSTANCE_DISPLAY_HEIGHT): new accessors.
remove subwindow_cachel structure and function references.
(image_instance_type_to_mask): inline from glyphs.c
* redisplay.c (redisplay_frame): remove subwindow_cachel
references.
* frame.h (struct frame): remove subwindow_cachels.
(FRAME_SUBWINDOW_CACHE): access subwindow_instance_cache.
* frameslots.h: add subwindow_instance_cache.
* window.c (replace_window): check subwindow cache of replacement.
(window_unmap_subwindows_cache_mapper):
(window_unmap_subwindows): new functions. Unmap all subwindows
cached on this window.
(mark_window_as_deleted): unmap all subwindows.
2000-04-27 Andy Piper <andy(a)xemacs.org>
* glyphs.h (IIFORMAT_METH_OR_GIVEN): cope with null meths.
* glyphs-widget.c (widget_layout): return something.
(layout_layout): return something. Fail if not intialized.
(layout_query_geometry): ditto.
(image_instantiator_native_layout): new function. Initialized the
native layout type.
(widget_instantiate): don't do layout stuff here.
* glyphs.c (instantiate_image_instantiator): reorded calling or
instantiate and post_instantiate with layout in between.
(image_instance_layout): be more selective about deciding whether
the layout has been done or not.
* glyphs.h (struct image_instantiator_methods): return a value
from layout_method.
2000-04-26 Andy Piper <andy(a)xemacs.org>
* glyphs.c (allocate_image_instance): make initial width and
height unspecified. Set initialized to 0.
* syscommctrl.h new file. Encapsulates commctrl.h.
* syswindows.h new file. Encapsulates windows.h.
* ntplay.c: use new syswindows.h and syscommctrl.h header.
* nt.c: ditto.
* console-msw.h: ditto.
* redisplay-tty.c (tty_output_display_block): remove layout references.
* glyphs-msw.c (mswindows_widget_instantiate): use the domain
window handle rather than just the frame.
* glyphs.c (mark_image_instance): remove layout references.
(print_image_instance): ditto.
(image_instance_equal): ditto.
(image_instance_hash): ditto.
(decode_image_instance_type): ditto.
(encode_image_instance_type): ditto.
(image_instantiate): ditto.
(allocate_glyph): ditto.
(Fimage_instance_height): ditto.
(Fimage_instance_width): ditto.
(update_subwindow): ditto.
* redisplay-x.c (x_output_display_block): recode for layouts as
widgets.
* redisplay-output.c (redisplay_output_layout): recode for layouts
as widgets.
(compare_runes): remove layout references.
* redisplay-msw.c (mswindows_output_display_block): recode for
layouts as widgets.
* glyphs-widget.c (image_instantiator_layout): remove
layout_possible_dest_types.
(layout_possible_dest_types): deleted.
* glyphs.h (image_instance_type): remove layout references.
(struct Lisp_Image_Instance): ditto. Add initialized flag.
(IMAGE_INSTANCE_INITIALIZED): new accessor.
(XIMAGE_INSTANCE_INITIALIZED): ditto.
2000-04-25 Andy Piper <andy(a)xemacs.org>
* glyphs-widget.c (image_instantiator_buttons):
(image_instantiator_edit_fields):
(image_instantiator_combo_box):
(image_instantiator_scrollbar):
(image_instantiator_progress_guage):
(image_instantiator_tree_view):
(image_instantiator_tab_control):
(image_instantiator_labels):
(image_instantiator_layout): call default post_instantiate method.
(widget_post_instantiate): new function. Simply lays out the
widgets.
* glyphs.h (struct image_instantiator_methods): add
post_instantiate method.
* glyphs.c (instantiate_image_instantiator): add post_instantiate
method calls.
2000-04-23 Andy Piper <andy(a)xemacs.org>
* glyphs.h (struct image_instantiator_methods): add
decode_domain_method.
(struct Lisp_Image_Instance): remove subwindow frame - it can be
derived from the domain.
(IMAGE_INSTANCE_FRAME): new accessor.
(XIMAGE_INSTANCE_FRAME): ditto.
* glyphs.c (print_image_instance): use IMAGE_INSTANCE_FRAME
instead of _SUBWINDOW_FRAME.
(finalize_image_instance): ditto.
(Fimage_instance_foreground): ditto.
(Fimage_instance_background): ditto.
(image_instantiate): ditto.
(update_subwindow_cachel): ditto.
(update_subwindow): ditto.
(unmap_subwindow): ditto.
(map_subwindow): ditto
(subwindow_instantiate): ditto.
* glyphs-msw.c (mswindows_update_widget): ditto.
(mswindows_progress_gauge_instantiate): ditto.
(mswindows_tab_control_update): ditto.
* glyphs-x.c (x_update_widget): ditto.
(x_widget_instantiate): ditto.
(x_tab_control_instantiate): ditto.
(x_tab_control_update): ditto.
* event-msw.c (mswindows_wnd_proc): ditto
* glyphs-widget.c (image_instantiator_layout): use
subwindow_decode_domain.
(image_instantiator_buttons): ditto.
(image_instantiator_edit_fields): ditto.
(image_instantiator_combo_box): ditto.
(image_instantiator_scrollbar): ditto.
(image_instantiator_progress_guage): ditto.
(image_instantiator_tree_view): ditto.
(image_instantiator_tab_control): ditto.
(image_instantiator_labels): ditto.
(image_instantiator_layout): ditto.
* glyphs.c: add instance error checking to many functions.
(instantiate_image_instantiator): decode device from cache_domain.
(image_instantiate): partially rewrite by using
decode_image_instantiator_domain to determine what domain the
instance needs to be cached in.
(decode_image_instantiator_domain): new function. Determine what
domain the image needs to be cached in.
(check_window_subwindow_cache): new error checking function.
(check_instance_cache_mapper): ditto.
(check_image_instance_structure): ditto.
(subwindow_decode_domain): new function. Encodes a window as a
subwindow's cache domain.
(image_instantiator_format_create): use it for text and
subwindows.
2000-04-21 Andy Piper <andy(a)xemacs.org>
* glyphs.c (image_instance_device): new function.
(image_instance_frame): new function.
(image_instance_window): new function.
(image_instance_live_p): new function.
* window.c (mark_window_as_deleted): reset the subwindow_instance_
cache to nil.
* glyphs.h (struct Lisp_Image_Instance): device->domain.
(IMAGE_INSTANCE_DOMAIN): new accessor.
(XIMAGE_INSTANCE_DOMAIN): ditto.
* glyphs-x.c (x_finalize_image_instance): device->domain.
* glyphs-msw.c (init_image_instance_geometry): device->domain.
(mswindows_finalize_image_instance): ditto.
* glyphs-eimage.c (jpeg_instantiate): device->domain.
(gif_instantiate): ditto.
(png_instantiate): ditto.
(tiff_instantiate): ditto.
* glyphs.c (instantiate_image_instantiator): use domain rather
than device.
(mark_image_instance): device -> domain.
(print_image_instance): ditto.
(finalize_image_instance): ditto.
(image_instance_equal): ditto.
(allocate_image_instance): ditto.
(Fcolorize_image_instance): ditto.
(query_string_geometry): ditto.
(image_instantiate): ditto
(query_string_font): ditto.
(image_instantiate): ditto.
(update_subwindow): ditto.
(unmap_subwindow): ditto.
(map_subwindow): ditto.
(subwindow_instantiate): ditto.
* specifier.h (DOMAIN_DEVICE): new, semantically correct, decoder.
(DOMAIN_FRAME): ditto.
(DOMAIN_WINDOW): ditto.
(DOMAIN_LIVE_P): ditto.
(XDOMAIN_DEVICE): ditto.
(XDOMAIN_FRAME): ditto.
(XDOMAIN_WINDOW): ditto.
* specifier.c (Fvalid_specifier_domain_p): add image instances as
a valid specifier domain.
2000-04-19 Andy Piper <andy(a)xemacs.org>
* glyphs-widget.c (syms_of_glyphs_widget): remove
widget-callback-current-channel.
(vars_of_glyphs_widget): ditto.
* glyphs.h: ditto
* gutter-items.el (search-dialog-callback): use event-channel to
get the widget's context.
(make-search-dialog): ditto.
* gui.c (get_gui_callback): revert to previous behaviour.
2000-04-18 Andy Piper <andy(a)xemacs.org>
* glyphs.h (struct Lisp_Image_Instance): add margin_width.
(IMAGE_INSTANCE_MARGIN_WIDTH): new.
(XIMAGE_INSTANCE_MARGIN_WIDTH): new.
* glyphs.c (image_instance_equal): add margin_width.
(image_instance_hash): ditto.
* glyphs-widget.c (widget_instantiate): deal with margin-width.
(layout_query_geometry): ditto.
(layout_layout): ditto.
(syms_of_glyphs_widget): add margin-width.
(image_instantiator_layout): allow margin-width.
* glyphs.c (update_widget_instances): make a normal function.
(syms_of_glyphs): remove Qupdate_widget_instances.
* glyphs.h: ditto.
* gui-x.c (popup_selection_callback): use enqueue_magic_eval_event
so that we don't corrupt ideas about the last event or
command. Remove widget-callback-current-channel fiddling.
* gui-msw.c (mswindows_handle_gui_wm_command): ditto.
2000-04-15 Andy Piper <andy(a)xemacs.org>
* Emacs.ad: add select-start() back into text translations.
--------------------------------------------------------------
Dr Andy Piper
Principal Consultant, BEA Systems Ltd