view lwlib/xlwmenuP.h @ 9653:cfc5e15e0baf

(x_sync): Take frame ptr as arg. (check_x_display_info): New function. (Fx_create_frame): Use it. (x_screen_planes): New function. (EMACS_CLASS): Macro moved to xterm.h. (Qdisplay): New variable. (syms_of_xfns): Set it up. (Fx_create_frame): Handle display parameter which says where to get the FRAME_X_DISPLAY_INFO. (x_display_info_for_name): New function. (select_visual): New arg dpy. (Fx_open_connection): Get dpyinfo from x_term_init. Don't set up atoms, xrdb here. Pass name as Lisp_Object. (the_x_screen): Variable moved to xterm.c. (syms_of_xfns): Don't staticpro it here. (xrdb): Variable deleted. (Fx_get_resource): Use selected_frame's xrdb. (x_get_resource_string): Likewise. (Fx_open_connection): Store the atoms in x_display_info. (hack_wm_protocols): New arg f. Get atoms from x_display_info. (x_window): Get atoms from x_display_info. (Vmouse_depressed, mouse_buffer_offset): Variables deleted. (syms_of_xfns): Delete Lisp variables too. (Fx_synchronize): Take frame as arg. (Fx_close_current_connection): Take frame as arg. Error is not fatal. (mouse_timestamp): Variable deleted. (screen_visual, x_screen_planes): Variables deleted. (x_screen, x_screen_height, x_screen_width): Variables deleted. (Fx_open_connection): Don't set them here. Put that info in the x_display_info structure. (x_window): Get the visual from x_display_info structure. (x_decode_color): Use n_planes from x_display_info structure. Use FRAME_X_DISPLAY instead of x_current_display and XDISPLAY. (x_in_use): New variable, (check_x, using_x_p): Test x_in_use. (Fx_open_connection): Set x_in_use. (check_x_frame): New function. (defined_color): New arg f specifies frame. Callers changed. (x_decode_color): New arg f. All callers changed. (Fx_color_values, Fx_color_defined_p): New arg FRAME. Use check_x_frame. (Fx_list_fonts): Use check_x_frame.
author Richard M. Stallman <rms@gnu.org>
date Sat, 22 Oct 1994 04:27:25 +0000
parents cfb65c58eb9a
children 584c34c7cf53
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;
} 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;
  widget_value*	contents;
  int		horizontal;
  
  /* 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 */