static void initialize(Widget request, Widget new_w, ArgList args, Cardinal *num_args) { DEBUGOUT(_LtDebug(__FILE__, new_w, "initialize: %i args\n" "\trequest X %5i Y %5i W %5i H %5i\n" "\t new_w X %5i Y %5i W %5i H %5i\n", *num_args, XtX(request), XtY(request), XtWidth(request), XtHeight(request), XtX(new_w), XtY(new_w), XtWidth(new_w), XtHeight(new_w))); DEBUGOUT(_LtDebugPrintArgList(__FILE__, new_w, args, *num_args, False)); /* check the RepType resources */ if (!XmRepTypeValidValue(XmRepTypeGetId(XmRMultiClick), DB_MultiClick(new_w), new_w)) DB_MultiClick(new_w) = XmMULTICLICK_KEEP; if (!XmRepTypeValidValue(XmRepTypeGetId(XmRShadowType), DB_ShadowType(new_w), new_w)) DB_ShadowType(new_w) = XmSHADOW_ETCHED_IN; DB_Armed(new_w) = False; DB_Timer(new_w) = 0; }
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; }
static Boolean set_values(Widget current, Widget request, Widget new_w, ArgList args, Cardinal *num_args) { Boolean need_refresh = False; DEBUGOUT(_LtDebug(__FILE__, new_w, "XmGadget set_values\n")); /* Force the borderWidth to 0 */ new_w->core.border_width = 0; if (!XmRepTypeValidValue(XmRepTypeGetId(XmRUnitType), G_UnitType(new_w), new_w)) { G_UnitType(new_w) = G_UnitType(current); } if (!XmRepTypeValidValue(XmRepTypeGetId(XmRNavigationType), G_NavigationType(new_w), new_w)) { G_NavigationType(new_w) = G_NavigationType(current); } _XmGadgetImportArgs(new_w, args, num_args); need_refresh = _XmNavigSetValues(current, request, new_w, args, num_args); return need_refresh; }
void _DtTermPrimInitRepTypes(void) { static Boolean first = True; _DtTermProcessLock(); if (first) { /* register our resource converters... */ #ifdef NotDefined (void) XtSetTypeConverter(XmRString, DtRDtTermTerminalSize, CvtStringToTerminalSize, NULL, 0, XtCacheNone, CvtStringToTerminalSizeDestroy); #endif /* NotDefined */ (void) XtSetTypeConverter(XmRString, DtRDtTermTerminalSizeList, CvtStringToTerminalSizeList, NULL, 0, XtCacheNone, CvtStringToTerminalSizeListDestroy); (void) XmRepTypeRegister(DtRDtTermEmulationMode, TermEmulationModeStrings, NULL, (unsigned char ) XtNumber(TermEmulationModeStrings)); (void) XmRepTypeRegister(DtRDtTermCharCursorStyle, CharCursorStyleStrings, NULL, (unsigned char ) XtNumber(CharCursorStyleStrings)); _DtTermPrimEmulationMode = XmRepTypeGetId(DtRDtTermEmulationMode); _DtTermPrimCharCursorStyle = XmRepTypeGetId(DtRDtTermCharCursorStyle); first = False; } _DtTermProcessUnlock(); return; }
static Boolean set_values(Widget old, Widget request, Widget new_w, ArgList args, Cardinal *num_args) { Boolean refresh_needed = False; DEBUGOUT(_LtDebug(__FILE__, new_w, "set_values: %i args\n" "\t old X %5i Y %5i W %5i H %5i\n" "\trequest X %5i Y %5i W %5i H %5i\n" "\t new_w X %5i Y %5i W %5i H %5i\n", *num_args, XtX(old), XtY(old), XtWidth(old), XtHeight(old), XtX(request), XtY(request), XtWidth(request), XtHeight(request), XtX(new_w), XtY(new_w), XtWidth(new_w), XtHeight(new_w))); DEBUGOUT(_LtDebugPrintArgList(__FILE__, new_w, args, *num_args, False)); /* check the RepType resources */ if (!XmRepTypeValidValue(XmRepTypeGetId(XmRMultiClick), DB_MultiClick(new_w), new_w)) DB_MultiClick(new_w) = DB_MultiClick(old); if (!XmRepTypeValidValue(XmRepTypeGetId(XmRShadowType), DB_ShadowType(new_w), new_w)) DB_ShadowType(new_w) = DB_ShadowType(old); if (DB_ShadowType(old) != DB_ShadowType(new_w)) { refresh_needed = True; } /* rws 23 Jul 1997 Label will have polluted the height and width since it will not be able to determine the correct size, since it does not know what is in the window! Therefore if the size has changed use the requested size. xdir top right hand logo button JHG: If there's something identifiable in the button, trust Label. rws 11 Sep 1999 Don't trust Label. Take a look at drawnbutton/test9 */ if (/* !Lab_TextRect_height(new_w) && */ (XtWidth(new_w) != XtWidth(request) || XtHeight(new_w) != XtHeight(request))) { XtWidth(new_w) = XtWidth(request); XtHeight(new_w) = XtHeight(request); refresh_needed = True; } return refresh_needed; }
static void ClassInitialize(void) { static char *corners[] = {"straight", "beveled", "slant", "round"}; static char *balloons[] = {"square", "shaped"}; #if 0 XtAddConverter(XmRString, XmRBackingStore, XmuCvtStringToBackingStore, NULL, 0); #endif XmRepTypeRegister(XmCCornerStyle, corners, NULL, 4); corner_style_repid = XmRepTypeGetId(XmCCornerStyle); XmRepTypeRegister(XmCBalloonStyle, balloons, NULL, 2); balloon_style_repid = XmRepTypeGetId(XmCBalloonStyle); }
XmRepTypeId XmRepTypeRegister(String rep_type, String *value_names, unsigned char *values, unsigned char num_values) { int i, len; char *cp; XmRepTypeId id = XmRepTypeGetId(rep_type); XmRepTypeEntryRec ne; XtConvertArgRec Args[1]; if (id != XmREP_TYPE_INVALID) { return id; } if (number_of_types + 1 > max_number_of_types) { max_number_of_types = (max_number_of_types + 1) * 2; rep_types = (XmRepTypeList)XtRealloc((char *)rep_types, sizeof(XmRepTypeListRec) * max_number_of_types); } /* Find the total size of the lists and strings, and allocate it */ len = 0; for (i = 0; i < num_values; i++) len += strlen(value_names[i]); cp = XtMalloc(strlen(rep_type) + 1 + num_values * (values ? sizeof(String) + 2 : sizeof(String) + 1) + len); /* Copy the data into the new record */ ne.rep_type_name = rep_type; ne.value_names = value_names; ne.values = values; ne.num_values = num_values; ne.reverse_installed = False; ne.rep_type_id = number_of_types; __XmRepTypeCopyRecord(rep_types + number_of_types, &ne, (String *)cp, (char *)((String *)cp + num_values)); /* now install the forward converter */ Args[0].address_mode = XtImmediate; Args[0].address_id = (XtPointer)(long)number_of_types; Args[0].size = sizeof(XmRepTypeId); XtSetTypeConverter(XmRString, rep_type, __XmCvtStringToRep, Args, 1, XtCacheNone, NULL); return number_of_types++; }
void XmCvtStringToUnitType(XrmValuePtr args, Cardinal *num_args, XrmValue *from_val, XrmValue *to_val) { int result; static unsigned char value; /* Much like __XmCvtStringToRep, but there's no display * so it can't be called directly. */ if (from_val->addr == NULL) { XtStringConversionWarning(from_val->addr, XmRUnitType); to_val->addr = NULL; to_val->size = 0; return; } result = __XmRepTypeStringToValue(rep_types + XmRepTypeGetId(XmRUnitType), (String)from_val->addr); if (result < 0) { XtStringConversionWarning(from_val->addr, XmRUnitType); to_val->addr = NULL; to_val->size = 0; return; } value = (unsigned char)result; if (to_val->addr == NULL) { to_val->addr = (XPointer)&value; to_val->size = sizeof value; } else { if (to_val->size >= sizeof value) { *(unsigned char *)to_val->addr = value; to_val->size = sizeof value; } else { XtStringConversionWarning(from_val->addr, XmRUnitType); to_val->addr = NULL; to_val->size = 0; } } }
/*----------------------------------------------------------------------*/ /* extern */ Boolean XfeRepTypeCheck(Widget w, String rep_type, unsigned char * address, unsigned char fallback) /*----------------------------------------------------------------------*/ { Boolean result = True; assert( address != NULL ); if (!XmRepTypeValidValue(XmRepTypeGetId(rep_type),*address,w)) { result = False; *address = fallback; } return result; }