view lwlib/xlwgauge.h @ 934:c925bacdda60

[xemacs-hg @ 2002-07-29 09:21:12 by michaels] 2002-07-17 Marcus Crestani <crestani@informatik.uni-tuebingen.de> Markus Kaltenbach <makalten@informatik.uni-tuebingen.de> Mike Sperber <mike@xemacs.org> configure flag to turn these changes on: --use-kkcc First we added a dumpable flag to lrecord_implementation. It shows, if the object is dumpable and should be processed by the dumper. * lrecord.h (struct lrecord_implementation): added dumpable flag (MAKE_LRECORD_IMPLEMENTATION): fitted the different makro definitions to the new lrecord_implementation and their calls. Then we changed mark_object, that it no longer needs a mark method for those types that have pdump descritions. * alloc.c: (mark_object): If the object has a description, the new mark algorithm is called, and the object is marked according to its description. Otherwise it uses the mark method like before. These procedures mark objects according to their descriptions. They are modeled on the corresponding pdumper procedures. (mark_with_description): (get_indirect_count): (structure_size): (mark_struct_contents): These procedures still call mark_object, this is needed while there are Lisp_Objects without descriptions left. We added pdump descriptions for many Lisp_Objects: * extents.c: extent_auxiliary_description * database.c: database_description * gui.c: gui_item_description * scrollbar.c: scrollbar_instance_description * toolbar.c: toolbar_button_description * event-stream.c: command_builder_description * mule-charset.c: charset_description * device-msw.c: devmode_description * dialog-msw.c: mswindows_dialog_id_description * eldap.c: ldap_description * postgresql.c: pgconn_description pgresult_description * tooltalk.c: tooltalk_message_description tooltalk_pattern_description * ui-gtk.c: emacs_ffi_description emacs_gtk_object_description * events.c: * events.h: * event-stream.c: * event-Xt.c: * event-gtk.c: * event-tty.c: To write a pdump description for Lisp_Event, we converted every struct in the union event to a Lisp_Object. So we created nine new Lisp_Objects: Lisp_Key_Data, Lisp_Button_Data, Lisp_Motion_Data, Lisp_Process_Data, Lisp_Timeout_Data, Lisp_Eval_Data, Lisp_Misc_User_Data, Lisp_Magic_Data, Lisp_Magic_Eval_Data. We also wrote makro selectors and mutators for the fields of the new designed Lisp_Event and added everywhere these new abstractions. We implemented XD_UNION support in (mark_with_description), so we can describe exspecially console/device specific data with XD_UNION. To describe with XD_UNION, we added a field to these objects, which holds the variant type of the object. This field is initialized in the appendant constructor. The variant is an integer, it has also to be described in an description, if XD_UNION is used. XD_UNION is used in following descriptions: * console.c: console_description (get_console_variant): returns the variant (create_console): added variant initialization * console.h (console_variant): the different console types * console-impl.h (struct console): added enum console_variant contype * device.c: device_description (Fmake_device): added variant initialization * device-impl.h (struct device): added enum console_variant devtype * objects.c: image_instance_description font_instance_description (Fmake_color_instance): added variant initialization (Fmake_font_instance): added variant initialization * objects-impl.h (struct Lisp_Color_Instance): added color_instance_type * objects-impl.h (struct Lisp_Font_Instance): added font_instance_type * process.c: process_description (make_process_internal): added variant initialization * process.h (process_variant): the different process types
author michaels
date Mon, 29 Jul 2002 09:21:25 +0000
parents abe6d1db359e
children 16b17fd1dc93
line wrap: on
line source

/* Gauge Widget for XEmacs.
   Copyright (C) 1999 Edward A. Falk

This file is part of XEmacs.

XEmacs is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.

XEmacs is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with XEmacs; see the file COPYING.  If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.  */

/* Synched up with: Gauge.h 1.1 */

/*
 * Gauge.h - Gauge widget
 *
 * Author: Edward A. Falk
 *         falk@falconer.vip.best.com
 *
 * Date:   July 8, 1997
 */

#ifndef _XawGauge_h
#define _XawGauge_h

/***********************************************************************
 *
 * Gauge Widget
 *
 * The Gauge widget looks something like a thermometer.  Application
 * defines the values at the ends of the range and the current value
 * and Gauge draws accordingly.  Gauge does not accept input.
 *
 ***********************************************************************/

#include ATHENA_Label_h_

/* Resources:

 Name			Class		RepType		Default Value
 ----			-----		-------		-------------
 value			Value		Cardinal	0
 minValue		MinValue	Cardinal	0
 maxValue		MaxValue	Cardinal	100
 ntics			NTics		Cardinal	0	+
 nlabels		NLabels		Cardinal	0	++
 labels			Labels		String *	NULL	+++
 orientation		Orientation	XtOrientation	horizontal
 autoScaleUp		AutoScaleUp	Boolean		FALSE	++++
 autoScaleDown		AutoScaleDown	Boolean		FALSE	++++
 getValue		Callback	XtCallbackList	NULL	+++++
 update			Interval	int		0 (seconds) = disabled

 encoding		Encoding	unsigned char	XawTextEncoding8bit
 font			Font		XFontStruct*	XtDefaultFont
 foreground		Foreground	Pixel		XtDefaultForeground
 internalHeight		Height		Dimension	2
 internalWidth		Width		Dimension	4
 resize			Resize		Boolean		True
 background		Background	Pixel		XtDefaultBackground
 bitmap			Pixmap		Pixmap		None
 border			BorderColor	Pixel		XtDefaultForeground
 borderWidth		BorderWidth	Dimension	1
 cursor			Cursor		Cursor		None
 cursorName		Cursor		String		NULL
 destroyCallback	Callback	XtCallbackList	NULL
 height			Height		Dimension	varies
 insensitiveBorder	Insensitive	Pixmap		Gray
 mappedWhenManaged	MappedWhenManaged Boolean		True
 pointerColor		Foreground	Pixel		XtDefaultForeground
 pointerColorBackground	Background	Pixel		XtDefaultBackground
 sensitive		Sensitive	Boolean		True
 width			Width		Dimension	text width
 x			Position	Position	0
 y			Position	Position	0

 +   Ntics sets the number of tic marks next to the gauge.  If 0, no
     tic marks will be drawn.
 ++  Nlabels sets the number of labels next to the gauge.
 +++ Labels is an array of nul-terminated strings to be used as labels.
     If this field is NULL but nlabels is > 0, then numeric labels will be
     provided.  NOTE: the labels are not copied to any internal memory; they
     must be stored in static memory provided by the application.
 ++++ AutoScale allows the gauge to set its own value limits.  Default is
      False unless upper & lower limits are both 0.

 +++++ The GetValue() callback proc is called with these arguments:
 	static void
	myGetValue(gauge, client, rval)
		Widget	gauge ;
		XtPointer client ;
		XtPointer rval ;
	{
	  *(Cardinal *)rval = value ;
	}

*/

/*
 * Resource names not provided in StringDefs.h
 */

#ifndef	XtNvalue
#define	XtNvalue	"value"
#define	XtCValue	"Value"
#endif

#ifndef	XtNorientation
#define	XtNorientation	"orientation"
#define	XtCOrientation	"Orientation"
#endif

#define	XtNntics	"ntics"
#define	XtCNTics	"NTics"

#ifndef	XtNnlabels
#define	XtNnlabels	"nlabels"
#define	XtCNLabels	"NLabels"
#endif
#ifndef	XtNlabels
#define	XtNlabels	"labels"
#define	XtCLabels	"Labels"
#endif

#ifndef	XtNminValue
#define	XtNminValue	"minValue"
#define	XtCMinValue	"MinValue"
#endif
#ifndef	XtNmaxValue
#define	XtNmaxValue	"maxValue"
#define	XtCMaxValue	"MaxValue"
#endif

#ifndef	XtNautoScaleUp
#define	XtNautoScaleUp		"autoScaleUp"
#define	XtCAutoScaleUp		"AutoScaleUp"
#define	XtNautoScaleDown	"autoScaleDown"
#define	XtCAutoScaleDown	"AutoScaleDown"
#endif

#ifndef	XtNupdate
#define	XtNupdate	"update"
#endif

#ifndef	XtNgetValue
#define	XtNgetValue	"getValue"
#endif


/* Class record constants */

extern WidgetClass gaugeWidgetClass;

typedef struct _GaugeClassRec *GaugeWidgetClass;
typedef struct _GaugeRec      *GaugeWidget;


_XFUNCPROTOBEGIN

extern	void	XawGaugeSetValue(
#if NeedFunctionPrototypes
	Widget	gauge,
	Cardinal value
#endif
);

extern	Cardinal XawGaugeGetValue(
#if NeedFunctionPrototypes
	Widget	gauge
#endif
);

_XFUNCPROTOEND

#endif /* _XawGauge_h */