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 draw_highlight(XmEnhancedButtonWidget eb) { eb->primitive.highlighted = True; eb->primitive.highlight_drawn = True; if (!XtWidth(eb) || !XtHeight(eb) || !eb->primitive.highlight_thickness) return; XmeDrawHighlight(XtDisplay(eb), XtWindow(eb), eb->primitive.highlight_GC, 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 ; }
static void BorderHighlight( Widget w ) { XmGadget g ; g = (XmGadget) w ; g->gadget.highlighted = True ; g->gadget.highlight_drawn = True ; if( g->rectangle.width == 0 || g->rectangle.height == 0 || g->gadget.highlight_thickness == 0 ) { return ; } XmeDrawHighlight( XtDisplay( (Widget) g), XtWindow( (Widget) g), ((XmManagerWidget)(g->object.parent))->manager.highlight_GC, g->rectangle.x, g->rectangle.y, g->rectangle.width, g->rectangle.height, g->gadget.highlight_thickness) ; return ; }
void iupdrvDrawFocusRect(Ihandle* ih, void* _gc, int x, int y, int w, int h) { Drawable wnd = (Drawable)IupGetAttribute(ih, "XWINDOW"); /* Use IupGetAttribute to consult the native implemetation */ GC gc = (GC)_gc; XmeDrawHighlight(iupmot_display, wnd, gc, x, y, w, h, 1); }
void iupDrawFocusRect(IdrawCanvas* dc, int x, int y, int w, int h) { XmeDrawHighlight(iupmot_display, dc->pixmap, dc->pixmap_gc, x, y, w, h, 1); }