Blame lib/Xm/SpinBP.h

Packit b099d7
/* $TOG: SpinBP.h /main/7 1999/09/01 17:14:17 mgreess $ */
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
Packit b099d7
#ifndef _XmSpinBP_h
Packit b099d7
#define _XmSpinBP_h
Packit b099d7
Packit b099d7
#include <Xm/LabelP.h>
Packit b099d7
#include <Xm/ManagerP.h>
Packit b099d7
#include <Xm/SpinB.h>
Packit b099d7
Packit b099d7
#ifdef __cplusplus
Packit b099d7
extern "C" {
Packit b099d7
#endif
Packit b099d7
Packit b099d7
/*  Spin constraints */
Packit b099d7
Packit b099d7
typedef struct _XmSpinBoxConstraint
Packit b099d7
{
Packit b099d7
  XmStringTable  values;        /* array of XmString */
Packit b099d7
  int            position;      /* position of current selection */
Packit b099d7
  int            num_values;    /* number of XmString in the array */
Packit b099d7
Packit b099d7
  int            minimum_value; /* parameters for autonumeric mode */
Packit b099d7
  int            maximum_value;
Packit b099d7
  int            increment_value;
Packit b099d7
  short	         decimal_points;
Packit b099d7
Packit b099d7
  unsigned char  sb_child_type;
Packit b099d7
  unsigned char  arrow_sensitivity;
Packit b099d7
  Boolean	 wrap;
Packit b099d7
  unsigned char  position_type; /* governs interpretation of .position:
Packit b099d7
					XmPOSITION_{ARRAY,VALUE} */
Packit b099d7
} XmSpinBoxConstraintPart, *XmSpinBoxConstraint;
Packit b099d7
Packit b099d7
typedef struct _XmSpinBoxConstraintRec
Packit b099d7
{
Packit b099d7
  XmManagerConstraintPart manager;
Packit b099d7
  XmSpinBoxConstraintPart spinBox;
Packit b099d7
} XmSpinBoxConstraintRec, *XmSpinBoxConstraintPtr;
Packit b099d7
Packit b099d7
typedef Widget	(*XmGetCallbackWidgetProc)(Widget);
Packit b099d7
Packit b099d7
/*  Spin class structure  */
Packit b099d7
typedef struct _XmSpinBoxClassPart
Packit b099d7
{
Packit b099d7
  XmGetCallbackWidgetProc    get_callback_widget;
Packit b099d7
  XtPointer                  extension;			/* not used */
Packit b099d7
} XmSpinBoxClassPart;
Packit b099d7
Packit b099d7
Packit b099d7
/*  Full class record declaration for Spin class  */
Packit b099d7
Packit b099d7
typedef struct _XmSpinBoxClassRec
Packit b099d7
{
Packit b099d7
  CoreClassPart              core_class;
Packit b099d7
  CompositeClassPart         composite_class;
Packit b099d7
  ConstraintClassPart        constraint_class;
Packit b099d7
  XmManagerClassPart         manager_class;
Packit b099d7
  XmSpinBoxClassPart         spinBox_class;
Packit b099d7
} XmSpinBoxClassRec;
Packit b099d7
Packit b099d7
externalref XmSpinBoxClassRec xmSpinBoxClassRec;
Packit b099d7
Packit b099d7
/*  The Spin instance record  */
Packit b099d7
Packit b099d7
typedef struct _XmSpinBoxPart
Packit b099d7
{
Packit b099d7
      Dimension	     arrow_size;
Packit b099d7
      Dimension	     margin_width;
Packit b099d7
      Dimension	     margin_height;
Packit b099d7
      Dimension	     spacing;
Packit b099d7
      unsigned int   initial_delay;
Packit b099d7
      unsigned int   repeat_delay;
Packit b099d7
      XtCallbackList modify_verify_cb; /* CB list for new selection */
Packit b099d7
      XtCallbackList value_changed_cb; /* CB list for new selection */
Packit b099d7
      XRectangle     up_arrow_rect;
Packit b099d7
      XRectangle     down_arrow_rect;
Packit b099d7
      Widget         textw;         /* text widget */
Packit b099d7
      int	     boundary;
Packit b099d7
      int	     last_hit;
Packit b099d7
      int	     make_change;
Packit b099d7
      Dimension	     ideal_height;
Packit b099d7
      Dimension	     ideal_width;
Packit b099d7
      GC	     arrow_gc;
Packit b099d7
      GC	     insensitive_gc;
Packit b099d7
      Mask	     dim_mask; 	    /* for the navigator trait */
Packit b099d7
      XtIntervalId   spin_timer;
Packit b099d7
      Boolean	     up_arrow_pressed;
Packit b099d7
      Boolean	     down_arrow_pressed;
Packit b099d7
      unsigned char  arrow_layout;
Packit b099d7
      unsigned char  default_arrow_sensitivity;
Packit b099d7
      Dimension	     detail_shadow_thickness;
Packit b099d7
      unsigned char  arrow_orientation;	/* Xm_ARROWS_{VERTICAL,HORIZONTAL} */
Packit b099d7
} XmSpinBoxPart;
Packit b099d7
Packit b099d7
Packit b099d7
/*  Full instance record declaration  */
Packit b099d7
Packit b099d7
typedef struct _XmSpinBoxRec
Packit b099d7
{
Packit b099d7
  CorePart              core;
Packit b099d7
  CompositePart         composite;
Packit b099d7
  ConstraintPart        constraint;
Packit b099d7
  XmManagerPart         manager;
Packit b099d7
  XmSpinBoxPart         spinBox;
Packit b099d7
} XmSpinBoxRec;
Packit b099d7
Packit b099d7
/*  Macros */
Packit b099d7
#define XmRPositionValue	"PositionValue"
Packit b099d7
Packit b099d7
#define SB_GetConstraintRec(w) \
Packit b099d7
  ((XmSpinBoxConstraint)(&((XmSpinBoxConstraintPtr) (w)->core.constraints)->spinBox))
Packit b099d7
Packit b099d7
#define SB_WithChild(w) \
Packit b099d7
  (((XmSpinBoxRec *) (w))->spinBox.textw != NULL)
Packit b099d7
Packit b099d7
#define SB_ChildCount(w) \
Packit b099d7
  (((XmSpinBoxRec *) (w))->composite.num_children)
Packit b099d7
Packit b099d7
#define SB_GetArrowOrientation(w) \
Packit b099d7
  (((XmSpinBoxRec *) (w))->spinBox.arrow_orientation)
Packit b099d7
Packit b099d7
#define SB_ChildIsNumeric(wc) \
Packit b099d7
  (((XmSpinBoxConstraint) (wc))->sb_child_type == (unsigned char) XmNUMERIC)
Packit b099d7
Packit b099d7
#define SB_ChildPositionTypeIsValue(wc) \
Packit b099d7
  (((XmSpinBoxConstraint) (wc))->position_type == \
Packit b099d7
   (unsigned char) XmPOSITION_VALUE)
Packit b099d7
Packit b099d7
#define SB_ChildMaximumPositionValue(wc) \
Packit b099d7
  ( ( ((wc) == (XmSpinBoxConstraint) NULL) ?  \
Packit b099d7
        0 : \
Packit b099d7
        ( (SB_ChildIsNumeric(wc)) ? \
Packit b099d7
	    (wc)->maximum_value : \
Packit b099d7
            ( ((wc)->num_values  > 0) ? \
Packit b099d7
		((wc)->num_values - 1) : \
Packit b099d7
		0 \
Packit b099d7
	    ) \
Packit b099d7
	) \
Packit b099d7
    ) \
Packit b099d7
  )
Packit b099d7
Packit b099d7
#define SB_ChildMinimumPositionValue(wc) \
Packit b099d7
  ( ( ((wc) == (XmSpinBoxConstraint) NULL) ?  \
Packit b099d7
        0 : \
Packit b099d7
        ( (SB_ChildIsNumeric(wc)) ? \
Packit b099d7
          (wc)->minimum_value : \
Packit b099d7
          0 \
Packit b099d7
        ) \
Packit b099d7
    ) \
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  /* _SpinBP_h */
Packit b099d7
/* DON'T ADD ANYTHING AFTER THIS #endif */
Packit b099d7
Packit b099d7
Packit b099d7