コード例 #1
0
ファイル: gui_xmebw.c プロジェクト: oddstr/macvim_extended
    static void
draw_unhighlight(XmEnhancedButtonWidget eb)
{
    GC manager_background_GC;

    eb->primitive.highlighted = False;
    eb->primitive.highlight_drawn = False;

    if (!XtWidth(eb) || !XtHeight(eb) || !eb->primitive.highlight_thickness)
	return;

    if (XmIsManager(eb->core.parent))
    {
#ifdef UNHIGHLIGHTT
	XmSpecifyUnhighlightTrait UnhighlightT;

	if (((UnhighlightT = (XmSpecifyUnhighlightTrait) XmeTraitGet((XtPointer)
			    XtClass(eb->core.parent), XmQTspecifyUnhighlight))
		    != NULL) && (UnhighlightT->getUnhighlightGC != NULL))
	{
	    /* if unhighlight trait in parent use specified GC... */
	    manager_background_GC =
		 UnhighlightT->getUnhighlightGC(eb->core.parent, (Widget) eb);
	}
	else
	{
	    /* ...otherwise, use parent's background GC */
	    manager_background_GC = ((XmManagerWidget)
				    (eb->core.parent))->manager.background_GC;
	}
#else
	manager_background_GC = ((XmManagerWidget)
				    (eb->core.parent))->manager.background_GC;
#endif
	XmeDrawHighlight(XtDisplay(eb), XtWindow(eb),
			 manager_background_GC,
			 0, 0, XtWidth(eb), XtHeight(eb),
			 eb->primitive.highlight_thickness);
	if (!eb->pushbutton.armed && eb->primitive.shadow_thickness)
	    XmeClearBorder(XtDisplay(eb), XtWindow(eb),
		    eb->primitive.highlight_thickness,
		    eb->primitive.highlight_thickness,
		    eb->core.width - 2 * eb->primitive.highlight_thickness,
		    eb->core.height - 2 * eb->primitive.highlight_thickness,
		    eb->primitive.shadow_thickness);
    }
    else
	XmeClearBorder(XtDisplay(eb), XtWindow(eb), 0, 0, XtWidth(eb),
		       XtHeight(eb), eb->primitive.highlight_thickness);
}
コード例 #2
0
ファイル: Gadget.c プロジェクト: CPFDSoftware-Tony/gmv
static void 
BorderUnhighlight(
        Widget w )
{   
    XmGadget g = (XmGadget) w ;
    XmSpecifyUnhighlightTrait UnhighlightT;
    GC manager_background_GC;

    g->gadget.highlighted = False ;
    g->gadget.highlight_drawn = False ;

    if ( g->rectangle.width == 0
	|| g->rectangle.height == 0
        || g->gadget.highlight_thickness == 0)
	{   
        return ;
        } 

    /* If unhighlight trait in parent use specified GC, else just clear area */
    if ( XmIsManager(g->object.parent)
        && ((UnhighlightT=(XmSpecifyUnhighlightTrait)XmeTraitGet((XtPointer)
	    XtClass(g->object.parent), XmQTspecifyUnhighlight)) != NULL)
	&& (UnhighlightT->getUnhighlightGC != NULL))
	{
	/* Get and use parent's specified background GC for unhighlighting */
	manager_background_GC =
			UnhighlightT->getUnhighlightGC( g->object.parent, w);
        XmeDrawHighlight( XtDisplay( g), XtWindow( g),
			    manager_background_GC,
			    g->rectangle.x, g->rectangle.y,
			    g->rectangle.width, g->rectangle.height,
			    g->gadget.highlight_thickness) ;
	}
    else
	{
	XmeClearBorder( XtDisplay( g), XtWindow( g), 
			g->rectangle.x, g->rectangle.y, 
			g->rectangle.width, g->rectangle.height,
			g->gadget.highlight_thickness) ;
	}

    return ;
    }