|
Packit |
b099d7 |
/* $TOG: SSpinB.c /main/14 1999/04/15 10:29:50 mgreess $ */
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* (c) Copyright 1995 Digital Equipment Corporation.
|
|
Packit |
b099d7 |
* (c) Copyright 1995 Hewlett-Packard Company.
|
|
Packit |
b099d7 |
* (c) Copyright 1995 International Business Machines Corp.
|
|
Packit |
b099d7 |
* (c) Copyright 1995 Sun Microsystems, Inc.
|
|
Packit |
b099d7 |
* (c) Copyright 1995 Novell, Inc.
|
|
Packit |
b099d7 |
* (c) Copyright 1995 FUJITSU LIMITED.
|
|
Packit |
b099d7 |
* (c) Copyright 1995 Hitachi.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
/******************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* File: SSpinB.c
|
|
Packit |
b099d7 |
* Date: June 1, 1995
|
|
Packit |
b099d7 |
* Author: Mitchell Greess
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Contents:
|
|
Packit |
b099d7 |
* Implements the XmSimpleSpinBox widget.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
******************************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef HAVE_CONFIG_H
|
|
Packit |
b099d7 |
#include <config.h>
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <stdio.h>
|
|
Packit |
b099d7 |
#include <stdlib.h>
|
|
Packit |
b099d7 |
#include <string.h>
|
|
Packit |
b099d7 |
#include <ctype.h>
|
|
Packit |
b099d7 |
#include <X11/StringDefs.h>
|
|
Packit |
b099d7 |
#include <X11/Intrinsic.h>
|
|
Packit |
b099d7 |
#include <X11/IntrinsicP.h>
|
|
Packit |
b099d7 |
#include <X11/cursorfont.h>
|
|
Packit |
b099d7 |
#include <X11/Shell.h>
|
|
Packit |
b099d7 |
#include <X11/Xutil.h>
|
|
Packit |
b099d7 |
#include <X11/keysym.h>
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <Xm/TextF.h>
|
|
Packit |
b099d7 |
#include <Xm/VaSimpleP.h>
|
|
Packit |
b099d7 |
#include "MessagesI.h"
|
|
Packit |
b099d7 |
#include "XmI.h"
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <Xm/SSpinBP.h>
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define FIX_1530
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void Initialize(
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static Boolean SetValues(
|
|
Packit |
b099d7 |
Widget old,
|
|
Packit |
b099d7 |
Widget req,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args);
|
|
Packit |
b099d7 |
static void InsertChild(
|
|
Packit |
b099d7 |
Widget newChild);
|
|
Packit |
b099d7 |
static Widget GetCallbackWidget(
|
|
Packit |
b099d7 |
Widget widget);
|
|
Packit |
b099d7 |
static void SyntheticGetValue(
|
|
Packit |
b099d7 |
Widget widget,
|
|
Packit |
b099d7 |
int offset,
|
|
Packit |
b099d7 |
XtArgVal *value);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Resources */
|
|
Packit |
b099d7 |
#define Offset(field) XtOffsetOf(XmSimpleSpinBoxRec,simpleSpinBox.field)
|
|
Packit |
b099d7 |
#define ManagerOffset(field) XtOffsetOf(XmSimpleSpinBoxRec,manager.field)
|
|
Packit |
b099d7 |
static XtResource resources[] = {
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Inherited resources.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNshadowThickness, XmCShadowThickness, XmRHorizontalDimension,
|
|
Packit |
b099d7 |
sizeof(Dimension), ManagerOffset(shadow_thickness),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) 1
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* SimpleSpinBox resources.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNarrowSensitivity, XmCArrowSensitivity, XmRArrowSensitivity,
|
|
Packit |
b099d7 |
sizeof(unsigned char), Offset(arrow_sensitivity),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) XmARROWS_DEFAULT_SENSITIVITY
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNcolumns, XmCColumns, XmRShort,
|
|
Packit |
b099d7 |
sizeof(short), Offset(columns),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) 20
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNdecimalPoints, XmCDecimalPoints, XmRShort,
|
|
Packit |
b099d7 |
sizeof(short), Offset(decimal_points),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) 0
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNeditable, XmCEditable, XmRBoolean,
|
|
Packit |
b099d7 |
sizeof(Boolean), Offset(editable),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) True
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNincrementValue, XmCIncrementValue, XmRInt,
|
|
Packit |
b099d7 |
sizeof(int), Offset(increment_value),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) 1
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNmaximumValue, XmCMaximumValue, XmRInt,
|
|
Packit |
b099d7 |
sizeof(int), Offset(maximum_value),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) 10
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNminimumValue, XmCMinimumValue, XmRInt,
|
|
Packit |
b099d7 |
sizeof(int), Offset(minimum_value),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) 0
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNnumValues, XmCNumValues, XmRInt,
|
|
Packit |
b099d7 |
sizeof(int), Offset(num_values),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) 0
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNposition, XmCPosition, XmRInt,
|
|
Packit |
b099d7 |
sizeof(int), Offset(position),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) 0
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNpositionType, XmCPositionType, XmRPositionType,
|
|
Packit |
b099d7 |
sizeof(unsigned char), Offset(position_type),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) XmPOSITION_VALUE
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNspinBoxChildType, XmCSpinBoxChildType, XmRSpinBoxChildType,
|
|
Packit |
b099d7 |
sizeof(unsigned char), Offset(sb_child_type),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) XmSTRING
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNtextField, XmCTextField, XmRWidget,
|
|
Packit |
b099d7 |
sizeof(Widget), Offset(text_field),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNvalues, XmCValues, XmRXmStringTable,
|
|
Packit |
b099d7 |
sizeof(XmStringTable), Offset(values),
|
|
Packit |
b099d7 |
XmRStringTable, NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNwrap, XmCWrap, XmRBoolean,
|
|
Packit |
b099d7 |
sizeof(Boolean), Offset(wrap),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) True
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XmSyntheticResource syn_resources[] =
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNarrowSensitivity, sizeof(unsigned char), Offset(arrow_sensitivity),
|
|
Packit |
b099d7 |
SyntheticGetValue, NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNcolumns, sizeof(short), Offset(columns),
|
|
Packit |
b099d7 |
SyntheticGetValue, NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNdecimalPoints, sizeof(short), Offset(decimal_points),
|
|
Packit |
b099d7 |
SyntheticGetValue, NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNeditable, sizeof(Boolean), Offset(editable),
|
|
Packit |
b099d7 |
SyntheticGetValue, NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNincrementValue, sizeof(int), Offset(increment_value),
|
|
Packit |
b099d7 |
SyntheticGetValue, NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNmaximumValue, sizeof(int), Offset(maximum_value),
|
|
Packit |
b099d7 |
SyntheticGetValue, NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNminimumValue, sizeof(int), Offset(minimum_value),
|
|
Packit |
b099d7 |
SyntheticGetValue, NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNnumValues, sizeof(int), Offset(num_values),
|
|
Packit |
b099d7 |
SyntheticGetValue, NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNposition, sizeof(int), Offset(position),
|
|
Packit |
b099d7 |
SyntheticGetValue, NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNpositionType, sizeof(unsigned char), Offset(position_type),
|
|
Packit |
b099d7 |
SyntheticGetValue, NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNspinBoxChildType, sizeof(unsigned char), Offset(sb_child_type),
|
|
Packit |
b099d7 |
SyntheticGetValue, NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNvalues, sizeof(XmStringTable), Offset(values),
|
|
Packit |
b099d7 |
SyntheticGetValue, NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNwrap, sizeof(Boolean), Offset(wrap),
|
|
Packit |
b099d7 |
SyntheticGetValue, NULL
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* The Spin class record definition */
|
|
Packit |
b099d7 |
externaldef (xmspinboxclassrec) XmSimpleSpinBoxClassRec xmSimpleSpinBoxClassRec= {
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
(WidgetClass)&xmSpinBoxClassRec, /* superclass */
|
|
Packit |
b099d7 |
"XmSimpleSpinBox", /* class_name */
|
|
Packit |
b099d7 |
sizeof(XmSimpleSpinBoxRec), /* widget_size */
|
|
Packit |
b099d7 |
(XtProc) NULL, /* class_initialize */
|
|
Packit |
b099d7 |
(XtWidgetClassProc) NULL, /* class_part_initialize */
|
|
Packit |
b099d7 |
FALSE, /* class_inited */
|
|
Packit |
b099d7 |
Initialize, /* initialize */
|
|
Packit |
b099d7 |
NULL, /* initialize_hook */
|
|
Packit |
b099d7 |
XtInheritRealize, /* realize */
|
|
Packit |
b099d7 |
NULL, /* actions */
|
|
Packit |
b099d7 |
0, /* num_actions */
|
|
Packit |
b099d7 |
resources, /* resources */
|
|
Packit |
b099d7 |
XtNumber(resources), /* num_resources */
|
|
Packit |
b099d7 |
NULLQUARK, /* xrm_class */
|
|
Packit |
b099d7 |
TRUE, /* compress_motion */
|
|
Packit |
b099d7 |
XtExposeCompressMaximal, /* compress_exposure */
|
|
Packit |
b099d7 |
TRUE, /* compress_enterleave */
|
|
Packit |
b099d7 |
FALSE, /* visible_interest */
|
|
Packit |
b099d7 |
(XtWidgetProc) NULL, /* destroy */
|
|
Packit |
b099d7 |
XtInheritResize, /* resize */
|
|
Packit |
b099d7 |
XtInheritExpose, /* expose */
|
|
Packit |
b099d7 |
SetValues, /* set_values */
|
|
Packit |
b099d7 |
(XtArgsFunc) NULL, /* set_values_hook */
|
|
Packit |
b099d7 |
XtInheritSetValuesAlmost, /* set_values_almost */
|
|
Packit |
b099d7 |
(XtArgsProc) NULL, /* get_values_hook */
|
|
Packit |
b099d7 |
XtInheritAcceptFocus, /* accept_focus */
|
|
Packit |
b099d7 |
XtVersion, /* version */
|
|
Packit |
b099d7 |
(XtPointer) NULL, /* callback proc list */
|
|
Packit |
b099d7 |
XtInheritTranslations, /* tm_table */
|
|
Packit |
b099d7 |
XtInheritQueryGeometry, /* query_geometry */
|
|
Packit |
b099d7 |
(XtStringProc) NULL, /* display_accelerator */
|
|
Packit |
b099d7 |
(XtPointer) NULL, /* extension */
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{ /* composite_class fields */
|
|
Packit |
b099d7 |
XtInheritGeometryManager, /* geometry_manager */
|
|
Packit |
b099d7 |
XtInheritChangeManaged, /* change_managed */
|
|
Packit |
b099d7 |
InsertChild, /* insert_child */
|
|
Packit |
b099d7 |
XtInheritDeleteChild, /* delete_child */
|
|
Packit |
b099d7 |
(XtPointer) NULL, /* extension */
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{ /* constraint_class fields */
|
|
Packit |
b099d7 |
(XtResourceList) NULL, /* resource_list */
|
|
Packit |
b099d7 |
(Cardinal) 0, /* num_resources */
|
|
Packit |
b099d7 |
(Cardinal) sizeof(
|
|
Packit |
b099d7 |
XmSimpleSpinBoxConstraintRec), /* constraint_size */
|
|
Packit |
b099d7 |
(XtInitProc) NULL, /* init_proc */
|
|
Packit |
b099d7 |
(XtWidgetProc) NULL, /* destroy_proc */
|
|
Packit |
b099d7 |
(XtSetValuesFunc) NULL, /* set_values_proc */
|
|
Packit |
b099d7 |
(XtPointer) NULL, /* extension */
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
/* manager_class fields */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XtInheritTranslations, /* translations */
|
|
Packit |
b099d7 |
(XmSyntheticResource *) syn_resources, /* syn_resources */
|
|
Packit |
b099d7 |
XtNumber(syn_resources), /* num_syn_resources */
|
|
Packit |
b099d7 |
(XmSyntheticResource *) NULL, /* syn_cont_resources */
|
|
Packit |
b099d7 |
0, /* num_syn_cont_resources */
|
|
Packit |
b099d7 |
(XmParentProcessProc) NULL, /* parent_process */
|
|
Packit |
b099d7 |
(XtPointer) NULL, /* extension */
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
/* spinbox_class fields */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
(XmGetCallbackWidgetProc)
|
|
Packit |
b099d7 |
GetCallbackWidget, /* get_callback_widget */
|
|
Packit |
b099d7 |
(XtPointer) NULL, /* extension */
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
/* simple_spinbox_class fields */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
(XtPointer) NULL, /* extension */
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
externaldef(xmsimplespinboxwidgetclass) WidgetClass xmSimpleSpinBoxWidgetClass =
|
|
Packit |
b099d7 |
(WidgetClass) &xmSimpleSpinBoxClassRec;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define BAD_SSPIN_SET_TEXT_FIELD _XmMMsgSSpinB_0001
|
|
Packit |
b099d7 |
#define BAD_SSPIN_SET_POSITION_TYPE _XmMMsgSSpinB_0002
|
|
Packit |
b099d7 |
#define BAD_SSPIN_SET_ITEM _XmMMsgSSpinB_0003
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/******************************************************************************
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
*** MACROS
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
*****************************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define SSB_TEXTFIELD_NAME_FORMAT "%s_TF"
|
|
Packit |
b099d7 |
#define SSB_SIMPLE_SPIN_BOX_PART(w) \
|
|
Packit |
b099d7 |
(& ((XmSimpleSpinBoxWidget)(w))->simpleSpinBox)
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/******************************************************************************
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
*** METHODS
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
*****************************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
Initialize(Widget request, /* unused */
|
|
Packit |
b099d7 |
Widget new,
|
|
Packit |
b099d7 |
ArgList user_args, /* unused */
|
|
Packit |
b099d7 |
Cardinal *n_user_args) /* unused */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
char *widget_name;
|
|
Packit |
b099d7 |
XmSimpleSpinBoxWidget ssb_w;
|
|
Packit |
b099d7 |
XmSimpleSpinBoxPart *ssb_p;
|
|
Packit |
b099d7 |
XmSpinBoxConstraint textf_c;
|
|
Packit |
b099d7 |
Arg args[XtNumber(resources)];
|
|
Packit |
b099d7 |
int nargs = 0;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
ssb_w = (XmSimpleSpinBoxWidget) new;
|
|
Packit |
b099d7 |
ssb_p = &ssb_w->simpleSpinBox;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
ssb_w->simpleSpinBox.text_field = (Widget) NULL;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Create and insert the text field child widget;
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
widget_name = XtMalloc(strlen(XtName(new)) + 10);
|
|
Packit |
b099d7 |
sprintf(widget_name, SSB_TEXTFIELD_NAME_FORMAT, XtName(new));
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Collect all the resources that apply to the TextField child,
|
|
Packit |
b099d7 |
* and push include them in the creation call.
|
|
Packit |
b099d7 |
* Allow the SpinBox widget worry about ensuring values are valid
|
|
Packit |
b099d7 |
* and about saving values.
|
|
Packit |
b099d7 |
* Once the child has been created, copy the relevant values out of
|
|
Packit |
b099d7 |
* the constraint record for the TextField into our instance record.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
XtSetArg(args[nargs], XmNarrowSensitivity,ssb_p->arrow_sensitivity);nargs++;
|
|
Packit |
b099d7 |
XtSetArg(args[nargs], XmNdecimalPoints, ssb_p->decimal_points); nargs++;
|
|
Packit |
b099d7 |
XtSetArg(args[nargs], XmNincrementValue, ssb_p->increment_value); nargs++;
|
|
Packit |
b099d7 |
XtSetArg(args[nargs], XmNmaximumValue, ssb_p->maximum_value); nargs++;
|
|
Packit |
b099d7 |
XtSetArg(args[nargs], XmNminimumValue, ssb_p->minimum_value); nargs++;
|
|
Packit |
b099d7 |
XtSetArg(args[nargs], XmNnumValues, ssb_p->num_values); nargs++;
|
|
Packit |
b099d7 |
XtSetArg(args[nargs], XmNposition, ssb_p->position); nargs++;
|
|
Packit |
b099d7 |
XtSetArg(args[nargs], XmNpositionType, ssb_p->position_type); nargs++;
|
|
Packit |
b099d7 |
XtSetArg(args[nargs], XmNspinBoxChildType, ssb_p->sb_child_type); nargs++;
|
|
Packit |
b099d7 |
XtSetArg(args[nargs], XmNvalues, ssb_p->values); nargs++;
|
|
Packit |
b099d7 |
XtSetArg(args[nargs], XmNwrap,ssb_p->wrap);nargs++;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtSetArg(args[nargs], XmNeditable, ssb_p->editable); nargs++;
|
|
Packit |
b099d7 |
XtSetArg(args[nargs], XmNcolumns, ssb_p->columns); nargs++;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
ssb_p->text_field = XtCreateManagedWidget( widget_name,
|
|
Packit |
b099d7 |
xmTextFieldWidgetClass,
|
|
Packit |
b099d7 |
(Widget) new,
|
|
Packit |
b099d7 |
args, nargs);
|
|
Packit |
b099d7 |
XtSetValues(ssb_p->text_field, args, nargs);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
textf_c = SB_GetConstraintRec(ssb_p->text_field);
|
|
Packit |
b099d7 |
ssb_p->arrow_sensitivity = textf_c->arrow_sensitivity;
|
|
Packit |
b099d7 |
ssb_p->decimal_points = textf_c->decimal_points;
|
|
Packit |
b099d7 |
ssb_p->increment_value = textf_c->increment_value;
|
|
Packit |
b099d7 |
ssb_p->maximum_value = textf_c->maximum_value;
|
|
Packit |
b099d7 |
ssb_p->minimum_value = textf_c->minimum_value;
|
|
Packit |
b099d7 |
ssb_p->num_values = textf_c->num_values;
|
|
Packit |
b099d7 |
ssb_p->position = textf_c->position;
|
|
Packit |
b099d7 |
ssb_p->position_type = textf_c->position_type;
|
|
Packit |
b099d7 |
ssb_p->sb_child_type = textf_c->sb_child_type;
|
|
Packit |
b099d7 |
ssb_p->values = textf_c->values;
|
|
Packit |
b099d7 |
ssb_p->wrap = textf_c->wrap;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_p->text_field,
|
|
Packit |
b099d7 |
XmNeditable, &ssb_p->editable,
|
|
Packit |
b099d7 |
XmNcolumns, &ssb_p->columns,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtFree(widget_name);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
SetValues(Widget current,
|
|
Packit |
b099d7 |
Widget request, /* unused */
|
|
Packit |
b099d7 |
Widget new,
|
|
Packit |
b099d7 |
ArgList args, /* unused */
|
|
Packit |
b099d7 |
Cardinal *num_args) /* unused */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmSimpleSpinBoxPart *cur_ssbp = SSB_SIMPLE_SPIN_BOX_PART(current);
|
|
Packit |
b099d7 |
XmSimpleSpinBoxPart *new_ssbp = SSB_SIMPLE_SPIN_BOX_PART(new);
|
|
Packit |
b099d7 |
XmSpinBoxConstraint textf_c;
|
|
Packit |
b099d7 |
Boolean display_flag;
|
|
Packit |
b099d7 |
Arg changed_args[XtNumber(resources)];
|
|
Packit |
b099d7 |
int nchanged_args = 0;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* These resources have CG permissions only:
|
|
Packit |
b099d7 |
* XmNpositionType, XmNspinBoxChildType, XmNtextField
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* BINARY COMPATIBILITY with DTSPINBOX
|
|
Packit |
b099d7 |
* However, DtSpinBox does not prevent setting XmNspinBoxChildType
|
|
Packit |
b099d7 |
* so we have to allow it.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* new_ssbp->sb_child_type = cur_ssbp->sb_child_type;
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if (new_ssbp->position_type != cur_ssbp->position_type) {
|
|
Packit |
b099d7 |
new_ssbp->position_type = cur_ssbp->position_type;
|
|
Packit |
b099d7 |
XmeWarning(new, BAD_SSPIN_SET_POSITION_TYPE);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
if (new_ssbp->text_field != cur_ssbp->text_field) {
|
|
Packit |
b099d7 |
new_ssbp->text_field = cur_ssbp->text_field;
|
|
Packit |
b099d7 |
XmeWarning(new, BAD_SSPIN_SET_TEXT_FIELD);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Collect changed args and push them onto the TextField child.
|
|
Packit |
b099d7 |
* Let the SpinBox widget worry about ensuring values are valid
|
|
Packit |
b099d7 |
* and about saving values.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Later, we'll copy the relevant values back into the SimpleSpinBox
|
|
Packit |
b099d7 |
* record to ensure consistancy.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
XtVaSetValues(new_ssbp->text_field,
|
|
Packit |
b099d7 |
XmNarrowSensitivity, new_ssbp->arrow_sensitivity,
|
|
Packit |
b099d7 |
XmNdecimalPoints, new_ssbp->decimal_points,
|
|
Packit |
b099d7 |
XmNincrementValue, new_ssbp->increment_value,
|
|
Packit |
b099d7 |
XmNmaximumValue, new_ssbp->maximum_value,
|
|
Packit |
b099d7 |
XmNminimumValue, new_ssbp->minimum_value,
|
|
Packit |
b099d7 |
XmNnumValues, new_ssbp->num_values,
|
|
Packit |
b099d7 |
XmNposition, new_ssbp->position,
|
|
Packit |
b099d7 |
XmNspinBoxChildType, new_ssbp->sb_child_type,
|
|
Packit |
b099d7 |
XmNvalues, new_ssbp->values,
|
|
Packit |
b099d7 |
XmNwrap, new_ssbp->wrap,
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmNeditable, new_ssbp->editable,
|
|
Packit |
b099d7 |
XmNcolumns, new_ssbp->columns,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
textf_c = SB_GetConstraintRec(new_ssbp->text_field);
|
|
Packit |
b099d7 |
new_ssbp->arrow_sensitivity = textf_c->arrow_sensitivity;
|
|
Packit |
b099d7 |
new_ssbp->decimal_points = textf_c->decimal_points;
|
|
Packit |
b099d7 |
new_ssbp->increment_value = textf_c->increment_value;
|
|
Packit |
b099d7 |
new_ssbp->maximum_value = textf_c->maximum_value;
|
|
Packit |
b099d7 |
new_ssbp->minimum_value = textf_c->minimum_value;
|
|
Packit |
b099d7 |
new_ssbp->num_values = textf_c->num_values;
|
|
Packit |
b099d7 |
new_ssbp->position = textf_c->position;
|
|
Packit |
b099d7 |
new_ssbp->sb_child_type = textf_c->sb_child_type;
|
|
Packit |
b099d7 |
new_ssbp->values = textf_c->values;
|
|
Packit |
b099d7 |
new_ssbp->wrap = textf_c->wrap;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtVaGetValues(new_ssbp->text_field,
|
|
Packit |
b099d7 |
XmNeditable, &new_ssbp->editable,
|
|
Packit |
b099d7 |
XmNcolumns, &new_ssbp->columns,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return FALSE;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
InsertChild(Widget newChild)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmSimpleSpinBoxWidget ssb_w;
|
|
Packit |
b099d7 |
WidgetClass super;
|
|
Packit |
b099d7 |
XtWidgetProc insert_child;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
ssb_w = (XmSimpleSpinBoxWidget) XtParent(newChild);
|
|
Packit |
b099d7 |
if (ssb_w->composite.num_children != 0) {
|
|
Packit |
b099d7 |
XmeWarning((Widget) ssb_w, BAD_SSPIN_SET_TEXT_FIELD);
|
|
Packit |
b099d7 |
return;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Call SpinBox's InsertChild method */
|
|
Packit |
b099d7 |
_XmProcessLock();
|
|
Packit |
b099d7 |
insert_child = ((XmSpinBoxWidgetClass)xmSpinBoxWidgetClass)->
|
|
Packit |
b099d7 |
composite_class.insert_child;
|
|
Packit |
b099d7 |
_XmProcessUnlock();
|
|
Packit |
b099d7 |
(*insert_child)(newChild);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
static Widget
|
|
Packit |
b099d7 |
GetCallbackWidget(Widget widget)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmSimpleSpinBoxWidget ssb_w;
|
|
Packit |
b099d7 |
WidgetClass super;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
ssb_w = (XmSimpleSpinBoxWidget) widget;
|
|
Packit |
b099d7 |
return((Widget) ssb_w->simpleSpinBox.text_field);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/******************************************************************************
|
|
Packit |
b099d7 |
* SyntheticGetValue
|
|
Packit |
b099d7 |
* XmExportProc conversion routine.
|
|
Packit |
b099d7 |
* Used to retrieve constraint resources from the spinbox for the
|
|
Packit |
b099d7 |
* textfield child.
|
|
Packit |
b099d7 |
*****************************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
SyntheticGetValue(Widget widget, int offset, XtArgVal *value)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmSimpleSpinBoxWidget ssb_w = (XmSimpleSpinBoxWidget) widget;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
switch (offset)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
case Offset(arrow_sensitivity):
|
|
Packit |
b099d7 |
#ifdef FIX_1530
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
unsigned char new_value;
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNarrowSensitivity, &new_value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
*value = (XtArgVal)new_value;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNarrowSensitivity, (unsigned char *) value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case Offset(columns):
|
|
Packit |
b099d7 |
#ifdef FIX_1530
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
short new_value;
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNcolumns, &new_value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
*value = (XtArgVal)new_value;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNcolumns, (short *) value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case Offset(decimal_points):
|
|
Packit |
b099d7 |
#ifdef FIX_1530
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
short new_value;
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNdecimalPoints, &new_value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
*value = (XtArgVal)new_value;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNdecimalPoints, (short *) value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case Offset(editable):
|
|
Packit |
b099d7 |
#ifdef FIX_1530
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Boolean new_value;
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNeditable, &new_value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
*value = (XtArgVal)new_value;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNeditable, (Boolean *) value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case Offset(increment_value):
|
|
Packit |
b099d7 |
#ifdef FIX_1530
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
short new_value;
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNincrementValue, &new_value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
*value = (XtArgVal)new_value;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNincrementValue, (short *) value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case Offset(minimum_value):
|
|
Packit |
b099d7 |
#ifdef FIX_1530
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int new_value;
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNminimumValue, &new_value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
*value = (XtArgVal)new_value;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNminimumValue, (int *) value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case Offset(maximum_value):
|
|
Packit |
b099d7 |
#ifdef FIX_1530
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int new_value;
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNmaximumValue, &new_value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
*value = (XtArgVal)new_value;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNmaximumValue, (int *) value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case Offset(num_values):
|
|
Packit |
b099d7 |
#ifdef FIX_1530
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int new_value;
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNnumValues, &new_value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
*value = (XtArgVal)new_value;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNnumValues, (int *) value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case Offset(position):
|
|
Packit |
b099d7 |
#ifdef FIX_1530
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int new_value;
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNposition, &new_value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
*value = (XtArgVal)new_value;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNposition, (int *) value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case Offset(position_type):
|
|
Packit |
b099d7 |
#ifdef FIX_1530
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
unsigned char new_value;
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNpositionType, &new_value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
*value = (XtArgVal)new_value;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNpositionType, (unsigned char *) value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case Offset(sb_child_type):
|
|
Packit |
b099d7 |
#ifdef FIX_1530
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
unsigned char new_value;
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNspinBoxChildType, &new_value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
*value = (XtArgVal)new_value;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNspinBoxChildType, (unsigned char *) value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case Offset(values):
|
|
Packit |
b099d7 |
#ifdef FIX_1530
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmStringTable new_value;
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNvalues, &new_value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
*value = (XtArgVal)new_value;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNvalues, (XmStringTable *) value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case Offset(wrap):
|
|
Packit |
b099d7 |
#ifdef FIX_1530
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Boolean new_value;
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNwrap, &new_value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
*value = (XtArgVal)new_value;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_w->simpleSpinBox.text_field,
|
|
Packit |
b099d7 |
XmNwrap, (Boolean *) value,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
default:
|
|
Packit |
b099d7 |
fprintf(stderr,
|
|
Packit |
b099d7 |
"SimpleSpinBox ERROR: Invalid synthetic resource offset %d\n",
|
|
Packit |
b099d7 |
offset);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/******************************************************************************
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
*** EVENT HANDLERS
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
*****************************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/******************************************************************************
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
*** ACTIONS
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
*****************************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/******************************************************************************
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
*** OTHER FUNCTIONS
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
*****************************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Public API
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
* XmCreateSimpleSpinBox
|
|
Packit |
b099d7 |
* Create an instance of a Spin widget and return the widget id.
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
Widget
|
|
Packit |
b099d7 |
XmCreateSimpleSpinBox( Widget parent,
|
|
Packit |
b099d7 |
String name,
|
|
Packit |
b099d7 |
ArgList arglist,
|
|
Packit |
b099d7 |
Cardinal argcount)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return(XtCreateWidget(name, xmSimpleSpinBoxWidgetClass, parent,
|
|
Packit |
b099d7 |
arglist, argcount));
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Widget
|
|
Packit |
b099d7 |
XmVaCreateSimpleSpinBox(
|
|
Packit |
b099d7 |
Widget parent,
|
|
Packit |
b099d7 |
char *name,
|
|
Packit |
b099d7 |
...)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
register Widget w;
|
|
Packit |
b099d7 |
va_list var;
|
|
Packit |
b099d7 |
int count;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Va_start(var,name);
|
|
Packit |
b099d7 |
count = XmeCountVaListSimple(var);
|
|
Packit |
b099d7 |
va_end(var);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Va_start(var, name);
|
|
Packit |
b099d7 |
w = XmeVLCreateWidget(name,
|
|
Packit |
b099d7 |
xmSimpleSpinBoxWidgetClass,
|
|
Packit |
b099d7 |
parent, False,
|
|
Packit |
b099d7 |
var, count);
|
|
Packit |
b099d7 |
va_end(var);
|
|
Packit |
b099d7 |
return w;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Widget
|
|
Packit |
b099d7 |
XmVaCreateManagedSimpleSpinBox(
|
|
Packit |
b099d7 |
Widget parent,
|
|
Packit |
b099d7 |
char *name,
|
|
Packit |
b099d7 |
...)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Widget w = NULL;
|
|
Packit |
b099d7 |
va_list var;
|
|
Packit |
b099d7 |
int count;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Va_start(var, name);
|
|
Packit |
b099d7 |
count = XmeCountVaListSimple(var);
|
|
Packit |
b099d7 |
va_end(var);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Va_start(var, name);
|
|
Packit |
b099d7 |
w = XmeVLCreateWidget(name,
|
|
Packit |
b099d7 |
xmSimpleSpinBoxWidgetClass,
|
|
Packit |
b099d7 |
parent, True,
|
|
Packit |
b099d7 |
var, count);
|
|
Packit |
b099d7 |
va_end(var);
|
|
Packit |
b099d7 |
return w;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
* XmSimpleSpinBoxAddItem
|
|
Packit |
b099d7 |
* Add an item to the list of strings at the specified position.
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
XmSimpleSpinBoxAddItem( Widget ssb_w,
|
|
Packit |
b099d7 |
XmString item,
|
|
Packit |
b099d7 |
int pos)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmSimpleSpinBoxPart *ssb_p = SSB_SIMPLE_SPIN_BOX_PART(ssb_w);
|
|
Packit |
b099d7 |
XmSpinBoxConstraint textf_c;
|
|
Packit |
b099d7 |
XmStringTable values;
|
|
Packit |
b099d7 |
int new_nvalues;
|
|
Packit |
b099d7 |
int i;
|
|
Packit |
b099d7 |
_XmWidgetToAppContext(ssb_w);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmAppLock(app);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Get the latest resource values for the SimpleSpinBox child.
|
|
Packit |
b099d7 |
* These may have been changed either by internal operation
|
|
Packit |
b099d7 |
* of the SpinBox or by the application doing a SetValues on
|
|
Packit |
b099d7 |
* the SimpleSpinBox child.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_p->text_field,
|
|
Packit |
b099d7 |
XmNarrowSensitivity, &ssb_p->arrow_sensitivity,
|
|
Packit |
b099d7 |
XmNdecimalPoints, &ssb_p->decimal_points,
|
|
Packit |
b099d7 |
XmNincrementValue, &ssb_p->increment_value,
|
|
Packit |
b099d7 |
XmNmaximumValue, &ssb_p->maximum_value,
|
|
Packit |
b099d7 |
XmNminimumValue, &ssb_p->minimum_value,
|
|
Packit |
b099d7 |
XmNnumValues, &ssb_p->num_values,
|
|
Packit |
b099d7 |
XmNposition, &ssb_p->position,
|
|
Packit |
b099d7 |
XmNspinBoxChildType, &ssb_p->sb_child_type,
|
|
Packit |
b099d7 |
XmNvalues, &ssb_p->values,
|
|
Packit |
b099d7 |
XmNwrap, &ssb_p->wrap,
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmNeditable, &ssb_p->editable,
|
|
Packit |
b099d7 |
XmNcolumns, &ssb_p->columns,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Error checking.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if (ssb_p->sb_child_type != XmSTRING) {
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
return;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (item == (XmString) NULL) {
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
return;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* BINARY COMPATIBILITY with DTSPINBOX
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* User gives pos starting at 1 (0 means end of list)
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
pos--;
|
|
Packit |
b099d7 |
if ((pos < 0) || (pos > ssb_p->num_values))
|
|
Packit |
b099d7 |
pos = ssb_p->num_values;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
new_nvalues = ssb_p->num_values + 1;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Keep the position up to date.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if (ssb_p->position > pos)
|
|
Packit |
b099d7 |
ssb_p->position++;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Copy the current array of values adding in the new item.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
values = (XmStringTable)
|
|
Packit |
b099d7 |
XtRealloc((char *) NULL, sizeof(XmString) * new_nvalues);
|
|
Packit |
b099d7 |
if (values == (XmStringTable) NULL) {
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
return;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
for (i=0; i
|
|
Packit |
b099d7 |
values[i] = XmStringCopy(ssb_p->values[i]);
|
|
Packit |
b099d7 |
values[pos] = XmStringCopy(item);
|
|
Packit |
b099d7 |
for (i=pos+1; i
|
|
Packit |
b099d7 |
values[i] = XmStringCopy(ssb_p->values[i-1]);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Set the values array in the parent and save the XmStringTable.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
XtVaSetValues(ssb_p->text_field,
|
|
Packit |
b099d7 |
XmNvalues, values,
|
|
Packit |
b099d7 |
XmNnumValues, new_nvalues,
|
|
Packit |
b099d7 |
XmNposition, ssb_p->position,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
textf_c = SB_GetConstraintRec(ssb_p->text_field);
|
|
Packit |
b099d7 |
ssb_p->values = textf_c->values;
|
|
Packit |
b099d7 |
ssb_p->num_values = textf_c->num_values;
|
|
Packit |
b099d7 |
ssb_p->position = textf_c->position;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Free up the memory in the values array.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
for (i=0; i
|
|
Packit |
b099d7 |
if (values[i] != (XmString) NULL)
|
|
Packit |
b099d7 |
XmStringFree(values[i]);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtFree((char *) values);
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
* XmSimpleSpinBoxDeletePos
|
|
Packit |
b099d7 |
* Delete the item at the specified position from the list of strings.
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
XmSimpleSpinBoxDeletePos(
|
|
Packit |
b099d7 |
Widget ssb_w,
|
|
Packit |
b099d7 |
int pos)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmSimpleSpinBoxPart *ssb_p = SSB_SIMPLE_SPIN_BOX_PART(ssb_w);
|
|
Packit |
b099d7 |
XmSpinBoxConstraint textf_c;
|
|
Packit |
b099d7 |
int i, skipped;
|
|
Packit |
b099d7 |
int new_nvalues;
|
|
Packit |
b099d7 |
XmStringTable values;
|
|
Packit |
b099d7 |
_XmWidgetToAppContext(ssb_w);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmAppLock(app);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Get the latest resource values for the SimpleSpinBox child.
|
|
Packit |
b099d7 |
* These may have been changed either by internal operation
|
|
Packit |
b099d7 |
* of the SpinBox or by the application doing a SetValues on
|
|
Packit |
b099d7 |
* the SimpleSpinBox child.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_p->text_field,
|
|
Packit |
b099d7 |
XmNarrowSensitivity, &ssb_p->arrow_sensitivity,
|
|
Packit |
b099d7 |
XmNdecimalPoints, &ssb_p->decimal_points,
|
|
Packit |
b099d7 |
XmNincrementValue, &ssb_p->increment_value,
|
|
Packit |
b099d7 |
XmNmaximumValue, &ssb_p->maximum_value,
|
|
Packit |
b099d7 |
XmNminimumValue, &ssb_p->minimum_value,
|
|
Packit |
b099d7 |
XmNnumValues, &ssb_p->num_values,
|
|
Packit |
b099d7 |
XmNposition, &ssb_p->position,
|
|
Packit |
b099d7 |
XmNspinBoxChildType, &ssb_p->sb_child_type,
|
|
Packit |
b099d7 |
XmNvalues, &ssb_p->values,
|
|
Packit |
b099d7 |
XmNwrap, &ssb_p->wrap,
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmNeditable, &ssb_p->editable,
|
|
Packit |
b099d7 |
XmNcolumns, &ssb_p->columns,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Error checking.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if ((ssb_p->sb_child_type != XmSTRING) || (ssb_p->num_values < 1)) {
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
return;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* BINARY COMPATIBILITY with DTSPINBOX
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* User gives pos starting at 1 (0 means end of list)
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
pos--;
|
|
Packit |
b099d7 |
if ((pos < 0) || (pos > ssb_p->num_values))
|
|
Packit |
b099d7 |
pos = ssb_p->num_values - 1;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
new_nvalues = ssb_p->num_values - 1;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Keep the position up to date.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if (ssb_p->position > pos)
|
|
Packit |
b099d7 |
ssb_p->position--;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Copy the current array of values skipping the item in position 'pos'.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
values = (XmStringTable)
|
|
Packit |
b099d7 |
XtRealloc((char *) NULL, sizeof(XmString) * new_nvalues);
|
|
Packit |
b099d7 |
if (values == (XmStringTable) NULL) {
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
return;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
for (i=0, skipped=0; i<ssb_p->num_values; i++)
|
|
Packit |
b099d7 |
if (i != pos)
|
|
Packit |
b099d7 |
values[i-skipped] = XmStringCopy(ssb_p->values[i]);
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
skipped++;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Set the values array in the parent and save the XmStringTable.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
XtVaSetValues(ssb_p->text_field,
|
|
Packit |
b099d7 |
XmNvalues, values,
|
|
Packit |
b099d7 |
XmNnumValues, new_nvalues,
|
|
Packit |
b099d7 |
XmNposition, ssb_p->position,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
textf_c = SB_GetConstraintRec(ssb_p->text_field);
|
|
Packit |
b099d7 |
ssb_p->values = textf_c->values;
|
|
Packit |
b099d7 |
ssb_p->num_values = textf_c->num_values;
|
|
Packit |
b099d7 |
ssb_p->position = textf_c->position;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Free up the memory in the values array.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
for (i=0; i
|
|
Packit |
b099d7 |
if (values[i] != (XmString) NULL)
|
|
Packit |
b099d7 |
XmStringFree(values[i]);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtFree((char *) values);
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
* XmSimpleSpinBoxDeletePos
|
|
Packit |
b099d7 |
* Make the given item the currently visible item in the text-field
|
|
Packit |
b099d7 |
* or label.
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
XmSimpleSpinBoxSetItem( Widget ssb_w,
|
|
Packit |
b099d7 |
XmString item)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmSimpleSpinBoxPart *ssb_p = SSB_SIMPLE_SPIN_BOX_PART(ssb_w);
|
|
Packit |
b099d7 |
XmSpinBoxConstraint textf_c;
|
|
Packit |
b099d7 |
int pos;
|
|
Packit |
b099d7 |
Arg args[1];
|
|
Packit |
b099d7 |
_XmWidgetToAppContext(ssb_w);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmAppLock(app);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Get the latest resource values for the SimpleSpinBox child.
|
|
Packit |
b099d7 |
* These may have been changed either by internal operation
|
|
Packit |
b099d7 |
* of the SpinBox or by the application doing a SetValues on
|
|
Packit |
b099d7 |
* the SimpleSpinBox child.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
XtVaGetValues(ssb_p->text_field,
|
|
Packit |
b099d7 |
XmNarrowSensitivity, &ssb_p->arrow_sensitivity,
|
|
Packit |
b099d7 |
XmNdecimalPoints, &ssb_p->decimal_points,
|
|
Packit |
b099d7 |
XmNincrementValue, &ssb_p->increment_value,
|
|
Packit |
b099d7 |
XmNmaximumValue, &ssb_p->maximum_value,
|
|
Packit |
b099d7 |
XmNminimumValue, &ssb_p->minimum_value,
|
|
Packit |
b099d7 |
XmNnumValues, &ssb_p->num_values,
|
|
Packit |
b099d7 |
XmNposition, &ssb_p->position,
|
|
Packit |
b099d7 |
XmNspinBoxChildType, &ssb_p->sb_child_type,
|
|
Packit |
b099d7 |
XmNvalues, &ssb_p->values,
|
|
Packit |
b099d7 |
XmNwrap, &ssb_p->wrap,
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmNeditable, &ssb_p->editable,
|
|
Packit |
b099d7 |
XmNcolumns, &ssb_p->columns,
|
|
Packit |
b099d7 |
NULL);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (item && ssb_p->num_values > 0) {
|
|
Packit |
b099d7 |
for (pos=0; pos<ssb_p->num_values; pos++)
|
|
Packit |
b099d7 |
if (XmStringCompare(item, ssb_p->values[pos]))
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (pos < ssb_p->num_values) {
|
|
Packit |
b099d7 |
XtSetArg(args[0], XmNposition, pos);
|
|
Packit |
b099d7 |
XtSetValues(ssb_p->text_field, args, 1);
|
|
Packit |
b099d7 |
textf_c = SB_GetConstraintRec(ssb_p->text_field);
|
|
Packit |
b099d7 |
ssb_p->position = textf_c->position;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
XmeWarning((Widget) ssb_w, BAD_SSPIN_SET_ITEM);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
_XmAppUnlock(app);
|
|
Packit |
b099d7 |
}
|