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); }
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 ; }