Пример #1
0
Boolean
XmWidgetGetBaselines(
    Widget wid,
    Dimension **baselines,
    int *line_count)
{
    _XmWidgetToAppContext(wid);
    _XmAppLock(app);

    if (XmIsPrimitive(wid))
    {
        XmPrimitiveClassExt              *wcePtr;
        WidgetClass   wc = XtClass(wid);

        wcePtr = _XmGetPrimitiveClassExtPtr(wc, NULLQUARK);

        if (*wcePtr && (*wcePtr)->widget_baseline)
        {
            _XmAppUnlock(app);
            return( (*((*wcePtr)->widget_baseline))
                    (wid, baselines, line_count)) ;
        }
    }
    else if (XmIsGadget(wid))
    {
        XmGadgetClassExt              *wcePtr;
        WidgetClass   wc = XtClass(wid);

        wcePtr = _XmGetGadgetClassExtPtr(wc, NULLQUARK);

        if (*wcePtr && (*wcePtr)->widget_baseline)
        {
            _XmAppUnlock(app);
            return( (*((*wcePtr)->widget_baseline))
                    (wid, baselines, line_count)) ;
        }
    }
    _XmAppUnlock(app);
    return (False);
}
Пример #2
0
Boolean
XmWidgetGetDisplayRect(
    Widget wid,
    XRectangle *displayrect)
{
    _XmWidgetToAppContext(wid);
    _XmAppLock(app);

    if (XmIsPrimitive(wid))
    {
        XmPrimitiveClassExt              *wcePtr;
        WidgetClass   wc = XtClass(wid);

        wcePtr = _XmGetPrimitiveClassExtPtr(wc, NULLQUARK);

        if (*wcePtr && (*wcePtr)->widget_display_rect)
            (*((*wcePtr)->widget_display_rect)) (wid, displayrect);
        _XmAppUnlock(app);
        return (True);
    }
    else if (XmIsGadget(wid))
    {
        XmGadgetClassExt              *wcePtr;
        WidgetClass   wc = XtClass(wid);

        wcePtr = _XmGetGadgetClassExtPtr(wc, NULLQUARK);

        if (*wcePtr && (*wcePtr)->widget_display_rect)
            (*((*wcePtr)->widget_display_rect)) (wid, displayrect);
        _XmAppUnlock(app);
        return (True);
    }
    else {
        _XmAppUnlock(app);
        return (False);
    }
}
Пример #3
0
Файл: Gadget.c Проект: att/uwin
static void
class_part_initialize(WidgetClass widget_class)
{
    XmGadgetClass gc, sc;

	DEBUGOUT(_LtDebug(__FILE__, NULL, "XmGadget class_part_initialize\n"));

    gc = (XmGadgetClass)widget_class;
    sc = (XmGadgetClass)((XmGadgetClass)widget_class)->rect_class.superclass;

    if (gc->gadget_class.border_highlight == XmInheritBorderHighlight)
    {
	gc->gadget_class.border_highlight =
	    sc->gadget_class.border_highlight;
    }
    if (gc->gadget_class.border_unhighlight == XmInheritBorderUnhighlight)
    {
	gc->gadget_class.border_unhighlight =
	    sc->gadget_class.border_unhighlight;
    }
    if (gc->gadget_class.visual_change == XmInheritVisualChange)
    {
	gc->gadget_class.visual_change =
	    sc->gadget_class.visual_change;
    }
    if (gc->gadget_class.input_dispatch == XmInheritInputDispatch)
    {
	gc->gadget_class.input_dispatch =
	    sc->gadget_class.input_dispatch;
    }
    if (gc->gadget_class.arm_and_activate == XmInheritArmAndActivate)
    {
	gc->gadget_class.arm_and_activate =
	    sc->gadget_class.arm_and_activate;
    }

    if (widget_class != xmGadgetClass)
    {
	XmGadgetClassExt *gce = NULL, *sce = NULL;

	gce = _XmGetGadgetClassExtPtr(gc, NULLQUARK);
	sce = _XmGetGadgetClassExtPtr(sc, NULLQUARK);

	if (gce && sce && *gce && *sce)
	{
	    if ((*gce)->widget_baseline == XmInheritBaselineProc)
	    {
		(*gce)->widget_baseline = (*sce)->widget_baseline;
	    }
	    if ((*gce)->widget_display_rect == XmInheritDisplayRectProc)
	    {
		(*gce)->widget_display_rect = (*sce)->widget_display_rect;
	    }
	}
    }

    _XmBaseClassPartInitialize(widget_class);
    _XmFastSubclassInit(widget_class, XmGADGET_BIT);

    /* compile the resources */
    if (widget_class == xmGadgetClass)
    {
	_XmSortResourceList((XrmResource **)gc->rect_class.resources,
			    gc->rect_class.num_resources);
    }

    _XmBuildGadgetResources(widget_class);
}
Пример #4
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);
}