/*----------------------------------------------------------------------*/ static Boolean SetValues(Widget ow,Widget rw,Widget nw,ArgList args,Cardinal *nargs) { XfeArrowPart * np = _XfeArrowPart(nw); XfeArrowPart * op = _XfeArrowPart(ow); /* arrow_direction */ if (np->arrow_direction != op->arrow_direction) { /* Make sure arrow direction is ok */ XfeRepTypeCheck(nw,XmRArrowDirection,&np->arrow_direction, XmARROW_DOWN); _XfeConfigFlags(nw) |= XfeConfigExpose; } /* arrow_width */ if ((np->arrow_width != op->arrow_width) || (np->arrow_height != op->arrow_height)) { _XfeConfigFlags(nw) |= XfeConfigGLE; } /* foreground or background */ if ((_XfeForeground(nw) != _XfeForeground(ow)) || (_XfeBackgroundPixel(nw) != _XfeBackgroundPixel(ow))) { XtReleaseGC(nw,np->arrow_insens_GC); np->arrow_insens_GC = XfeAllocateColorGc(nw,_XfeForeground(nw),_XfeBackgroundPixel(nw),False); } return _XfePrimitiveChainSetValues(ow,rw,nw,xfeArrowWidgetClass); }
/*----------------------------------------------------------------------*/ static Boolean SetValues(Widget ow,Widget rw,Widget nw,ArgList args,Cardinal *nargs) { /* Reset the configuration Flags */ _XfeConfigFlags(nw) = XfeConfigNone; /* Reset the preparation Flags */ _XfePrepareFlags(nw) = XfePrepareNone; /* buffer_type */ if (_XfeBufferType(nw) != _XfeBufferType(ow)) { _XfeBufferType(nw) = _XfeBufferType(ow); _XfeWarning(nw,MESSAGE7); } /* preferred_height */ if (_XfePreferredHeight(nw) != _XfePreferredHeight(ow)) { _XfePreferredHeight(nw) = _XfePreferredHeight(ow); _XfeWarning(nw,MESSAGE2); } /* preferred_width */ if (_XfePreferredWidth(nw) != _XfePreferredWidth(ow)) { _XfePreferredWidth(nw) = _XfePreferredWidth(ow); _XfeWarning(nw,MESSAGE3); } /* pointer_inside */ if (_XfePointerInside(nw) != _XfePointerInside(ow)) { _XfePointerInside(nw) = _XfePointerInside(ow); _XfeWarning(nw,MESSAGE4); } /* num_popups */ if (_XfeNumPopups(nw) != _XfeNumPopups(ow)) { _XfeNumPopups(nw) = _XfeNumPopups(ow); _XfeWarning(nw,MESSAGE5); } /* popup_list */ if (_XfePopupList(nw) != _XfePopupList(ow)) { _XfePopupList(nw) = _XfePopupList(ow); _XfeWarning(nw,MESSAGE6); } /* resize_width */ if (_XfeUsePreferredWidth(nw) != _XfeUsePreferredWidth(ow)) { if(_XfeUsePreferredWidth(nw)) { _XfeConfigFlags(nw) |= (XfeConfigLayout| XfeConfigGeometry| XfeConfigExpose); } } /* resize_height */ if (_XfeUsePreferredHeight(nw) != _XfeUsePreferredHeight(ow)) { if(_XfeUsePreferredHeight(nw)) { _XfeConfigFlags(nw) |= (XfeConfigLayout| XfeConfigGeometry| XfeConfigExpose); } } /* height */ if (_XfeHeight(nw) != _XfeHeight(ow)) { /* if resize_heigh is True, we dont allow width changes */ if (_XfeUsePreferredHeight(nw)) { _XfeHeight(nw) = _XfeHeight(ow); } else { _XfeConfigFlags(nw) |= (XfeConfigLayout|XfeConfigExpose); } } /* width */ if (_XfeWidth(nw) != _XfeWidth(ow)) { /* if resize_width is True, we dont allow width changes */ if (_XfeUsePreferredWidth(nw)) { _XfeWidth(nw) = _XfeWidth(ow); } else { _XfeConfigFlags(nw) |= (XfeConfigLayout|XfeConfigExpose); } } /* cursor */ if (_XfeCursor(nw) != _XfeCursor(ow)) { /* If the new cursor is good, define it */ if (_XfeCursorGood(_XfeCursor(nw))) { XfeCursorDefine(nw,_XfeCursor(nw)); } else { XfeCursorUndefine(nw); } } /* Changes that affect the layout and geometry */ if ((_XfeHighlightThickness(nw) != _XfeHighlightThickness(ow)) || (_XfeMarginTop(nw) != _XfeMarginTop(ow)) || (_XfeMarginBottom(nw) != _XfeMarginBottom(ow)) || (_XfeMarginLeft(nw) != _XfeMarginLeft(ow)) || (_XfeMarginRight(nw) != _XfeMarginRight(ow)) || (_XfeShadowThickness(nw) != _XfeShadowThickness(ow)) || (_XfeUnitType(nw) != _XfeUnitType(ow))) { _XfeConfigFlags(nw) |= (XfeConfigLayout|XfeConfigGeometry|XfeConfigExpose); } /* shadow_type */ if (_XfeShadowType(nw) != _XfeShadowType(ow)) { /* Make sure the new shadow type is ok */ XfeRepTypeCheck(nw,XmRShadowType,&_XfeShadowType(nw),XfeDEFAULT_SHADOW_TYPE); _XfeConfigFlags(nw) |= XfeConfigExpose; } /* sensitive */ if (_XfeSensitive(nw) != _XfeSensitive(ow)) { _XfeConfigFlags(nw) |= XfeConfigExpose; } /* pretend_sensitive */ if (_XfeIsSensitive(nw) != _XfeIsSensitive(ow)) { _XfeConfigFlags(nw) |= XfeConfigExpose; } /* background_pixel or background_pixmap */ if (((_XfeBackgroundPixel(nw) != _XfeBackgroundPixel(ow)) || (_XfeBackgroundPixmap(nw) != _XfeBackgroundPixmap(ow))) && (_XfeBufferType(nw) != XmBUFFER_NONE)) { /* Release the old background GC */ _XfePrimitiveReleaseBackgroundGC(nw); /* Allocate the new background GC */ _XfePrimitiveAllocateBackgroundGC(nw); } return _XfePrimitiveChainSetValues(ow,rw,nw,xfePrimitiveWidgetClass); }