view lwlib/lwlib-int.h @ 25259:9f7a9dceb11b

Mostly rewritten. Customized. To support an s2G doomsday clock, speed control is added and changes are made to allow large numbers of rings: rings now show the whole ring number, not just the last digit; consecutive rings are allowed to be the same size when necessary to fit all the rings in the window; and poles can be oriented horizontally. Face support is thrown in gratuitously. (hanoi): Changed default number of rings back to 3. (hanoi-unix, hanoi-unix-64): New commands (hanoi-horizontal-flag, hanoi-move-period, hanoi-use-faces, hanoi-pole-face, hanoi-base-face, hanoi-even-ring-face, hanoi-odd-ring-face): New variables. (hanoi-internal, hanoi-current-time-float, hanoi-put-face, hanoi-n, hanoi-insert-ring, hanoi-goto-char, hanoi-sit-for, hanoi-ring-to-pos, hanoi-pos-on-tower-p): New functions. (hanoi-0): Renamed from hanoi0, for symmetry with hanoi-n. (hanoi-topos, hanoi-draw-ring): Removed.
author Karl Heuer <kwzh@gnu.org>
date Sat, 14 Aug 1999 03:24:48 +0000
parents 0a94cd2c51c4
children 397da07a6912
line wrap: on
line source

#ifndef LWLIB_INTERNAL_H
#define LWLIB_INTERNAL_H

#include "lwlib.h"

/*
extern char *strdup (const char *);
extern int strcasecmp (const char *, const char *);
*/
extern char *safe_strdup ();

typedef struct _widget_instance
{
  Widget		widget;
  Widget		parent;
  Boolean		pop_up_p;
  struct _widget_info*		info;
  struct _widget_instance*	next;
} widget_instance;

typedef struct _widget_info
{
  char*			type;
  char*			name;
  LWLIB_ID		id;
  widget_value*		val;
  Boolean		busy;
  lw_callback		pre_activate_cb;
  lw_callback		selection_cb;
  lw_callback		post_activate_cb;
  struct _widget_instance*	instances;
  struct _widget_info*		next;
} widget_info;

typedef Widget
(*widget_creation_function) ();

typedef struct _widget_creation_entry
{
  char*				type;
  widget_creation_function	function;
} widget_creation_entry;

/* update all other instances of a widget.  Can be used in a callback when
   a widget has been used by the user */
void
lw_internal_update_other_instances ();

/* get the widget_value for a widget in a given instance */
widget_value*
lw_get_widget_value_for_widget ();

widget_info *lw_get_widget_info ();

#endif /* LWLIB_INTERNAL_H */