Blame lib/Xm/LabelP.h

Packit b099d7
/* 
Packit b099d7
 * Motif
Packit b099d7
 *
Packit b099d7
 * Copyright (c) 1987-2012, The Open Group. All rights reserved.
Packit b099d7
 *
Packit b099d7
 * These libraries and programs are free software; you can
Packit b099d7
 * redistribute them and/or modify them under the terms of the GNU
Packit b099d7
 * Lesser General Public License as published by the Free Software
Packit b099d7
 * Foundation; either version 2 of the License, or (at your option)
Packit b099d7
 * any later version.
Packit b099d7
 *
Packit b099d7
 * These libraries and programs are distributed in the hope that
Packit b099d7
 * they will be useful, but WITHOUT ANY WARRANTY; without even the
Packit b099d7
 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
Packit b099d7
 * PURPOSE. See the GNU Lesser General Public License for more
Packit b099d7
 * details.
Packit b099d7
 *
Packit b099d7
 * You should have received a copy of the GNU Lesser General Public
Packit b099d7
 * License along with these librararies and programs; if not, write
Packit b099d7
 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
Packit b099d7
 * Floor, Boston, MA 02110-1301 USA
Packit b099d7
*/ 
Packit b099d7
/* 
Packit b099d7
 * HISTORY
Packit b099d7
*/ 
Packit b099d7
/* $XConsortium: LabelP.h /main/13 1995/10/25 20:08:32 cde-sun $ */
Packit b099d7
/* (c) Copyright 1989, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
Packit b099d7
/* (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
Packit b099d7
#ifndef _XmLabelP_h_
Packit b099d7
#define _XmLabelP_h_
Packit b099d7
Packit b099d7
#include <Xm/Label.h>
Packit b099d7
#include <Xm/PrimitiveP.h>
Packit b099d7
#include <Xm/XmP.h>
Packit b099d7
Packit b099d7
Packit b099d7
#ifdef __cplusplus
Packit b099d7
extern "C" {
Packit b099d7
#endif
Packit b099d7
Packit b099d7
/*  The Label Widget Class and instance records  */
Packit b099d7
Packit b099d7
typedef struct _XmLabelClassPart     /* label class record */
Packit b099d7
{
Packit b099d7
  XtWidgetProc	setOverrideCallback;
Packit b099d7
  XmMenuProc	menuProcs;
Packit b099d7
  String	translations;
Packit b099d7
  XtPointer	extension;
Packit b099d7
} XmLabelClassPart;
Packit b099d7
Packit b099d7
typedef struct _XmLabelClassRec
Packit b099d7
{
Packit b099d7
  CoreClassPart		core_class;
Packit b099d7
  XmPrimitiveClassPart	primitive_class;
Packit b099d7
  XmLabelClassPart	label_class;
Packit b099d7
} XmLabelClassRec;
Packit b099d7
Packit b099d7
externalref XmLabelClassRec xmLabelClassRec;
Packit b099d7
Packit b099d7
Packit b099d7
/* Inherited  Functions exported by label */
Packit b099d7
Packit b099d7
#define XmInheritSetOverrideCallback	((XtWidgetProc) _XtInherit)
Packit b099d7
#define XmInheritResize			((XtWidgetProc) _XtInherit)
Packit b099d7
#define XmInheritRealize		((XtRealizeProc) _XtInherit)
Packit b099d7
Packit b099d7
/* The padding between label text and accelerator text */
Packit b099d7
Packit b099d7
# define LABEL_ACC_PAD 		15
Packit b099d7
Packit b099d7
/*  The Label instance record  */
Packit b099d7
Packit b099d7
typedef struct _XmLabelPart
Packit b099d7
{
Packit b099d7
  _XmString	  _label;	 /* String sent to this widget */
Packit b099d7
  _XmString	  _acc_text;
Packit b099d7
  KeySym	  mnemonic;
Packit b099d7
  XmStringCharSet mnemonicCharset;
Packit b099d7
  char		 *accelerator;
Packit b099d7
  unsigned char	  label_type;
Packit b099d7
  unsigned char	  alignment;
Packit b099d7
  unsigned char	  string_direction;
Packit b099d7
  XmFontList	  font;
Packit b099d7
	
Packit b099d7
  Dimension	  margin_height;  /* margin around widget */
Packit b099d7
  Dimension	  margin_width;
Packit b099d7
  
Packit b099d7
  Dimension 	  margin_left;    /* additional margins on */
Packit b099d7
  Dimension	  margin_right;   /* each side of widget */
Packit b099d7
  Dimension	  margin_top;     /* text (or pixmap) is placed */
Packit b099d7
  Dimension	  margin_bottom;  /* inside the margins */
Packit b099d7
  
Packit b099d7
  Boolean	  recompute_size;
Packit b099d7
  
Packit b099d7
  Pixmap	  pixmap; 
Packit b099d7
  Pixmap	  pixmap_insen; 
Packit b099d7
  
Packit b099d7
  /* PRIVATE members -- values computed by LabelWidgetClass methods */
Packit b099d7
  
Packit b099d7
  GC		  normal_GC;   /* GC for text */	
Packit b099d7
  GC		  insensitive_GC;
Packit b099d7
  XRectangle	  TextRect;	/* The bounding box of the text or clip */
Packit b099d7
  XRectangle	  acc_TextRect; /* rectangle of the window; whichever is */
Packit b099d7
				/* smaller */
Packit b099d7
  
Packit b099d7
  Boolean	  skipCallback; /* set by RowColumn with entryCallback. */
Packit b099d7
  unsigned char   menu_type;
Packit b099d7
  Boolean	  computing_size; /* suppresses DrawnB resize callbacks. */
Packit b099d7
  
Packit b099d7
  Dimension	  acc_left_delta;  /* Amount we increased the margins */
Packit b099d7
  Dimension	  acc_right_delta; /* to accomodate accelerator text. */
Packit b099d7
Packit b099d7
  Dimension	* baselines;	/* Cached baseline information */
Packit b099d7
  
Packit b099d7
  Boolean	  check_set_render_table;
Packit b099d7
Packit b099d7
  XmPixmapPlacement pixmap_placement; /* Where to place the icon label. */
Packit b099d7
  Dimension pixmap_text_padding; /* padding between the icon and the text. */
Packit b099d7
Packit b099d7
  XRectangle	  PixmapRect;   /* The bounding box of the pixmap in TextRect */
Packit b099d7
  XRectangle	  StringRect;   /* The bounding box of the string in TextRect */
Packit b099d7
#ifdef FIX_1381
Packit b099d7
  GC		  shadow_GC;
Packit b099d7
#endif
Packit b099d7
} XmLabelPart;
Packit b099d7
Packit b099d7
Packit b099d7
typedef struct _XmLabelRec
Packit b099d7
{
Packit b099d7
   CorePart         core;
Packit b099d7
   XmPrimitivePart  primitive;
Packit b099d7
   XmLabelPart	    label;
Packit b099d7
} XmLabelRec;
Packit b099d7
Packit b099d7
Packit b099d7
/* MACROS */
Packit b099d7
Packit b099d7
#define Lab_MarginWidth(w)	(((XmLabelWidget)(w)) ->label.margin_width)
Packit b099d7
#define Lab_MarginHeight(w)	(((XmLabelWidget)(w)) ->label.margin_height)
Packit b099d7
#define Lab_MarginTop(w)	(((XmLabelWidget)(w)) ->label.margin_top)
Packit b099d7
#define Lab_MarginBottom(w)	(((XmLabelWidget)(w)) ->label.margin_bottom)
Packit b099d7
#define Lab_MarginRight(w)	(((XmLabelWidget)(w)) ->label.margin_right)
Packit b099d7
#define Lab_MarginLeft(w)	(((XmLabelWidget)(w)) ->label.margin_left)
Packit b099d7
#define Lab_TextRect_x(w)	(((XmLabelWidget)(w)) ->label.TextRect.x)
Packit b099d7
#define Lab_TextRect_y(w)	(((XmLabelWidget)(w)) ->label.TextRect.y)
Packit b099d7
#define Lab_TextRect_width(w)	(((XmLabelWidget)(w)) ->label.TextRect.width)
Packit b099d7
#define Lab_TextRect_height(w)	(((XmLabelWidget)(w)) ->label.TextRect.height)
Packit b099d7
Packit b099d7
#define Lab_IsText(w)	(((XmLabelWidget)(w)) ->label.label_type == XmSTRING)
Packit b099d7
#define Lab_IsPixmap(w)	(((XmLabelWidget)(w)) ->label.label_type == XmPIXMAP)
Packit b099d7
#define Lab_IsPixmapAndText(w)	(((XmLabelWidget)(w)) ->label.label_type == \
Packit b099d7
				XmPIXMAP_AND_STRING)
Packit b099d7
Packit b099d7
#define Lab_Font(w)		(((XmLabelWidget)(w)) ->label.font)
Packit b099d7
Packit b099d7
#define Lab_Mnemonic(w)		(((XmLabelWidget)(w)) ->label.mnemonic)
Packit b099d7
#define Lab_Accelerator(w)	(((XmLabelWidget)(w)) ->label.accelerator)
Packit b099d7
#define Lab_AcceleratorText(w)	(((XmLabelWidget)(w)) ->label.acc_text)
Packit b099d7
#define Lab_MenuType(w)		(((XmLabelWidget)(w))->label.menu_type)
Packit b099d7
#define Lab_Shadow(w)	 (((XmLabelWidget)(w))->primitive.shadow_thickness)
Packit b099d7
#define Lab_Highlight(w) (((XmLabelWidget)(w))->primitive.highlight_thickness)
Packit b099d7
#define Lab_Baseline(w)						\
Packit b099d7
  (_XmStringBaseline (((XmLabelWidget)(w))->label.font,		\
Packit b099d7
		      ((XmLabelWidget)(w))->label._label))
Packit b099d7
Packit b099d7
#define Lab_ComputingSize(w)	(((XmLabelWidget)(w))->label.computing_size)
Packit b099d7
#define Lab_IsMenupane(w)	((Lab_MenuType(w) == XmMENU_POPUP) ||	\
Packit b099d7
				 (Lab_MenuType(w) == XmMENU_PULLDOWN))
Packit b099d7
Packit b099d7
Packit b099d7
#ifdef __cplusplus
Packit b099d7
}  /* Close scope of 'extern "C"' declaration which encloses file. */
Packit b099d7
#endif
Packit b099d7
Packit b099d7
#endif /* _XmLabelP_h */
Packit b099d7
/* DON'T ADD ANYTHING AFTER THIS #endif */