view lwlib/xlwtabs.h @ 4758:75975fd0b7fc

Implement more of the fontconfig API. Improve implementation, avoiding nonsyntactic macros and compiler warnings. Clean up some documentation. Guard against freeing NULL pointers returned from fonconfig.
author Stephen J. Turnbull <stephen@xemacs.org>
date Wed, 18 Nov 2009 22:44:28 +0900
parents 382b11fa8866
children ade4c7e2c6cb
line wrap: on
line source

/* Tabs 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.  */
 
/*
 * This widget manages one or more child widgets, exactly one of which is
 * visible.  Above the child widgets is a graphic that looks like index
 * tabs from file folders.  Each tab corresponds to one of the child widgets.
 * By clicking on a tab, the user can bring the corresponding widget to
 * the top of the stack.
 */


#ifndef _Tabs_h
#define _Tabs_h

#include <X11/Constraint.h>


/***********************************************************************
 *
 * Tabs Widget (subclass of CompositeClass)
 *
 ***********************************************************************/

/* Parameters:

 Name		     Class		RepType		Default Value
 ----		     -----		-------		-------------
 font		     Font		XFontStruct*	XtDefaultFont
 fcFontName          FcFontName         String          NULL      *0
 xftFont             XftFont            String          Helvetica-12 *8
 internalWidth	     Width		Dimension	4	  *1
 internalHeight	     Height		Dimension	2	  *1
 topWidget	     TopWidget		Widget			  *2
 callback	     Callback		XtCallbackList	NULL	  *3
 popdownCallback     Callback		XtCallbackList	NULL	  *4
 selectInsensitive   SelectInsensitive	Boolean		True	  *5
 beNiceToColormap    BeNiceToColormap	Boolean		False	  *6
 topShadowContrast   TopShadowContrast	int		20
 bottomShadowContrast BottomShadowContrast int		40
 insensitiveContrast InsensitiveContrast int		33	  *7

 background	     Background		Pixel		XtDefaultBackground
 border		     BorderColor	Pixel		XtDefaultForeground
 borderWidth	     BorderWidth	Dimension	1
 destroyCallback     Callback		Pointer		NULL
 hSpace 	     HSpace		Dimension	4
 height		     Height		Dimension	0
 mappedWhenManaged   MappedWhenManaged	Boolean		True
 orientation	     Orientation	XtOrientation	vertical
 vSpace 	     VSpace		Dimension	4
 width		     Width		Dimension	0
 x		     Position		Position	0
 y		     Position		Position	0

 Notes:

 0 this is a joke, it will be changed.
 1 internalWidth, internalHeight specify the margins around the text
   in the tabs.
 2 topWidget identifies the widget which is currently visible.
 3 callbacks are called whenever the user selects a tab.  Call_data is
   the new top widget.
 4 popdownCallbacks are called whenever the user selects a tab.  Call_data is
   the old (no longer visible) top widget.  Note that popdownCallbacks
   are called before callbacks.
 5 SelectInsensitive determines whether or not insensitive children may
   be selected anyway.
 6 BeNiceToColormap causes the Tabs widget to use fewer colors.
 7 InsensitiveContrast sets the contrast used for labels of insensitive widgets.
 8 fcFontName and xftFont are separate resources because there is not yet
   registered representation and converter for XftFonts.
*/

/* Constraint parameters:
 Name		     Class		RepType		Default Value
 ----		     -----		-------		-------------
 tabLabel	     Label		String		widget name
 tabLeftBitmap	     LeftBitmap		Pixmap		None
 tabForeground	     Foreground		Pixel		XtDefaultForeground
 resizable	     Resizable		Boolean		False
*/

/* New fields */

#ifndef	XtNtabLabel
#define	XtNtabLabel		"tabLabel"
#define	XtNtabForeground	"tabForeground"
#endif

#ifndef	XtNtabLeftBitmap
#define	XtNtabLeftBitmap	"tabLeftBitmap"
#endif

#ifndef	XtCLeftBitmap
#define	XtCLeftBitmap	"LeftBitmap"
#endif

#ifndef	XtCResizable
#define	XtCResizable	"Resizable"
#endif

#ifndef	XtNselectInsensitive
#define	XtNselectInsensitive	"selectInsensitive"
#define	XtCSelectInsensitive	"SelectInsensitive"
#endif

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

#ifndef	XtNtopWidget
#define	XtNtopWidget	"topWidget"
#define	XtCTopWidget	"TopWidget"
#endif

#ifndef	XtNhSpace
#define	XtNhSpace	"hSpace"
#define	XtCHSpace	"HSpace"
#define	XtNvSpace	"vSpace"
#define	XtCVSpace	"VSpace"
#endif

#ifndef	XtNresizable
#define	XtNresizable	"resizable"
#endif

#ifndef	XtNinsensitiveContrast
#define	XtNinsensitiveContrast	"insensitiveContrast"
#define	XtCInsensitiveContrast	"InsensitiveContrast"
#endif

#ifndef	XtNshadowWidth
#define XtNshadowWidth "shadowWidth"
#define XtCShadowWidth "ShadowWidth"
#define XtNtopShadowPixel "topShadowPixel"
#define XtCTopShadowPixel "TopShadowPixel"
#define XtNbottomShadowPixel "bottomShadowPixel"
#define XtCBottomShadowPixel "BottomShadowPixel"
#define XtNtopShadowContrast "topShadowContrast"
#define XtCTopShadowContrast "TopShadowContrast"
#define XtNbottomShadowContrast "bottomShadowContrast"
#define XtCBottomShadowContrast "BottomShadowContrast"
#endif

#ifndef	XtNtopShadowPixmap
#define	XtNtopShadowPixmap	"topShadowPixmap"
#define	XtCTopShadowPixmap	"TopShadowPixmap"
#define	XtNbottomShadowPixmap	"bottomShadowPixmap"
#define	XtCBottomShadowPixmap	"BottomShadowPixmap"
#endif

#ifndef	XtNbeNiceToColormap
#define XtNbeNiceToColormap "beNiceToColormap"
#define XtCBeNiceToColormap "BeNiceToColormap"
#define XtNbeNiceToColourmap "beNiceToColormap"
#define XtCBeNiceToColourmap "BeNiceToColormap"
#endif

/* Class record constants */

extern WidgetClass tabsWidgetClass;

typedef struct _TabsClassRec *TabsWidgetClass;
typedef struct _TabsRec      *TabsWidget;

_XFUNCPROTOBEGIN

extern	void
XawTabsSetTop(
#if NeedFunctionPrototypes
	Widget	w,
	Bool	callCallbacks
#endif
) ;

extern	void
XawTabsSetHighlight(
#if NeedFunctionPrototypes
	Widget	tabs,
	Widget	w
#endif
) ;

_XFUNCPROTOEND

#endif /* _Tabs_h */