Example #1
0
/******************************************************************************
 *
 *  ClassPartInitialize:
 *      Called when this widget or a subclass of this widget is instantiated.
 *
 *****************************************************************************/
static void 
ClassPartInitialize (
        WidgetClass widgetClass
                    )
{
 ExmSimpleWidgetClass wc = (ExmSimpleWidgetClass)widgetClass;
 ExmSimpleWidgetClass sc = (ExmSimpleWidgetClass) wc->core_class.superclass;

 /* The following code allows subclasses of ExmSimple to inherit certain 
    methods of ExmSimple. */ 
   if (wc->simple_class.draw_visual == ExmInheritDrawVisual)
       wc->simple_class.draw_visual = sc->simple_class.draw_visual;
   if (wc->simple_class.draw_shadow == ExmInheritDrawShadow)
       wc->simple_class.draw_shadow = sc->simple_class.draw_shadow;
   if (wc->simple_class.create_gc == ExmInheritCreateGC)
       wc->simple_class.create_gc = sc->simple_class.create_gc;
   if (wc->simple_class.destroy_gc == ExmInheritDestroyGC)
       wc->simple_class.destroy_gc = sc->simple_class.destroy_gc;
   if (wc->simple_class.select_gc == ExmInheritSelectGC)
       wc->simple_class.select_gc = sc->simple_class.select_gc;
   if (wc->simple_class.calc_visual_size == ExmInheritCalcVisualSize)
       wc->simple_class.calc_visual_size = sc->simple_class.calc_visual_size;
   if (wc->simple_class.calc_widget_size == ExmInheritCalcWidgetSize)
       wc->simple_class.calc_widget_size = sc->simple_class.calc_widget_size;
   if (wc->simple_class.reconfigure == ExmInheritReconfigure)
       wc->simple_class.reconfigure = sc->simple_class.reconfigure;

  /* Install the containerItem trait on ExmSimple and all its subclasses. */ 
    XmeTraitSet((XtPointer) wc, XmQTcontainerItem, (XtPointer) &simpleCIT);

  /* Install the careParentVisual trait on ExmSimple and all subclasses. */ 
    XmeTraitSet((XtPointer) wc, XmQTcareParentVisual, (XtPointer) &simpleCVT);
}
Example #2
0
static void ClassInitialize()
#endif
{
    baseClassExtRec.record_type = XmQmotif;

#if XmVersion == 2000
    /* Trait records */
    XmeTraitSet((XtPointer) xmtMenuWidgetClass, XmQTmenuSystem,
                (XtPointer) &_XmRC_menuSystemRecord);
#endif
#if XmVersion >= 2001
    /* Trait records */
    XmeTraitSet((XtPointer) xmtMenuWidgetClass, XmQTmenuSystem,
                XmeTraitGet ((XtPointer) xmRowColumnWidgetClass,
			     XmQTmenuSystem));
#endif
}
Example #3
0
File: DrawnB.c Project: att/uwin
static void
class_initialize(void)
{
    if (! XmeTraitSet((XtPointer)xmDrawnButtonWidgetClass, XmQTactivatable,
		(XtPointer)&_XmDrawnBTraitRec)) {
	_XmWarning(NULL,
	    "XmDrawnButton ClassInitialize: XmeTraitSet failed\n");
    }
}
Example #4
0
static void 
ClassPartInitialize(
        WidgetClass wc )
{
  _XmFastSubclassInit (wc, XmARROW_BUTTON_BIT);

  /* Install the activatable trait for all subclasses */
  XmeTraitSet((XtPointer)wc, XmQTactivatable, (XtPointer) &arrowButtonAT);
}
Example #5
0
void _XmToolTipRemove(Widget w)
{
    XmToolTipTrait ttp;

    _XmToolTipLeave(w, NULL, NULL, NULL);
    ttp = (XmToolTipTrait) XmeTraitGet(w, XmQTtoolTip);
    if (ttp != NULL) {
        XmStringFree(ttp->tool_tip_string);
        XmeTraitSet(w, XmQTtoolTip, (XtPointer) NULL);
        XtFree((char*)ttp);
    }
}
Example #6
0
void
XmSetToolTipString (Widget w,
                    XmString s)
{
    XmToolTipTrait ttp;
    ttp = (XmToolTipTrait)XmeTraitGet(w, XmQTtoolTip);
    if (!ttp) {
        ttp = (XmToolTipTrait)XtCalloc(1, sizeof(XmToolTipTraitRec));
        XmeTraitSet(w, XmQTtoolTip, ttp);
    }
    if (ttp->tool_tip_string)
        XmStringFree(ttp->tool_tip_string);
    ttp->tool_tip_string = XmStringCopy(s);
}
Example #7
0
File: Trait.c Project: att/uwin
/*
 * XmeTraitSet installs trait on object. It is typically called from a widget's
 * class_part_initialize method. Subclasses of this object inherit the trait.
 *
 * object	Specifies the object.
 * trait	The trait name (an XrmQuark value).
 *
 * Returns True on success.
 */
extern Boolean
XmeTraitSet(XtPointer obj, XrmQuark trait, XtPointer rec)
{
	int	i, j;

	if (obj == NULL || trait == 0) {
		DEBUGOUT(_LtDebug(__FILE__, NULL, "XmeTraitSet(NULL)\n"));
		_XmInitTraits();
		return False;
	}

	DEBUGOUT(_LtDebug(__FILE__, NULL, "XmeTraitSet(%s,%s)\n",
			((WidgetClass)obj)->core_class.class_name,
			XrmQuarkToString(trait)));

	for (i=0; i<_num_traits; i++)
	{
	    if (_traits[i].wc == (WidgetClass)obj)
	    {
		/* Expand array */
		if (_traits[i].num == 0)
		{
		    _traits[i].num += NUM_TRAITS;
		    if (_traits[i].traits) {
		    	_traits[i].traits = (_XmTraitRec *) XtRealloc(
				(char *)_traits[i].traits,
				sizeof(_XmTraitRec) * _traits[i].num);
			DEBUGOUT(_LtDebug(__FILE__, NULL,
				"XmeTraitSet: _traits[%d].traits = %p,"
				" size %d = %d * %d\n",
				i, _traits[i].traits,
				_traits[i].num * sizeof(_XmTraitRec),
				_traits[i].num,
				sizeof(_XmTraitRec)));
		    } else {
		    	_traits[i].traits = (_XmTraitRec *) XtCalloc(
				_traits[i].num, sizeof(_XmTraitRec));
			DEBUGOUT(_LtDebug(__FILE__, NULL,
				"XmeTraitSet: _traits[%d].traits = %p,"
				" size %d = %d * %d\n",
				i, _traits[i].traits,
				_traits[i].num * sizeof(_XmTraitRec),
				_traits[i].num,
				sizeof(_XmTraitRec)));
		    }
		}

		for (j=0; _traits[i].traits[j].trait && j<_traits[i].num; j++)
		    if (_traits[i].traits[j].trait == trait)
		    {

			/* Trait was already installed !! */
			/* If rec == NULL this removes the trait.
			 * Code for supporting this is in XmeTraitGet */
			_traits[i].traits[j].traitrec = rec;

			DEBUGOUT(_LtDebug(__FILE__, NULL,
				"XmeTraitSet: overwrite _traits[%d]."
				"traits[%d].traitrec\n",
				i, j));

			return True;
		    }
		if (j == _traits[i].num)
		{
		    /* Expand array first */
		    _traits[i].num += NUM_TRAITS;
		    if (_traits[i].traits) {
			_traits[i].traits = (_XmTraitRec *) XtRealloc(
			(char *)_traits[i].traits,
			sizeof(_XmTraitRec) * _traits[i].num);
			DEBUGOUT(_LtDebug(__FILE__, NULL,
				"XmeTraitSet: _traits[%d].traits = %p,"
				" size %d = %d * %d\n",
				i, _traits[i].traits,
				_traits[i].num * sizeof(_XmTraitRec),
				_traits[i].num,
				sizeof(_XmTraitRec)));
		    } else {
			_traits[i].traits = (_XmTraitRec *) XtCalloc(
				_traits[i].num, sizeof(_XmTraitRec));
			DEBUGOUT(_LtDebug(__FILE__, NULL,
				"XmeTraitSet: _traits[%d].traits = %p,"
				" size %d = %d * %d\n",
				i, _traits[i].traits,
				_traits[i].num * sizeof(_XmTraitRec),
				_traits[i].num,
				sizeof(_XmTraitRec)));
		    }
		}

		/* Add the trait to the list */
		_traits[i].traits[j].trait = trait;
		_traits[i].traits[j].traitrec = rec;
#if 0
		_traits[i].traits[j+1].trait = NULLQUARK;
#endif

		DEBUGOUT(_LtDebug(__FILE__, NULL,
			"XmeTraitSet: write _traits[%d]."
			"traits[%d].traitrec\n",
			i, j));
		DEBUGOUT(_LtDebug(__FILE__, NULL,
			"XmeTraitSet: write _traits[%d]."
			"traits[%d].traitrec\n",
			i, j+1));

		return True;
	    }
	}

	/* No traits known yet for this widget class */

	if (_max_traits == _num_traits) {
		_max_traits += NUM_WIDGET_CLASSES;
		if (_traits) {
		    _traits = (struct _XmTraitWidgetList *)
			XtRealloc((char *)_traits,
			_max_traits * sizeof(struct _XmTraitWidgetList));
		} else {
		    _traits = (struct _XmTraitWidgetList *) XtCalloc(
			_max_traits, sizeof(struct _XmTraitWidgetList));
		    DEBUGOUT(_LtDebug(__FILE__, NULL,
			"XmeTraitSet: _traits = %p, size %d = %d * %d\n",
			_traits,
			_max_traits * sizeof(struct _XmTraitWidgetList),
			_max_traits,
			sizeof(struct _XmTraitWidgetList)));
		}
	}

	DEBUGOUT(_LtDebug(__FILE__, NULL, "XmeTraitSet: set _traits[%d]\n", i));

	_traits[i].wc = (WidgetClass)obj;
	_traits[i].num = 0;
	_traits[i].traits = NULL;
	_num_traits++;

	DEBUGOUT(_LtDebug0(__FILE__, NULL, "Recursive Call : ")); /* no \n */

	return XmeTraitSet(obj, trait, rec);	/* Recursive call */
}
Example #8
0
/************************************************************************
 *
 *  ClassPartInit
 *	Used by subclasses of gadget to inherit class record procedures.
 *
 ************************************************************************/
static void 
ClassPartInit(
        WidgetClass g )
{
    static Boolean first_time = TRUE;
    XmGadgetClass wc = (XmGadgetClass) g;
    XmGadgetClass super = (XmGadgetClass) wc->rect_class.superclass;
    XmGadgetClassExt              *wcePtr, *scePtr;

   wcePtr = _XmGetGadgetClassExtPtr(wc, NULLQUARK);

   if (((WidgetClass)wc != xmGadgetClass) &&
       (*wcePtr)) {

       scePtr = _XmGetGadgetClassExtPtr(super, NULLQUARK);

       if ((*wcePtr)->widget_baseline == XmInheritBaselineProc)
	   (*wcePtr)->widget_baseline = (*scePtr)->widget_baseline;

       if ((*wcePtr)->widget_display_rect == XmInheritDisplayRectProc)
	   (*wcePtr)->widget_display_rect  = (*scePtr)->widget_display_rect;

       if ((*wcePtr)->widget_margins == XmInheritMarginsProc)
	   (*wcePtr)->widget_margins  = (*scePtr)->widget_margins;

   }

    if (wc->gadget_class.border_highlight == XmInheritWidgetProc)
	wc->gadget_class.border_highlight = 
           super->gadget_class.border_highlight;

    if (wc->gadget_class.border_unhighlight == XmInheritWidgetProc)
	wc->gadget_class.border_unhighlight =
	   super->gadget_class.border_unhighlight;

    if (wc->gadget_class.arm_and_activate == XmInheritArmAndActivate)
        wc->gadget_class.arm_and_activate =
           super->gadget_class.arm_and_activate;

    if (wc->gadget_class.input_dispatch == XmInheritInputDispatch)
        wc->gadget_class.input_dispatch =
           super->gadget_class.input_dispatch;

    if (wc->gadget_class.visual_change == XmInheritVisualChange)
        wc->gadget_class.visual_change =
           super->gadget_class.visual_change;

   _XmFastSubclassInit (g, XmGADGET_BIT);

    if (first_time)
    {
        _XmReOrderResourceList(xmGadgetClass, XmNunitType, NULL);
        first_time = FALSE;
    }

   _XmBuildGadgetResources((WidgetClass) wc);

   /* Install the direction trait for all subclasses as well. */
    XmeTraitSet((XtPointer)wc, XmQTspecifyLayoutDirection, (XtPointer)&gadLDT);

   /* Install the accessColors trait for all subclasses as well. */
    XmeTraitSet((XtPointer)wc, XmQTaccessColors, (XtPointer)&gadACT);

   /* Install the unit type trait for all subclasses as well. */
    XmeTraitSet((XtPointer)wc, XmQTspecifyUnitType, (XtPointer)&gadUTT);
}