view lwlib/xlwmenuP.h @ 35926:d2997845573f

(hi-lock-mode): Toggling hi-lock-mode now affects all buffers. When hi-lock turned on rather than only checking current buffer for regexps, all buffers are checked. Moved activation of font-lock to hi-lock-refontify. When font-lock turned off rather than removing added highlighting just in current buffer, remove it in all buffers. Changed edit menu text from "Automatic Highlighting" to "Regexp Highlighting" Documentation for highlighting phrases, minor documentation changes. (hi-lock-set-file-patterns): Execute only if there are new or existing file patterns. (hi-lock-refontify): Assume font-lock-fontify-buffer will first unfontify and, if a support mode is active, will not refontify the whole buffer. If necessary, turn on font lock. (Removed font-lock-unfontify and font-lock support-mode-specific calls, such as lazy-lock-fontify-window.) (hi-lock-find-patterns): Do not turn on hi-lock-mode even if patterns are found. Not useful now since find-file-hook is removed if hi-lock is off, but may be needed for per-buffer hi-lock activation. (hi-lock-face-phrase-buffer): New function. Also added related menu item and keybinding. (highlight-phrase): New alias, to hi-lock-face-phrase-buffer. (hi-lock-process-phrase): New function. (hi-lock-line-face-buffer): Doc fixes. (hi-lock-face-buffer): Doc fixes. (hi-lock-unface-buffer): Doc fixes.
author Gerd Moellmann <gerd@gnu.org>
date Tue, 06 Feb 2001 15:43:37 +0000
parents bb36becbd66b
children 762469b26903
line wrap: on
line source

#ifndef _XlwMenuP_h
#define _XlwMenuP_h

#include "xlwmenu.h"
#include <X11/CoreP.h>

/* Elements in the stack arrays. */
typedef struct _window_state
{
  Window	window;
  Position	x;
  Position	y;
  Dimension	width;
  Dimension	height;
  Dimension	label_width;

  /* Width of toggle buttons or radio buttons.  */
  Dimension     button_width;
} window_state;


/* New fields for the XlwMenu widget instance record */
typedef struct _XlwMenu_part 
{
  /* slots set by the resources */
  XFontStruct*	font;
  Pixel		foreground;
  Pixel		button_foreground;
  Dimension	margin;
  Dimension	horizontal_spacing;
  Dimension	vertical_spacing;
  Dimension	arrow_spacing;
  Dimension	shadow_thickness;
  Pixel 	top_shadow_color;
  Pixel 	bottom_shadow_color;
  Pixmap	top_shadow_pixmap;
  Pixmap	bottom_shadow_pixmap;
  Cursor	cursor_shape;
  XtCallbackList	open;
  XtCallbackList	select, highlight;
  widget_value*	contents;
  int		horizontal;

  /* True means top_shadow_color and/or bottom_shadow_color must be freed.  */
  unsigned free_top_shadow_color_p : 1;
  unsigned free_bottom_shadow_color_p : 1;
  
  /* State of the XlwMenu */
  int			old_depth;
  widget_value**	old_stack;
  int			old_stack_length;

  /* New state after the user moved */
  int			new_depth;
  widget_value**	new_stack;
  int			new_stack_length;

  /* Window resources */
  window_state*		windows;
  int			windows_length;

  /* Internal part, set by the XlwMenu */
  GC			foreground_gc;
  GC			button_gc;
  GC			background_gc;
  GC			inactive_gc;
  GC			inactive_button_gc;
  GC			shadow_top_gc;
  GC			shadow_bottom_gc;
  Cursor		cursor;
  Boolean		popped_up;
  Pixmap		gray_pixmap;
} XlwMenuPart;

/* Full instance record declaration */
typedef struct _XlwMenuRec 
{
  CorePart	core;
  XlwMenuPart	menu;
} XlwMenuRec;

/* New fields for the XlwMenu widget class record */
typedef struct 
{
  int	dummy;
} XlwMenuClassPart;

/* Full class record declaration. */
typedef struct _XlwMenuClassRec 
{
  CoreClassPart		core_class;
  XlwMenuClassPart	menu_class;
} XlwMenuClassRec;

/* Class pointer. */
extern XlwMenuClassRec xlwMenuClassRec;

#endif /* _XlwMenuP_h */