|
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 |
#ifdef REV_INFO
|
|
Packit |
b099d7 |
#ifndef lint
|
|
Packit |
b099d7 |
static char rcsid[] = "$TOG: Primitive.c /main/25 1999/01/27 16:08:04 mgreess $"
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
/* (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef HAVE_CONFIG_H
|
|
Packit |
b099d7 |
#include <config.h>
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <Xm/AccColorT.h>
|
|
Packit |
b099d7 |
#include <Xm/ActivatableT.h>
|
|
Packit |
b099d7 |
#include <Xm/CareVisualT.h>
|
|
Packit |
b099d7 |
#include <Xm/DrawP.h>
|
|
Packit |
b099d7 |
#include <Xm/DisplayP.h>
|
|
Packit |
b099d7 |
#include <Xm/GadgetP.h>
|
|
Packit |
b099d7 |
#include <Xm/LayoutT.h>
|
|
Packit |
b099d7 |
#include <Xm/ManagerP.h>
|
|
Packit |
b099d7 |
#include <Xm/TraitP.h>
|
|
Packit |
b099d7 |
#include <Xm/TransltnsP.h>
|
|
Packit |
b099d7 |
#include <Xm/UnitTypeT.h>
|
|
Packit |
b099d7 |
#include <Xm/UnhighlightT.h>
|
|
Packit |
b099d7 |
#include "BaseClassI.h"
|
|
Packit |
b099d7 |
#include "ColorI.h"
|
|
Packit |
b099d7 |
#include "MessagesI.h"
|
|
Packit |
b099d7 |
#include "PixConvI.h"
|
|
Packit |
b099d7 |
#include "PrimitiveI.h"
|
|
Packit |
b099d7 |
#include "RepTypeI.h"
|
|
Packit |
b099d7 |
#include "ResConverI.h"
|
|
Packit |
b099d7 |
#include "ResIndI.h"
|
|
Packit |
b099d7 |
#include "SyntheticI.h"
|
|
Packit |
b099d7 |
#include "ToolTipI.h"
|
|
Packit |
b099d7 |
#include "TraitI.h"
|
|
Packit |
b099d7 |
#include "TravActI.h"
|
|
Packit |
b099d7 |
#include "TraversalI.h"
|
|
Packit |
b099d7 |
#include "UniqueEvnI.h"
|
|
Packit |
b099d7 |
#include "XmI.h"
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define MESSAGE1 _XmMMsgPrimitive_0000
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/******** Static Function Declarations ********/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void GetXFromShell(
|
|
Packit |
b099d7 |
Widget wid,
|
|
Packit |
b099d7 |
int resource_offset,
|
|
Packit |
b099d7 |
XtArgVal *value) ;
|
|
Packit |
b099d7 |
static void GetYFromShell(
|
|
Packit |
b099d7 |
Widget wid,
|
|
Packit |
b099d7 |
int resource_offset,
|
|
Packit |
b099d7 |
XtArgVal *value) ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void ClassInitialize( void ) ;
|
|
Packit |
b099d7 |
static void BuildPrimitiveResources(
|
|
Packit |
b099d7 |
WidgetClass c ) ;
|
|
Packit |
b099d7 |
static void ClassPartInitialize(
|
|
Packit |
b099d7 |
WidgetClass w) ;
|
|
Packit |
b099d7 |
static void Initialize(
|
|
Packit |
b099d7 |
Widget rw,
|
|
Packit |
b099d7 |
Widget nw,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args) ;
|
|
Packit |
b099d7 |
static void Realize(
|
|
Packit |
b099d7 |
register Widget w,
|
|
Packit |
b099d7 |
XtValueMask *p_valueMask,
|
|
Packit |
b099d7 |
XSetWindowAttributes *attributes) ;
|
|
Packit |
b099d7 |
static void Destroy(
|
|
Packit |
b099d7 |
Widget w) ;
|
|
Packit |
b099d7 |
static void Redisplay (
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XEvent *event,
|
|
Packit |
b099d7 |
Region region);
|
|
Packit |
b099d7 |
static Boolean SetValues(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget request,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args) ;
|
|
Packit |
b099d7 |
static void HighlightBorder(
|
|
Packit |
b099d7 |
Widget w) ;
|
|
Packit |
b099d7 |
static void UnhighlightBorder(
|
|
Packit |
b099d7 |
Widget w) ;
|
|
Packit |
b099d7 |
static XmNavigability WidgetNavigable(
|
|
Packit |
b099d7 |
Widget wid) ;
|
|
Packit |
b099d7 |
static void FocusChange(
|
|
Packit |
b099d7 |
Widget wid,
|
|
Packit |
b099d7 |
XmFocusChange change) ;
|
|
Packit |
b099d7 |
static Boolean Redraw (Widget kid,
|
|
Packit |
b099d7 |
Widget cur_parent,
|
|
Packit |
b099d7 |
Widget new_parent,
|
|
Packit |
b099d7 |
Mask visual_flag);
|
|
Packit |
b099d7 |
static XmDirection GetDirection(Widget);
|
|
Packit |
b099d7 |
static void GetColors(Widget widget,
|
|
Packit |
b099d7 |
XmAccessColorData color_data);
|
|
Packit |
b099d7 |
static unsigned char GetUnitType(Widget);
|
|
Packit |
b099d7 |
static void GetToolTipString(
|
|
Packit |
b099d7 |
Widget wid,
|
|
Packit |
b099d7 |
int resource, /* unused */
|
|
Packit |
b099d7 |
XtArgVal * value);
|
|
Packit |
b099d7 |
static XmImportOperator SetToolTipString(
|
|
Packit |
b099d7 |
Widget wid,
|
|
Packit |
b099d7 |
int resource, /* unused */
|
|
Packit |
b099d7 |
XtArgVal * value);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/******** End Static Function Declarations ********/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Default translation table
|
|
Packit |
b099d7 |
* These translations will be compiled at class initialize. When
|
|
Packit |
b099d7 |
* a subclass of primitive is created then these translations will
|
|
Packit |
b099d7 |
* be used to augment the translations of the subclass IFF
|
|
Packit |
b099d7 |
* traversal is on. The SetValues routine will also augment
|
|
Packit |
b099d7 |
* a subclass's translations table IFF traversal goes from off to on.
|
|
Packit |
b099d7 |
* Since we are augmenting it should not be a problem when
|
|
Packit |
b099d7 |
* traversal goes from off to on to off and on again.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#define defaultTranslations _XmPrimitive_defaultTranslations
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Action list.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*************************************<->***********************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtActionsRec actions[] =
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
{"PrimitiveFocusIn", _XmPrimitiveFocusIn},
|
|
Packit |
b099d7 |
{"PrimitiveFocusOut", _XmPrimitiveFocusOut},
|
|
Packit |
b099d7 |
{"PrimitiveUnmap", _XmPrimitiveUnmap},
|
|
Packit |
b099d7 |
{"PrimitiveHelp", _XmPrimitiveHelp},
|
|
Packit |
b099d7 |
{"PrimitiveEnter", _XmPrimitiveEnter},
|
|
Packit |
b099d7 |
{"PrimitiveLeave", _XmPrimitiveLeave},
|
|
Packit |
b099d7 |
{"PrimitiveTraverseLeft", _XmTraverseLeft},
|
|
Packit |
b099d7 |
{"PrimitiveTraverseRight", _XmTraverseRight},
|
|
Packit |
b099d7 |
{"PrimitiveTraverseUp", _XmTraverseUp },
|
|
Packit |
b099d7 |
{"PrimitiveTraverseDown", _XmTraverseDown },
|
|
Packit |
b099d7 |
{"PrimitiveTraverseNext", _XmTraverseNext },
|
|
Packit |
b099d7 |
{"PrimitiveTraversePrev", _XmTraversePrev },
|
|
Packit |
b099d7 |
{"PrimitiveTraverseHome", _XmTraverseHome },
|
|
Packit |
b099d7 |
{"PrimitiveNextTabGroup", _XmTraverseNextTabGroup },
|
|
Packit |
b099d7 |
{"PrimitivePrevTabGroup", _XmTraversePrevTabGroup },
|
|
Packit |
b099d7 |
{"PrimitiveParentActivate", _XmPrimitiveParentActivate },
|
|
Packit |
b099d7 |
{"PrimitiveParentCancel", _XmPrimitiveParentCancel },
|
|
Packit |
b099d7 |
{"unmap", _XmPrimitiveUnmap}, /* Motif 1.0 BC. */
|
|
Packit |
b099d7 |
{"Help", _XmPrimitiveHelp}, /* Motif 1.0 BC. */
|
|
Packit |
b099d7 |
{"enter", _XmPrimitiveEnter}, /* Motif 1.0 BC. */
|
|
Packit |
b099d7 |
{"leave", _XmPrimitiveLeave}, /* Motif 1.0 BC. */
|
|
Packit |
b099d7 |
{"PrevTabGroup", _XmTraversePrevTabGroup},/* Motif 1.0 BC. */
|
|
Packit |
b099d7 |
{"NextTabGroup", _XmTraverseNextTabGroup},/* Motif 1.0 BC. */
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*****************************************/
|
|
Packit |
b099d7 |
/* Resource definitions for XmPrimitive */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtResource resources[] =
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNunitType, XmCUnitType, XmRUnitType,
|
|
Packit |
b099d7 |
sizeof (unsigned char), XtOffsetOf(XmPrimitiveRec, primitive.unit_type),
|
|
Packit |
b099d7 |
XmRCallProc, (XtPointer) _XmUnitTypeDefault
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNx, XmCPosition, XmRHorizontalPosition,
|
|
Packit |
b099d7 |
sizeof(Position), XtOffsetOf(WidgetRec, core.x),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) 0
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNy, XmCPosition, XmRVerticalPosition,
|
|
Packit |
b099d7 |
sizeof(Position), XtOffsetOf(WidgetRec, core.y),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) 0
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNwidth, XmCDimension, XmRHorizontalDimension,
|
|
Packit |
b099d7 |
sizeof(Dimension), XtOffsetOf(WidgetRec, core.width),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) 0
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNheight, XmCDimension, XmRVerticalDimension,
|
|
Packit |
b099d7 |
sizeof(Dimension), XtOffsetOf(WidgetRec, core.height),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) 0
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNborderWidth, XmCBorderWidth, XmRHorizontalDimension,
|
|
Packit |
b099d7 |
sizeof(Dimension), XtOffsetOf(WidgetRec, core.border_width),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) 0
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNforeground, XmCForeground, XmRPixel,
|
|
Packit |
b099d7 |
sizeof (Pixel), XtOffsetOf(XmPrimitiveRec, primitive.foreground),
|
|
Packit |
b099d7 |
XmRCallProc, (XtPointer) _XmForegroundColorDefault
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNbackground, XmCBackground, XmRPixel,
|
|
Packit |
b099d7 |
sizeof (Pixel), XtOffsetOf(WidgetRec, core.background_pixel),
|
|
Packit |
b099d7 |
XmRCallProc, (XtPointer) _XmBackgroundColorDefault
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNtraversalOn, XmCTraversalOn, XmRBoolean,
|
|
Packit |
b099d7 |
sizeof (Boolean), XtOffsetOf(XmPrimitiveRec, primitive.traversal_on),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) True
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNhighlightOnEnter, XmCHighlightOnEnter, XmRBoolean,
|
|
Packit |
b099d7 |
sizeof(Boolean),
|
|
Packit |
b099d7 |
XtOffsetOf(XmPrimitiveRec, primitive.highlight_on_enter),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) False
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNnavigationType, XmCNavigationType, XmRNavigationType,
|
|
Packit |
b099d7 |
sizeof (unsigned char),
|
|
Packit |
b099d7 |
XtOffsetOf(XmPrimitiveRec, primitive.navigation_type),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) XmNONE
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNhighlightThickness, XmCHighlightThickness, XmRHorizontalDimension,
|
|
Packit |
b099d7 |
sizeof (Dimension),
|
|
Packit |
b099d7 |
XtOffsetOf(XmPrimitiveRec, primitive.highlight_thickness),
|
|
Packit |
b099d7 |
XmRCallProc, (XtPointer) _XmSetThickness
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNhighlightColor, XmCHighlightColor, XmRPixel,
|
|
Packit |
b099d7 |
sizeof (Pixel), XtOffsetOf(XmPrimitiveRec, primitive.highlight_color),
|
|
Packit |
b099d7 |
XmRCallProc, (XtPointer) _XmHighlightColorDefault
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNshadowThickness, XmCShadowThickness, XmRHorizontalDimension,
|
|
Packit |
b099d7 |
sizeof (Dimension),
|
|
Packit |
b099d7 |
XtOffsetOf(XmPrimitiveRec, primitive.shadow_thickness),
|
|
Packit |
b099d7 |
XmRCallProc, (XtPointer) _XmSetThickness
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNtopShadowColor, XmCTopShadowColor, XmRPixel,
|
|
Packit |
b099d7 |
sizeof (Pixel),
|
|
Packit |
b099d7 |
XtOffsetOf(XmPrimitiveRec, primitive.top_shadow_color),
|
|
Packit |
b099d7 |
XmRCallProc, (XtPointer) _XmTopShadowColorDefault
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNbottomShadowColor, XmCBottomShadowColor, XmRPixel,
|
|
Packit |
b099d7 |
sizeof (Pixel),
|
|
Packit |
b099d7 |
XtOffsetOf(XmPrimitiveRec, primitive.bottom_shadow_color),
|
|
Packit |
b099d7 |
XmRCallProc, (XtPointer) _XmBottomShadowColorDefault
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNbackgroundPixmap, XmCPixmap, XmRPixmap,
|
|
Packit |
b099d7 |
sizeof (Pixmap), XtOffsetOf(WidgetRec, core.background_pixmap),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) XmUNSPECIFIED_PIXMAP
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNhighlightPixmap, XmCHighlightPixmap, XmRNoScalingDynamicPixmap,
|
|
Packit |
b099d7 |
sizeof (Pixmap), XtOffsetOf(XmPrimitiveRec, primitive.highlight_pixmap),
|
|
Packit |
b099d7 |
XmRCallProc, (XtPointer) _XmHighlightPixmapDefault
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNtopShadowPixmap, XmCTopShadowPixmap, XmRNoScalingDynamicPixmap,
|
|
Packit |
b099d7 |
sizeof (Pixmap),
|
|
Packit |
b099d7 |
XtOffsetOf(XmPrimitiveRec, primitive.top_shadow_pixmap),
|
|
Packit |
b099d7 |
XmRCallProc, (XtPointer) _XmTopShadowPixmapDefault
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNbottomShadowPixmap, XmCBottomShadowPixmap, XmRNoScalingDynamicPixmap,
|
|
Packit |
b099d7 |
sizeof (Pixmap),
|
|
Packit |
b099d7 |
XtOffsetOf(XmPrimitiveRec, primitive.bottom_shadow_pixmap),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) XmUNSPECIFIED_PIXMAP
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNhelpCallback, XmCCallback, XmRCallback,
|
|
Packit |
b099d7 |
sizeof(XtCallbackList),
|
|
Packit |
b099d7 |
XtOffsetOf(XmPrimitiveRec, primitive.help_callback),
|
|
Packit |
b099d7 |
XmRPointer, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNuserData, XmCUserData, XmRPointer,
|
|
Packit |
b099d7 |
sizeof(XtPointer),
|
|
Packit |
b099d7 |
XtOffsetOf(XmPrimitiveRec, primitive.user_data),
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifndef XM_PART_BC
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNpopupHandlerCallback, XmCCallback, XmRCallback,
|
|
Packit |
b099d7 |
sizeof(XtCallbackList),
|
|
Packit |
b099d7 |
XtOffsetOf(XmPrimitiveRec, primitive.popup_handler_callback),
|
|
Packit |
b099d7 |
XmRPointer, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNconvertCallback, XmCCallback, XmRCallback, sizeof(XtCallbackList),
|
|
Packit |
b099d7 |
XtOffsetOf(XmPrimitiveRec, primitive.convert_callback),
|
|
Packit |
b099d7 |
XmRCallback, NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNlayoutDirection, XmCLayoutDirection, XmRDirection,
|
|
Packit |
b099d7 |
sizeof(XmDirection),
|
|
Packit |
b099d7 |
XtOffsetOf(XmPrimitiveRec, primitive.layout_direction),
|
|
Packit |
b099d7 |
XmRCallProc, (XtPointer) _XmDirectionDefault
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef XM_PART_BC
|
|
Packit |
b099d7 |
XmDirection XmPrimLayoutDir = XmDEFAULT_DIRECTION ;
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/***************************************/
|
|
Packit |
b099d7 |
/* Definition for synthetic resources */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XmSyntheticResource syn_resources[] =
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
{ XmNx,
|
|
Packit |
b099d7 |
sizeof (Position), XtOffsetOf(WidgetRec, core.x),
|
|
Packit |
b099d7 |
GetXFromShell, XmeToHorizontalPixels },
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{ XmNy,
|
|
Packit |
b099d7 |
sizeof (Position), XtOffsetOf(WidgetRec, core.y),
|
|
Packit |
b099d7 |
GetYFromShell, XmeToVerticalPixels },
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{ XmNwidth,
|
|
Packit |
b099d7 |
sizeof (Dimension), XtOffsetOf(WidgetRec, core.width),
|
|
Packit |
b099d7 |
XmeFromHorizontalPixels, XmeToHorizontalPixels },
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{ XmNheight,
|
|
Packit |
b099d7 |
sizeof (Dimension), XtOffsetOf(WidgetRec, core.height),
|
|
Packit |
b099d7 |
XmeFromVerticalPixels, XmeToVerticalPixels },
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{ XmNborderWidth,
|
|
Packit |
b099d7 |
sizeof (Dimension), XtOffsetOf(WidgetRec, core.border_width),
|
|
Packit |
b099d7 |
XmeFromHorizontalPixels, XmeToHorizontalPixels },
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{ XmNhighlightThickness,
|
|
Packit |
b099d7 |
sizeof (Dimension),
|
|
Packit |
b099d7 |
XtOffsetOf(XmPrimitiveRec, primitive.highlight_thickness),
|
|
Packit |
b099d7 |
XmeFromHorizontalPixels, XmeToHorizontalPixels },
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{ XmNshadowThickness,
|
|
Packit |
b099d7 |
sizeof (Dimension),
|
|
Packit |
b099d7 |
XtOffsetOf(XmPrimitiveRec, primitive.shadow_thickness),
|
|
Packit |
b099d7 |
XmeFromHorizontalPixels, XmeToHorizontalPixels },
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{ XmNtoolTipString,
|
|
Packit |
b099d7 |
0,
|
|
Packit |
b099d7 |
0,
|
|
Packit |
b099d7 |
GetToolTipString, SetToolTipString }
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*******************************************/
|
|
Packit |
b099d7 |
/* Declaration of class extension records */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XmBaseClassExtRec baseClassExtRec = {
|
|
Packit |
b099d7 |
NULL,
|
|
Packit |
b099d7 |
NULLQUARK,
|
|
Packit |
b099d7 |
XmBaseClassExtVersion,
|
|
Packit |
b099d7 |
sizeof(XmBaseClassExtRec),
|
|
Packit |
b099d7 |
NULL, /* InitializePrehook */
|
|
Packit |
b099d7 |
NULL, /* SetValuesPrehook */
|
|
Packit |
b099d7 |
NULL, /* InitializePosthook */
|
|
Packit |
b099d7 |
NULL, /* SetValuesPosthook */
|
|
Packit |
b099d7 |
NULL, /* secondaryObjectClass */
|
|
Packit |
b099d7 |
NULL, /* secondaryCreate */
|
|
Packit |
b099d7 |
NULL, /* getSecRes data */
|
|
Packit |
b099d7 |
{ 0 }, /* fastSubclass flags */
|
|
Packit |
b099d7 |
NULL, /* get_values_prehook */
|
|
Packit |
b099d7 |
NULL, /* get_values_posthook */
|
|
Packit |
b099d7 |
NULL, /* classPartInitPrehook */
|
|
Packit |
b099d7 |
NULL, /* classPartInitPosthook*/
|
|
Packit |
b099d7 |
NULL, /* ext_resources */
|
|
Packit |
b099d7 |
NULL, /* compiled_ext_resources*/
|
|
Packit |
b099d7 |
0, /* num_ext_resources */
|
|
Packit |
b099d7 |
FALSE, /* use_sub_resources */
|
|
Packit |
b099d7 |
WidgetNavigable, /* widgetNavigable */
|
|
Packit |
b099d7 |
FocusChange, /* focusChange */
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XmPrimitiveClassExtRec primClassExtRec = {
|
|
Packit |
b099d7 |
NULL,
|
|
Packit |
b099d7 |
NULLQUARK,
|
|
Packit |
b099d7 |
XmPrimitiveClassExtVersion,
|
|
Packit |
b099d7 |
sizeof(XmPrimitiveClassExtRec),
|
|
Packit |
b099d7 |
NULL, /* widget_baseline */
|
|
Packit |
b099d7 |
NULL, /* widget_display_rect */
|
|
Packit |
b099d7 |
NULL /* widget_margins */
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*******************************************/
|
|
Packit |
b099d7 |
/* The Primitive class record definition */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
externaldef(xmprimitiveclassrec) XmPrimitiveClassRec xmPrimitiveClassRec =
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
(WidgetClass) &widgetClassRec, /* superclass */
|
|
Packit |
b099d7 |
"XmPrimitive", /* class_name */
|
|
Packit |
b099d7 |
sizeof(XmPrimitiveRec), /* widget_size */
|
|
Packit |
b099d7 |
ClassInitialize, /* class_initialize */
|
|
Packit |
b099d7 |
ClassPartInitialize, /* class_part_initialize */
|
|
Packit |
b099d7 |
False, /* class_inited */
|
|
Packit |
b099d7 |
Initialize, /* initialize */
|
|
Packit |
b099d7 |
NULL, /* initialize_hook */
|
|
Packit |
b099d7 |
Realize, /* realize */
|
|
Packit |
b099d7 |
actions, /* actions */
|
|
Packit |
b099d7 |
XtNumber(actions), /* 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 |
XtExposeNoRegion,
|
|
Packit |
b099d7 |
True, /* compress_enterleave */
|
|
Packit |
b099d7 |
False, /* visible_interest */
|
|
Packit |
b099d7 |
Destroy, /* destroy */
|
|
Packit |
b099d7 |
NULL, /* resize */
|
|
Packit |
b099d7 |
Redisplay, /* expose */
|
|
Packit |
b099d7 |
SetValues, /* set_values */
|
|
Packit |
b099d7 |
NULL, /* set_values_hook */
|
|
Packit |
b099d7 |
XtInheritSetValuesAlmost, /* set_values_almost */
|
|
Packit |
b099d7 |
_XmPrimitiveGetValuesHook, /* get_values_hook */
|
|
Packit |
b099d7 |
NULL, /* accept_focus */
|
|
Packit |
b099d7 |
XtVersion, /* version */
|
|
Packit |
b099d7 |
NULL, /* callback private */
|
|
Packit |
b099d7 |
NULL, /* tm_table */
|
|
Packit |
b099d7 |
NULL, /* query_geometry */
|
|
Packit |
b099d7 |
NULL, /* display_accelerator */
|
|
Packit |
b099d7 |
(XtPointer)&baseClassExtRec, /* extension */
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
HighlightBorder, /* border_highlight */
|
|
Packit |
b099d7 |
UnhighlightBorder, /* border_unhighlight */
|
|
Packit |
b099d7 |
defaultTranslations, /* translations */
|
|
Packit |
b099d7 |
NULL, /* arm_and_activate */
|
|
Packit |
b099d7 |
syn_resources, /* syn resources */
|
|
Packit |
b099d7 |
XtNumber(syn_resources), /* num_syn_resources */
|
|
Packit |
b099d7 |
(XtPointer)&primClassExtRec, /* extension */
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
externaldef(xmprimitivewidgetclass) WidgetClass xmPrimitiveWidgetClass =
|
|
Packit |
b099d7 |
(WidgetClass) &xmPrimitiveClassRec;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XmConst XmSpecifyLayoutDirectionTraitRec primLDT = {
|
|
Packit |
b099d7 |
0, /* version */
|
|
Packit |
b099d7 |
GetDirection
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Care visual Trait record for Primitive */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XmConst XmCareVisualTraitRec primCVT = {
|
|
Packit |
b099d7 |
0, /* version */
|
|
Packit |
b099d7 |
Redraw,
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Access Colors Trait record for Primitive */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XmConst XmAccessColorsTraitRec primACT = {
|
|
Packit |
b099d7 |
0, /* version */
|
|
Packit |
b099d7 |
GetColors
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Unit Type Trait record for Primitive */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XmConst XmSpecUnitTypeTraitRec primUTT = {
|
|
Packit |
b099d7 |
0, /* version */
|
|
Packit |
b099d7 |
GetUnitType
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/**************************************************************************
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** Synthetic resource hooks function section
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**************************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
GetXFromShell(
|
|
Packit |
b099d7 |
Widget wid,
|
|
Packit |
b099d7 |
int resource_offset,
|
|
Packit |
b099d7 |
XtArgVal *value )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
/* return the x in the child's unit type; for children of shell, return
|
|
Packit |
b099d7 |
** the parent's x relative to the origin, in pixels
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Position rootx, rooty;
|
|
Packit |
b099d7 |
Widget parent = XtParent(wid);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XtIsShell(parent))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XtTranslateCoords( (Widget) wid,
|
|
Packit |
b099d7 |
(Position) 0, (Position) 0, &rootx, &rooty) ;
|
|
Packit |
b099d7 |
*value = (XtArgVal) rootx;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
*value = (XtArgVal) wid->core.x ;
|
|
Packit |
b099d7 |
XmeFromHorizontalPixels(wid, resource_offset, value);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
GetYFromShell(
|
|
Packit |
b099d7 |
Widget wid,
|
|
Packit |
b099d7 |
int resource_offset,
|
|
Packit |
b099d7 |
XtArgVal *value )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
/* return the y in the child's unit type; for children of shell, return
|
|
Packit |
b099d7 |
** the parent's y relative to the origin, in pixels
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
Position rootx, rooty;
|
|
Packit |
b099d7 |
Widget parent = XtParent(wid);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XtIsShell(parent))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XtTranslateCoords( (Widget) wid,
|
|
Packit |
b099d7 |
(Position) 0, (Position) 0, &rootx, &rooty) ;
|
|
Packit |
b099d7 |
*value = (XtArgVal) rooty;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
*value = (XtArgVal) wid->core.y ;
|
|
Packit |
b099d7 |
XmeFromVerticalPixels(wid, resource_offset, value);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* ClassInitialize
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ClassInitialize( void )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
/* These routines are called for each base classes,
|
|
Packit |
b099d7 |
they just returned if it has been done already */
|
|
Packit |
b099d7 |
_XmRegisterConverters();
|
|
Packit |
b099d7 |
_XmRegisterPixmapConverters();
|
|
Packit |
b099d7 |
_XmInitializeExtensions();
|
|
Packit |
b099d7 |
_XmInitializeTraits();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
baseClassExtRec.record_type = XmQmotif;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/**********************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* BuildPrimitiveResources
|
|
Packit |
b099d7 |
* Build up the primitive's synthetic resource processing
|
|
Packit |
b099d7 |
* list by combining the super classes with this class.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
**********************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
BuildPrimitiveResources(
|
|
Packit |
b099d7 |
WidgetClass c )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmPrimitiveWidgetClass wc = (XmPrimitiveWidgetClass) c ;
|
|
Packit |
b099d7 |
XmPrimitiveWidgetClass sc = (XmPrimitiveWidgetClass)
|
|
Packit |
b099d7 |
wc->core_class.superclass;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmInitializeSyntheticResources(wc->primitive_class.syn_resources,
|
|
Packit |
b099d7 |
wc->primitive_class.num_syn_resources);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (sc == (XmPrimitiveWidgetClass) widgetClass) return;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmBuildResources (&(wc->primitive_class.syn_resources),
|
|
Packit |
b099d7 |
&(wc->primitive_class.num_syn_resources),
|
|
Packit |
b099d7 |
sc->primitive_class.syn_resources,
|
|
Packit |
b099d7 |
sc->primitive_class.num_syn_resources);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* ClassPartInitialize
|
|
Packit |
b099d7 |
* Set up the inheritance mechanism for the routines exported by
|
|
Packit |
b099d7 |
* primitives class part.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
ClassPartInitialize(
|
|
Packit |
b099d7 |
WidgetClass w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
static Boolean first_time = TRUE;
|
|
Packit |
b099d7 |
XmPrimitiveWidgetClass wc = (XmPrimitiveWidgetClass) w;
|
|
Packit |
b099d7 |
XmPrimitiveWidgetClass super =
|
|
Packit |
b099d7 |
(XmPrimitiveWidgetClass) wc->core_class.superclass;
|
|
Packit |
b099d7 |
XmPrimitiveClassExt *wcePtr, *scePtr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmFastSubclassInit (w, XmPRIMITIVE_BIT);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*** first deal with inheritance of regular class method */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (wc->primitive_class.border_highlight == XmInheritWidgetProc)
|
|
Packit |
b099d7 |
wc->primitive_class.border_highlight =
|
|
Packit |
b099d7 |
super->primitive_class.border_highlight;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (wc->primitive_class.border_unhighlight == XmInheritWidgetProc)
|
|
Packit |
b099d7 |
wc->primitive_class.border_unhighlight =
|
|
Packit |
b099d7 |
super->primitive_class.border_unhighlight;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (wc->primitive_class.translations == XtInheritTranslations)
|
|
Packit |
b099d7 |
wc->primitive_class.translations =
|
|
Packit |
b099d7 |
super->primitive_class.translations;
|
|
Packit |
b099d7 |
else if (wc->primitive_class.translations)
|
|
Packit |
b099d7 |
wc->primitive_class.translations = (String)
|
|
Packit |
b099d7 |
XtParseTranslationTable(wc->primitive_class.translations);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (wc->primitive_class.arm_and_activate == XmInheritArmAndActivate)
|
|
Packit |
b099d7 |
wc->primitive_class.arm_and_activate =
|
|
Packit |
b099d7 |
super->primitive_class.arm_and_activate;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* synthetic resource management */
|
|
Packit |
b099d7 |
BuildPrimitiveResources((WidgetClass) wc);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*** then look at the extension.
|
|
Packit |
b099d7 |
if it's NULL, create a new one with inherit everywhere,
|
|
Packit |
b099d7 |
then do the inheritance. */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
wcePtr = _XmGetPrimitiveClassExtPtr(wc, NULLQUARK);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (*wcePtr == NULL) {
|
|
Packit |
b099d7 |
*wcePtr = (XmPrimitiveClassExt) XtCalloc(1,
|
|
Packit |
b099d7 |
sizeof(XmPrimitiveClassExtRec)) ;
|
|
Packit |
b099d7 |
(*wcePtr)->next_extension = NULL;
|
|
Packit |
b099d7 |
(*wcePtr)->record_type = NULLQUARK;
|
|
Packit |
b099d7 |
(*wcePtr)->version = XmPrimitiveClassExtVersion ;
|
|
Packit |
b099d7 |
(*wcePtr)->record_size = sizeof(XmPrimitiveClassExtRec);
|
|
Packit |
b099d7 |
(*wcePtr)->widget_baseline = XmInheritBaselineProc;
|
|
Packit |
b099d7 |
(*wcePtr)->widget_display_rect = XmInheritDisplayRectProc ;
|
|
Packit |
b099d7 |
(*wcePtr)->widget_margins = XmInheritMarginsProc ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((WidgetClass)wc != xmPrimitiveWidgetClass) {
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
scePtr = _XmGetPrimitiveClassExtPtr(super, NULLQUARK);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((*wcePtr)->widget_baseline == XmInheritBaselineProc)
|
|
Packit |
b099d7 |
(*wcePtr)->widget_baseline = (*scePtr)->widget_baseline;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((*wcePtr)->widget_display_rect == XmInheritDisplayRectProc)
|
|
Packit |
b099d7 |
(*wcePtr)->widget_display_rect = (*scePtr)->widget_display_rect;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ((*wcePtr)->widget_margins == XmInheritMarginsProc)
|
|
Packit |
b099d7 |
(*wcePtr)->widget_margins = (*scePtr)->widget_margins;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*** Carry this ugly non portable code that deal with Xt internals.
|
|
Packit |
b099d7 |
Maintain first_time because we want to do that only once
|
|
Packit |
b099d7 |
Object ClassPartInit has been called */
|
|
Packit |
b099d7 |
if (first_time) {
|
|
Packit |
b099d7 |
_XmReOrderResourceList(xmPrimitiveWidgetClass, XmNunitType, NULL);
|
|
Packit |
b099d7 |
_XmReOrderResourceList(xmPrimitiveWidgetClass,
|
|
Packit |
b099d7 |
XmNforeground, XmNbackground);
|
|
Packit |
b099d7 |
first_time = FALSE;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*** setting up traits for all subclasses as well.*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmeTraitSet((XtPointer)wc, XmQTspecifyLayoutDirection,(XtPointer)&primLDT);
|
|
Packit |
b099d7 |
XmeTraitSet((XtPointer)wc, XmQTcareParentVisual, (XtPointer)&primCVT);
|
|
Packit |
b099d7 |
XmeTraitSet((XtPointer)wc, XmQTaccessColors, (XtPointer)&primACT);
|
|
Packit |
b099d7 |
XmeTraitSet((XtPointer)wc, XmQTspecifyUnitType, (XtPointer)&primUTT);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Initialize
|
|
Packit |
b099d7 |
* The main widget instance initialization routine.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
Initialize(
|
|
Packit |
b099d7 |
Widget rw,
|
|
Packit |
b099d7 |
Widget nw,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmPrimitiveWidget request = (XmPrimitiveWidget) rw ;
|
|
Packit |
b099d7 |
XmPrimitiveWidget pw = (XmPrimitiveWidget) nw ;
|
|
Packit |
b099d7 |
XtTranslations translations ;
|
|
Packit |
b099d7 |
XmString tool_tip_string;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XtResource subresources[] =
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNtoolTipString, XmCToolTipString, XmRXmString,
|
|
Packit |
b099d7 |
sizeof(XmString), 0,
|
|
Packit |
b099d7 |
XmRImmediate, (XtPointer) NULL
|
|
Packit |
b099d7 |
},
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmProcessLock();
|
|
Packit |
b099d7 |
translations = (XtTranslations) ((XmPrimitiveClassRec *) XtClass( pw))
|
|
Packit |
b099d7 |
->primitive_class.translations ;
|
|
Packit |
b099d7 |
_XmProcessUnlock();
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtGetSubresources(nw, &tool_tip_string, NULL, NULL,
|
|
Packit |
b099d7 |
subresources, XtNumber(subresources),
|
|
Packit |
b099d7 |
args, *num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmSetToolTipString(nw, (XmString) tool_tip_string);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if( pw->primitive.traversal_on
|
|
Packit |
b099d7 |
&& translations && pw->core.tm.translations
|
|
Packit |
b099d7 |
&& !XmIsLabel( pw) )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
/* If this widget is requesting traversal then augment its
|
|
Packit |
b099d7 |
* translation table with some additional events.
|
|
Packit |
b099d7 |
* We will only augment translations for a widget which
|
|
Packit |
b099d7 |
* already has some translations defined; this allows widgets
|
|
Packit |
b099d7 |
* which want to set different translations (i.e. menus) to
|
|
Packit |
b099d7 |
* it at a later point in time.
|
|
Packit |
b099d7 |
* We do not override RowColumn and Label subclasses, these
|
|
Packit |
b099d7 |
* are handled by those classes.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
XtOverrideTranslations( (Widget) pw, translations) ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
pw->primitive.have_traversal = FALSE ;
|
|
Packit |
b099d7 |
pw->primitive.highlighted = FALSE ;
|
|
Packit |
b099d7 |
pw->primitive.highlight_drawn = FALSE ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if((pw->primitive.navigation_type != XmDYNAMIC_DEFAULT_TAB_GROUP)
|
|
Packit |
b099d7 |
&& !XmRepTypeValidValue(XmRID_NAVIGATION_TYPE,
|
|
Packit |
b099d7 |
pw->primitive.navigation_type,
|
|
Packit |
b099d7 |
(Widget) pw))
|
|
Packit |
b099d7 |
{ pw->primitive.navigation_type = XmNONE ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
_XmNavigInitialize( (Widget) request, (Widget) pw, args, num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if( !XmRepTypeValidValue( XmRID_UNIT_TYPE,
|
|
Packit |
b099d7 |
pw->primitive.unit_type, (Widget) pw) )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
pw->primitive.unit_type = XmPIXELS;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Convert the fields from unit values to pixel values */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmPrimitiveImportArgs( (Widget) pw, args, num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Check the geometry information for the widget */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (request->core.width == 0)
|
|
Packit |
b099d7 |
pw->core.width += pw->primitive.highlight_thickness * 2 +
|
|
Packit |
b099d7 |
pw->primitive.shadow_thickness * 2;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (request->core.height == 0)
|
|
Packit |
b099d7 |
pw->core.height += pw->primitive.highlight_thickness * 2 +
|
|
Packit |
b099d7 |
pw->primitive.shadow_thickness * 2;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Get the graphics contexts for the border drawing */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
pw->primitive.highlight_GC =
|
|
Packit |
b099d7 |
_XmGetPixmapBasedGC (nw,
|
|
Packit |
b099d7 |
pw->primitive.highlight_color,
|
|
Packit |
b099d7 |
pw->core.background_pixel,
|
|
Packit |
b099d7 |
pw->primitive.highlight_pixmap);
|
|
Packit |
b099d7 |
pw->primitive.top_shadow_GC =
|
|
Packit |
b099d7 |
_XmGetPixmapBasedGC (nw,
|
|
Packit |
b099d7 |
pw->primitive.top_shadow_color,
|
|
Packit |
b099d7 |
pw->core.background_pixel,
|
|
Packit |
b099d7 |
pw->primitive.top_shadow_pixmap);
|
|
Packit |
b099d7 |
pw->primitive.bottom_shadow_GC =
|
|
Packit |
b099d7 |
_XmGetPixmapBasedGC (nw,
|
|
Packit |
b099d7 |
pw->primitive.bottom_shadow_color,
|
|
Packit |
b099d7 |
pw->core.background_pixel,
|
|
Packit |
b099d7 |
pw->primitive.bottom_shadow_pixmap);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Realize
|
|
Packit |
b099d7 |
* General realize procedure for primitive widgets. Lets the bit
|
|
Packit |
b099d7 |
* gravity default to Forget.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
Realize(
|
|
Packit |
b099d7 |
register Widget w,
|
|
Packit |
b099d7 |
XtValueMask *p_valueMask,
|
|
Packit |
b099d7 |
XSetWindowAttributes *attributes )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
Mask valueMask = *p_valueMask;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
valueMask |= CWDontPropagate;
|
|
Packit |
b099d7 |
attributes->do_not_propagate_mask =
|
|
Packit |
b099d7 |
ButtonPressMask | ButtonReleaseMask |
|
|
Packit |
b099d7 |
KeyPressMask | KeyReleaseMask | PointerMotionMask;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XtCreateWindow (w, InputOutput, CopyFromParent, valueMask, attributes);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Redisplay
|
|
Packit |
b099d7 |
* General redisplay function called on exposure events.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
/* ARGSUSED */
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
Redisplay(
|
|
Packit |
b099d7 |
Widget wid,
|
|
Packit |
b099d7 |
XEvent *event,
|
|
Packit |
b099d7 |
Region region )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmPrimitiveWidget pw = (XmPrimitiveWidget) wid ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (pw->primitive.highlighted) {
|
|
Packit |
b099d7 |
(*(((XmPrimitiveWidgetClass) XtClass(wid))
|
|
Packit |
b099d7 |
->primitive_class.border_highlight))(wid) ;
|
|
Packit |
b099d7 |
} else {
|
|
Packit |
b099d7 |
(*(((XmPrimitiveWidgetClass) XtClass(wid))
|
|
Packit |
b099d7 |
->primitive_class.border_unhighlight))(wid) ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Destroy
|
|
Packit |
b099d7 |
* Clean up allocated resources when the widget is destroyed.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
Destroy(
|
|
Packit |
b099d7 |
Widget w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmPrimitiveWidget pw = (XmPrimitiveWidget) w ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmNavigDestroy(w);
|
|
Packit |
b099d7 |
#ifdef FIX_1388
|
|
Packit |
b099d7 |
_XmToolTipRemove(w);
|
|
Packit |
b099d7 |
#else
|
|
Packit |
b099d7 |
_XmToolTipLeave(w, NULL, NULL, NULL);
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
XtReleaseGC( w, pw->primitive.top_shadow_GC);
|
|
Packit |
b099d7 |
XtReleaseGC( w, pw->primitive.bottom_shadow_GC);
|
|
Packit |
b099d7 |
XtReleaseGC( w, pw->primitive.highlight_GC);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* SetValues
|
|
Packit |
b099d7 |
* Perform and updating necessary for a set values call.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
SetValues(
|
|
Packit |
b099d7 |
Widget current,
|
|
Packit |
b099d7 |
Widget request,
|
|
Packit |
b099d7 |
Widget new_w,
|
|
Packit |
b099d7 |
ArgList args,
|
|
Packit |
b099d7 |
Cardinal *num_args )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmPrimitiveWidget curpw = (XmPrimitiveWidget) current;
|
|
Packit |
b099d7 |
XmPrimitiveWidget newpw = (XmPrimitiveWidget) new_w;
|
|
Packit |
b099d7 |
Boolean returnFlag = False;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XtIsSensitive(current) != XtIsSensitive(new_w))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if (!XtIsSensitive(new_w))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
_XmToolTipLeave(new_w, NULL, NULL, NULL);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (XmGetToolTipString(new_w) != XmGetToolTipString(current))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmSetToolTipString(current, XmGetToolTipString (new_w));
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* CR 7124: XmNlayoutDirection is a CG resource. */
|
|
Packit |
b099d7 |
if (XmPrim_layout_direction(curpw) != XmPrim_layout_direction(newpw))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmeWarning(new_w, MESSAGE1);
|
|
Packit |
b099d7 |
XmPrim_layout_direction(newpw) = XmPrim_layout_direction(curpw);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if( newpw->primitive.traversal_on
|
|
Packit |
b099d7 |
&& (newpw->primitive.traversal_on != curpw->primitive.traversal_on)
|
|
Packit |
b099d7 |
&& newpw->core.tm.translations
|
|
Packit |
b099d7 |
&& ((XmPrimitiveClassRec *) XtClass( newpw))
|
|
Packit |
b099d7 |
->primitive_class.translations
|
|
Packit |
b099d7 |
&& !XmIsLabel(newpw) ) {
|
|
Packit |
b099d7 |
_XmProcessLock();
|
|
Packit |
b099d7 |
XtOverrideTranslations( (Widget) newpw, (XtTranslations)
|
|
Packit |
b099d7 |
((XmPrimitiveClassRec *) XtClass( newpw))
|
|
Packit |
b099d7 |
->primitive_class.translations) ;
|
|
Packit |
b099d7 |
_XmProcessUnlock();
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
if( curpw->primitive.navigation_type
|
|
Packit |
b099d7 |
!= newpw->primitive.navigation_type )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if( !XmRepTypeValidValue( XmRID_NAVIGATION_TYPE,
|
|
Packit |
b099d7 |
newpw->primitive.navigation_type,
|
|
Packit |
b099d7 |
(Widget) newpw) )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
newpw->primitive.navigation_type
|
|
Packit |
b099d7 |
= curpw->primitive.navigation_type ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
returnFlag = _XmNavigSetValues( current, request, new_w, args, num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Validate changed data. */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if( !XmRepTypeValidValue( XmRID_UNIT_TYPE,
|
|
Packit |
b099d7 |
newpw->primitive.unit_type,
|
|
Packit |
b099d7 |
(Widget) newpw) )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
newpw->primitive.unit_type = curpw->primitive.unit_type;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Convert the necessary fields from unit values to pixel values */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmPrimitiveImportArgs( (Widget) newpw, args, num_args);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Check for resize conditions */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (curpw->primitive.shadow_thickness !=
|
|
Packit |
b099d7 |
newpw->primitive.shadow_thickness ||
|
|
Packit |
b099d7 |
curpw->primitive.highlight_thickness !=
|
|
Packit |
b099d7 |
newpw->primitive.highlight_thickness)
|
|
Packit |
b099d7 |
returnFlag = True;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (curpw->primitive.highlight_color != newpw->primitive.highlight_color ||
|
|
Packit |
b099d7 |
curpw->primitive.highlight_pixmap != newpw->primitive.highlight_pixmap)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XtReleaseGC ((Widget) newpw, newpw->primitive.highlight_GC);
|
|
Packit |
b099d7 |
newpw->primitive.highlight_GC =
|
|
Packit |
b099d7 |
_XmGetPixmapBasedGC (new_w,
|
|
Packit |
b099d7 |
newpw->primitive.highlight_color,
|
|
Packit |
b099d7 |
newpw->core.background_pixel,
|
|
Packit |
b099d7 |
newpw->primitive.highlight_pixmap);
|
|
Packit |
b099d7 |
returnFlag = True;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (curpw->primitive.top_shadow_color !=
|
|
Packit |
b099d7 |
newpw->primitive.top_shadow_color ||
|
|
Packit |
b099d7 |
curpw->primitive.top_shadow_pixmap !=
|
|
Packit |
b099d7 |
newpw->primitive.top_shadow_pixmap)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XtReleaseGC ((Widget) newpw, newpw->primitive.top_shadow_GC);
|
|
Packit |
b099d7 |
newpw->primitive.top_shadow_GC =
|
|
Packit |
b099d7 |
_XmGetPixmapBasedGC (new_w,
|
|
Packit |
b099d7 |
newpw->primitive.top_shadow_color,
|
|
Packit |
b099d7 |
newpw->core.background_pixel,
|
|
Packit |
b099d7 |
newpw->primitive.top_shadow_pixmap);
|
|
Packit |
b099d7 |
returnFlag = True;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (curpw->primitive.bottom_shadow_color !=
|
|
Packit |
b099d7 |
newpw->primitive.bottom_shadow_color ||
|
|
Packit |
b099d7 |
curpw->primitive.bottom_shadow_pixmap !=
|
|
Packit |
b099d7 |
newpw->primitive.bottom_shadow_pixmap)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XtReleaseGC( (Widget) newpw, newpw->primitive.bottom_shadow_GC);
|
|
Packit |
b099d7 |
newpw->primitive.bottom_shadow_GC =
|
|
Packit |
b099d7 |
_XmGetPixmapBasedGC (new_w,
|
|
Packit |
b099d7 |
newpw->primitive.bottom_shadow_color,
|
|
Packit |
b099d7 |
newpw->core.background_pixel,
|
|
Packit |
b099d7 |
newpw->primitive.bottom_shadow_pixmap);
|
|
Packit |
b099d7 |
returnFlag = True;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if( newpw->primitive.highlight_drawn
|
|
Packit |
b099d7 |
&& ( !XtIsSensitive( (Widget) newpw)
|
|
Packit |
b099d7 |
|| ( (curpw->primitive.highlight_on_enter)
|
|
Packit |
b099d7 |
&& !(newpw->primitive.highlight_on_enter)
|
|
Packit |
b099d7 |
&& (_XmGetFocusPolicy( (Widget) newpw) == XmPOINTER))) )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if( ((XmPrimitiveWidgetClass) XtClass( newpw))
|
|
Packit |
b099d7 |
->primitive_class.border_unhighlight )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
(*(((XmPrimitiveWidgetClass) XtClass( newpw))
|
|
Packit |
b099d7 |
->primitive_class.border_unhighlight))( (Widget) newpw) ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* Return a flag which may indicate that a redraw needs to occur. */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return (returnFlag);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* HighlightBorder
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
HighlightBorder(
|
|
Packit |
b099d7 |
Widget w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmPrimitiveWidget pw = (XmPrimitiveWidget) w ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
pw->primitive.highlighted = True ;
|
|
Packit |
b099d7 |
pw->primitive.highlight_drawn = True ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if(XtWidth( pw) == 0 || XtHeight( pw) == 0
|
|
Packit |
b099d7 |
|| pw->primitive.highlight_thickness == 0) return ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmeDrawHighlight( XtDisplay( pw), XtWindow( pw),
|
|
Packit |
b099d7 |
pw->primitive.highlight_GC, 0, 0,
|
|
Packit |
b099d7 |
XtWidth( pw), XtHeight( pw),
|
|
Packit |
b099d7 |
pw->primitive.highlight_thickness) ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* UnhighlightBorder
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
UnhighlightBorder(
|
|
Packit |
b099d7 |
Widget w )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmPrimitiveWidget pw = (XmPrimitiveWidget) w ;
|
|
Packit |
b099d7 |
XmSpecifyUnhighlightTrait UnhighlightT;
|
|
Packit |
b099d7 |
GC manager_background_GC;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
pw->primitive.highlighted = False ;
|
|
Packit |
b099d7 |
pw->primitive.highlight_drawn = False ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ( XtWidth( w) == 0
|
|
Packit |
b099d7 |
|| XtHeight( w) == 0
|
|
Packit |
b099d7 |
|| pw->primitive.highlight_thickness == 0)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if(XmIsManager( pw->core.parent))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
/* If unhighlight trait in parent use specified GC */
|
|
Packit |
b099d7 |
if (((UnhighlightT=(XmSpecifyUnhighlightTrait)XmeTraitGet((XtPointer)
|
|
Packit |
b099d7 |
XtClass(pw->core.parent), XmQTspecifyUnhighlight)) != NULL)
|
|
Packit |
b099d7 |
&& (UnhighlightT->getUnhighlightGC != NULL))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
manager_background_GC =
|
|
Packit |
b099d7 |
UnhighlightT->getUnhighlightGC( pw->core.parent, w);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
/* otherwise, use parent's background GC */
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
manager_background_GC = ((XmManagerWidget)(pw->core.parent))
|
|
Packit |
b099d7 |
->manager.background_GC;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
XmeDrawHighlight( XtDisplay( pw), XtWindow( pw),
|
|
Packit |
b099d7 |
manager_background_GC,
|
|
Packit |
b099d7 |
0, 0, XtWidth( w), XtHeight( w),
|
|
Packit |
b099d7 |
pw->primitive.highlight_thickness) ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
XmeClearBorder( XtDisplay (pw), XtWindow (pw), 0, 0, XtWidth( w),
|
|
Packit |
b099d7 |
XtHeight( w) , pw->primitive.highlight_thickness) ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* WidgetNavigable
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
static XmNavigability
|
|
Packit |
b099d7 |
WidgetNavigable(
|
|
Packit |
b099d7 |
Widget wid)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if( XtIsSensitive(wid)
|
|
Packit |
b099d7 |
&& ((XmPrimitiveWidget) wid)->primitive.traversal_on )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmNavigationType nav_type = ((XmPrimitiveWidget) wid)
|
|
Packit |
b099d7 |
->primitive.navigation_type ;
|
|
Packit |
b099d7 |
if( (nav_type == XmSTICKY_TAB_GROUP)
|
|
Packit |
b099d7 |
|| (nav_type == XmEXCLUSIVE_TAB_GROUP)
|
|
Packit |
b099d7 |
|| ( (nav_type == XmTAB_GROUP)
|
|
Packit |
b099d7 |
&& !_XmShellIsExclusive( wid)) )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return XmTAB_NAVIGABLE ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
return XmCONTROL_NAVIGABLE ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
return XmNOT_NAVIGABLE ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* FocusChange
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
FocusChange(
|
|
Packit |
b099d7 |
Widget wid,
|
|
Packit |
b099d7 |
XmFocusChange change)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
/* Enter/Leave is called only in pointer mode,
|
|
Packit |
b099d7 |
* Focus in/out only called in explicit mode.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
switch( change )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
case XmENTER:
|
|
Packit |
b099d7 |
if(!(((XmPrimitiveWidget) wid)->primitive.highlight_on_enter))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
break ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
/* Drop through. */
|
|
Packit |
b099d7 |
case XmFOCUS_IN:
|
|
Packit |
b099d7 |
if(change == XmFOCUS_IN ) /* Because of drop-though. */ {
|
|
Packit |
b099d7 |
((XmPrimitiveWidget) wid)->primitive.have_traversal = TRUE ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
if( ((XmPrimitiveWidgetClass) XtClass( wid))
|
|
Packit |
b099d7 |
->primitive_class.border_highlight )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
(*(((XmPrimitiveWidgetClass) XtClass( wid))
|
|
Packit |
b099d7 |
->primitive_class.border_highlight))( wid) ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
break ;
|
|
Packit |
b099d7 |
case XmLEAVE:
|
|
Packit |
b099d7 |
if(!(((XmPrimitiveWidget) wid)->primitive.highlight_on_enter))
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
break ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
/* Drop through. */
|
|
Packit |
b099d7 |
case XmFOCUS_OUT:
|
|
Packit |
b099d7 |
if(change == XmFOCUS_OUT ) /* Because of drop-though. */{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
((XmPrimitiveWidget) wid)->primitive.have_traversal = FALSE ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
if( ((XmPrimitiveWidgetClass) XtClass( wid))
|
|
Packit |
b099d7 |
->primitive_class.border_unhighlight )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
(*(((XmPrimitiveWidgetClass) XtClass( wid))
|
|
Packit |
b099d7 |
->primitive_class.border_unhighlight))( wid) ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
break ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
return ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/****************************************/
|
|
Packit |
b099d7 |
/******------ trait methods -------******/
|
|
Packit |
b099d7 |
/****************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static XmDirection
|
|
Packit |
b099d7 |
GetDirection(Widget w)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return XmPrim_layout_direction(((XmPrimitiveWidget)(w)));
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
static Boolean
|
|
Packit |
b099d7 |
Redraw (
|
|
Packit |
b099d7 |
Widget kid,
|
|
Packit |
b099d7 |
Widget cur_parent, /* unused */
|
|
Packit |
b099d7 |
Widget new_parent, /* unused */
|
|
Packit |
b099d7 |
Mask visual_flag)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmPrimitiveWidget pw = (XmPrimitiveWidget) kid ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* primitive only cares about background info */
|
|
Packit |
b099d7 |
/* Menu buttons "redefine" unhighlight on a per instance basis,
|
|
Packit |
b099d7 |
so they'll get this trait method anyway and do nothing
|
|
Packit |
b099d7 |
in their unhighlight method on a per instance basis */
|
|
Packit |
b099d7 |
/* Separators, Lists, have a null unhighlight, so they'll be caught
|
|
Packit |
b099d7 |
here, they could redefine the trait, kindof uninstall it... */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (visual_flag & (VisualBackgroundPixel|VisualBackgroundPixmap)) {
|
|
Packit |
b099d7 |
/* do the unhighlight if necessary, using class method */
|
|
Packit |
b099d7 |
/* parent manager background gc already set up */
|
|
Packit |
b099d7 |
if (!pw->primitive.highlighted) {
|
|
Packit |
b099d7 |
XmPrimitiveClassRec* kid_class = (XmPrimitiveClassRec*) XtClass(kid);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (! XtIsRealized(kid)) return True;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (kid_class->primitive_class.border_unhighlight)
|
|
Packit |
b099d7 |
kid_class-> primitive_class.border_unhighlight(kid);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
return False ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
GetColors(Widget w,
|
|
Packit |
b099d7 |
XmAccessColorData color_data)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmPrimitiveWidget pw = (XmPrimitiveWidget) w ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
color_data->valueMask = AccessForeground | AccessBackgroundPixel |
|
|
Packit |
b099d7 |
AccessHighlightColor | AccessTopShadowColor | AccessBottomShadowColor;
|
|
Packit |
b099d7 |
color_data->background = pw->core.background_pixel;
|
|
Packit |
b099d7 |
color_data->foreground = pw->primitive.foreground;
|
|
Packit |
b099d7 |
color_data->highlight_color = pw->primitive.highlight_color;
|
|
Packit |
b099d7 |
color_data->top_shadow_color = pw->primitive.top_shadow_color;
|
|
Packit |
b099d7 |
color_data->bottom_shadow_color = pw->primitive.bottom_shadow_color;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static unsigned char
|
|
Packit |
b099d7 |
GetUnitType(Widget w)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
return ((XmPrimitiveWidget) w)->primitive.unit_type ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/****************************************************************
|
|
Packit |
b099d7 |
****************************************************************
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** External functions, both _Xm and Xm.
|
|
Packit |
b099d7 |
** First come the action procs and then the other external entry points.
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
****************************************************************
|
|
Packit |
b099d7 |
****************************************************************/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/************************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* The traversal event processing routines.
|
|
Packit |
b099d7 |
* The following set of routines are the entry points invoked from
|
|
Packit |
b099d7 |
* each primitive widget when one of the traversal event conditions
|
|
Packit |
b099d7 |
* occur. These routines are externed in XmP.h.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
************************************************************************/
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmTraverseLeft(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XEvent *event, /* unused */
|
|
Packit |
b099d7 |
String *params, /* unused */
|
|
Packit |
b099d7 |
Cardinal *num_params ) /* unused */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
_XmMgrTraversal(w, XmTRAVERSE_LEFT);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmTraverseRight(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XEvent *event, /* unused */
|
|
Packit |
b099d7 |
String *params, /* unused */
|
|
Packit |
b099d7 |
Cardinal *num_params ) /* unused */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
_XmMgrTraversal (w, XmTRAVERSE_RIGHT);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmTraverseUp(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XEvent *event, /* unused */
|
|
Packit |
b099d7 |
String *params, /* unused */
|
|
Packit |
b099d7 |
Cardinal *num_params ) /* unused */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
_XmMgrTraversal (w, XmTRAVERSE_UP);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmTraverseDown(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XEvent *event, /* unused */
|
|
Packit |
b099d7 |
String *params, /* unused */
|
|
Packit |
b099d7 |
Cardinal *num_params ) /* unused */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
_XmMgrTraversal (w, XmTRAVERSE_DOWN);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmTraverseNext(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XEvent *event, /* unused */
|
|
Packit |
b099d7 |
String *params, /* unused */
|
|
Packit |
b099d7 |
Cardinal *num_params ) /* unused */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
_XmMgrTraversal (w, XmTRAVERSE_NEXT);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmTraversePrev(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XEvent *event, /* unused */
|
|
Packit |
b099d7 |
String *params, /* unused */
|
|
Packit |
b099d7 |
Cardinal *num_params ) /* unused */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
_XmMgrTraversal (w, XmTRAVERSE_PREV);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmTraverseHome(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XEvent *event, /* unused */
|
|
Packit |
b099d7 |
String *params, /* unused */
|
|
Packit |
b099d7 |
Cardinal *num_params ) /* unused */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
_XmMgrTraversal (w, XmTRAVERSE_HOME);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmTraverseNextTabGroup(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XEvent *event, /* unused */
|
|
Packit |
b099d7 |
String *params, /* unused */
|
|
Packit |
b099d7 |
Cardinal *num_params ) /* unused */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmDisplay xm_dpy = (XmDisplay) XmGetXmDisplay(XtDisplay(w));
|
|
Packit |
b099d7 |
Boolean button_tab = xm_dpy->display.enable_button_tab;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (button_tab)
|
|
Packit |
b099d7 |
_XmMgrTraversal(w, XmTRAVERSE_GLOBALLY_FORWARD);
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
_XmMgrTraversal(w, XmTRAVERSE_NEXT_TAB_GROUP);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmTraversePrevTabGroup(
|
|
Packit |
b099d7 |
Widget w,
|
|
Packit |
b099d7 |
XEvent *event, /* unused */
|
|
Packit |
b099d7 |
String *params, /* unused */
|
|
Packit |
b099d7 |
Cardinal *num_params ) /* unused */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmDisplay xm_dpy = (XmDisplay) XmGetXmDisplay(XtDisplay(w));
|
|
Packit |
b099d7 |
Boolean button_tab = xm_dpy->display.enable_button_tab;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (button_tab)
|
|
Packit |
b099d7 |
_XmMgrTraversal(w, XmTRAVERSE_GLOBALLY_BACKWARD);
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
_XmMgrTraversal(w, XmTRAVERSE_PREV_TAB_GROUP);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmPrimitiveHelp(
|
|
Packit |
b099d7 |
Widget wid,
|
|
Packit |
b099d7 |
XEvent *event,
|
|
Packit |
b099d7 |
String *params, /* unused */
|
|
Packit |
b099d7 |
Cardinal *num_params ) /* unused */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if (!_XmIsEventUnique(event))
|
|
Packit |
b099d7 |
return;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmSocorro( wid, event, NULL, NULL);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmRecordEvent(event);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmPrimitiveParentActivate(
|
|
Packit |
b099d7 |
Widget pw,
|
|
Packit |
b099d7 |
XEvent *event,
|
|
Packit |
b099d7 |
String *params,
|
|
Packit |
b099d7 |
Cardinal *num_params )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmParentInputActionRec pp_data ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
pp_data.process_type = XmINPUT_ACTION ;
|
|
Packit |
b099d7 |
pp_data.action = XmPARENT_ACTIVATE ;
|
|
Packit |
b099d7 |
pp_data.event = event ;
|
|
Packit |
b099d7 |
pp_data.params = params ;
|
|
Packit |
b099d7 |
pp_data.num_params = num_params ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmParentProcess( XtParent( pw), (XmParentProcessData) &pp_data) ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmPrimitiveParentCancel(
|
|
Packit |
b099d7 |
Widget pw,
|
|
Packit |
b099d7 |
XEvent *event,
|
|
Packit |
b099d7 |
String *params,
|
|
Packit |
b099d7 |
Cardinal *num_params )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmParentInputActionRec pp_data ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
pp_data.process_type = XmINPUT_ACTION ;
|
|
Packit |
b099d7 |
pp_data.action = XmPARENT_CANCEL ;
|
|
Packit |
b099d7 |
pp_data.event = event ;
|
|
Packit |
b099d7 |
pp_data.params = params ;
|
|
Packit |
b099d7 |
pp_data.num_params = num_params ;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_XmParentProcess( XtParent( pw), (XmParentProcessData) &pp_data) ;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/**********************************************************************
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* _XmButtonTakeFocus
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
*********************************************************************/
|
|
Packit |
b099d7 |
/*ARGSUSED*/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
_XmButtonTakeFocus(
|
|
Packit |
b099d7 |
Widget wid,
|
|
Packit |
b099d7 |
XEvent *event, /* unused */
|
|
Packit |
b099d7 |
String *params, /* unused */
|
|
Packit |
b099d7 |
Cardinal *num_params ) /* unused */
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmProcessTraversal(wid, XmTRAVERSE_CURRENT);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
static void
|
|
Packit |
b099d7 |
GetToolTipString(Widget wid,
|
|
Packit |
b099d7 |
int resource, /* unused */
|
|
Packit |
b099d7 |
XtArgVal * value)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmString string = XmGetToolTipString (wid);
|
|
Packit |
b099d7 |
*value = (XtArgVal) string;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
XmImportOperator
|
|
Packit |
b099d7 |
SetToolTipString(Widget wid,
|
|
Packit |
b099d7 |
int resource, /* unused */
|
|
Packit |
b099d7 |
XtArgVal * value)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
XmSetToolTipString (wid, (XmString)*value);
|
|
Packit |
b099d7 |
return XmSYNTHETIC_NONE;
|
|
Packit |
b099d7 |
}
|