view lwlib/xlwgauge.h @ 4549:68d1ca56cffa

First part of interactive checks that coding systems encode regions. 2008-01-21 Aidan Kehoe <kehoea@parhasard.net> * coding.el (decode-coding-string): (encode-coding-string): Accept GNU's NOCOPY argument for these. Todo; write compiler macros to use it. (query-coding-warning-face): New face, to show unencodable characters. (default-query-coding-region-safe-charset-skip-chars-map): New variable, a cache used by #'default-query-coding-region. (default-query-coding-region): Default implementation of #'query-coding-region, using the safe-charsets and safe-chars coding systemproperties. (query-coding-region): New function; can a given coding system encode a given region? (query-coding-string): New function; can a given coding system encode a given string? (unencodable-char-position): Function API taken from GNU; return the first unencodable position given a string and coding system. (encode-coding-char): Function API taken from GNU; return CHAR encoded using CODING-SYSTEM, or nil if CODING-SYSTEM would trash CHAR. ((unless (featurep 'mule)): Override the default query-coding-region implementation on non-Mule. * mule/mule-coding.el (make-8-bit-generate-helper): Eliminate a duplicate comment. (make-8-bit-choose-category): Simplify implementation. (8-bit-fixed-query-coding-region): Implementation of #'query-coding-region for coding systems created with #'make-8-bit-coding-system. (make-8-bit-coding-system): Initialise the #'query-coding-region implementation for these character sets. (make-8-bit-coding-system): Ditto for the compiler macro version of this function. * unicode.el (unicode-query-coding-skip-chars-arg): New variable, used by unicode-query-coding-region, initialised in mule/general-late.el. (unicode-query-coding-region): New function, the #'query-coding-region implementation for Unicode coding systems. Initialise the query-coding-function property for the Unicode coding systems to #'unicode-query-coding-region. * mule/mule-charset.el (charset-skip-chars-string): New function. Return a #'skip-chars-forward argument that skips all characters in CHARSET. (map-charset-chars): Function synced from GNU, modified to work with XEmacs. Map FUNC across the int value charset ranges of CHARSET.
author Aidan Kehoe <kehoea@parhasard.net>
date Mon, 21 Jan 2008 22:51:21 +0100
parents 16b17fd1dc93
children 308d34e9f07d
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		Int	0
 minValue		Int	Cardinal	0
 maxValue		Int	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 ;
	{
	  *(int *)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,
	int value
#endif
);

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

_XFUNCPROTOEND

#endif /* _XawGauge_h */