static void initialize(Widget request, Widget new_w, ArgList args, Cardinal *num_args) { XmBaseClassExt bce; DEBUGOUT(_LtDebug(__FILE__, new_w, "XmGadget initialize\n")); /* Force the borderWidth to 0 */ new_w->core.border_width = 0; if (!XmRepTypeValidValue(XmRepTypeGetId(XmRNavigationType), G_NavigationType(new_w), new_w)) { G_NavigationType(new_w) = XmNONE; } if (!XmRepTypeValidValue(XmRepTypeGetId(XmRUnitType), G_UnitType(new_w), new_w)) { G_UnitType(new_w) = XmPIXELS; } if (XtWidth(request) == (Dimension)0) { XtWidth(new_w) = (G_HighlightThickness(new_w) * 2 + G_ShadowThickness(new_w) * 2); } if (XtHeight(request) == (Dimension)0) { XtHeight(new_w) = (G_HighlightThickness(new_w) * 2 + G_ShadowThickness(new_w) * 2); } _XmGadgetImportArgs(new_w, args, num_args); /* BaseClass stuff provides this */ _XmGadgetImportSecondaryArgs(new_w, args, num_args); bce = *(XmBaseClassExt *)_XmGetBaseClassExtPtr(XtClass(new_w), XmQmotif); if (bce && bce->secondaryObjectClass) { if (bce->secondaryObjectCreate) { (bce->secondaryObjectCreate) (request, new_w, args, num_args); } } _XmNavigInitialize(request, new_w, args, num_args); G_EventMask(new_w) = 0; G_HaveTraversal(new_w) = False; G_Highlighted(new_w) = False; G_HighlightDrawn(new_w) = False; }
/************************************************************************ * * Initialize * The main widget instance initialization routine. * ************************************************************************/ static void Initialize( Widget rw, Widget nw, ArgList args, Cardinal *num_args ) { XmGadget request = (XmGadget) rw ; XmGadget gw = (XmGadget) nw; XmBaseClassExt *cePtr; XtInitProc secondaryCreate; XmString tool_tip_string; static XtResource subresources[] = { { XmNtoolTipString, XmCToolTipString, XmRXmString, sizeof(XmString), 0, XmRImmediate, (XtPointer) NULL }, }; if( !XmRepTypeValidValue( XmRID_UNIT_TYPE, gw->gadget.unit_type, (Widget) gw) ) { gw->gadget.unit_type = XmPIXELS; } /* Convert the fields from unit values to pixel values */ _XmGadgetImportArgs( (Widget) gw, args, num_args); _XmGadgetImportSecondaryArgs( (Widget) gw, args, num_args); cePtr = _XmGetBaseClassExtPtr(XtClass(gw), XmQmotif); if ((*cePtr) && (*cePtr)->secondaryObjectClass && (secondaryCreate = (*cePtr)->secondaryObjectCreate)) (*secondaryCreate)( (Widget) request, (Widget) gw, args, num_args); XtGetSubresources(nw, &tool_tip_string, NULL, NULL, subresources, XtNumber(subresources), args, *num_args); XmSetToolTipString(nw, tool_tip_string); gw->gadget.event_mask = 0; gw->gadget.have_traversal = FALSE ; gw->gadget.highlighted = FALSE ; gw->gadget.highlight_drawn = FALSE ; if( (gw->gadget.navigation_type != XmDYNAMIC_DEFAULT_TAB_GROUP) && !XmRepTypeValidValue( XmRID_NAVIGATION_TYPE, gw->gadget.navigation_type, (Widget) gw) ) { gw->gadget.navigation_type = XmNONE ; } _XmNavigInitialize ((Widget) request, (Widget) gw, args, num_args); gw->gadget.have_traversal = FALSE ; /* Check the geometry information for the widget */ if (request->rectangle.width == 0) gw->rectangle.width += gw->gadget.highlight_thickness * 2 + gw->gadget.shadow_thickness * 2; if (request->rectangle.height == 0) gw->rectangle.height += gw->gadget.highlight_thickness * 2 + gw->gadget.shadow_thickness * 2; /* Force the border width to 0 */ gw->rectangle.border_width = 0; return ; }