?? string.c
字號(hào):
#include <StringP.h>#include <Xm/RepType.h>static void DefaultFont();static XmImportOperator ToInternalXmString();static void ToExternalXmString();static void ClassInitialize();static void Initialize();static void Destroy();static void Resize();static Boolean SetValues();static void DrawVisual();static void CalcVisualSize();static void CreateGC();#define defaultTranslations "\<EnterWindow>: PrimitiveEnter()\n\<LeaveWindow>: PrimitiveLeave()\n\~s ~m ~a <Key>Return: PrimitiveParentActivate()\n\<Key>osfActivate: PrimitiveParentActivate()\n\<Key>osfCancel: PrimitiveParentCancel()\n\<Key>osfHelp: PrimitiveHelp()"static XtResource resources[] = { { XmNtraversalOn, XmCTraversalOn, XmRBoolean, sizeof (Boolean), XtOffsetOf( struct _XmPrimitiveRec, primitive.traversal_on), XmRImmediate, (XtPointer) False }, { XmNshadowThickness, XmCShadowThickness, XmRHorizontalDimension, sizeof (Dimension), XtOffsetOf( struct _XmpStringRec, primitive.shadow_thickness), XmRImmediate, (XtPointer) 0 }, { XmNtext, XmCText, XmRXmString, sizeof(_XmString), XtOffsetOf( struct _XmpStringRec,string.text), XmRImmediate, (XtPointer) NULL }, { XmNfontList, XmCFontList, XmRFontList, sizeof(XmFontList), XtOffsetOf( struct _XmpStringRec,string.font_list), XtRCallProc, (XtPointer) DefaultFont }, { XmNalignment, XmCAlignment, XmRAlignment, sizeof(unsigned char), XtOffsetOf( struct _XmpStringRec,string.alignment), XmRImmediate, (XtPointer) XmALIGNMENT_CENTER }, { XmNstringDirection, XmCStringDirection, XmRStringDirection, sizeof(unsigned char), XtOffsetOf( struct _XmpStringRec,string.string_direction), XmRImmediate, (XtPointer) XmSTRING_DIRECTION_DEFAULT },};static XmSyntheticResource syn_resources[] ={ { XmNtext, sizeof (_XmString), XtOffsetOf( struct _XmpStringRec, string.text), ToExternalXmString, ToInternalXmString },};externaldef (xmpstringclassrec) XmpStringClassRec xmpStringClassRec = { { (WidgetClass)&xmpBlobClassRec, /* superclass */ "XmpString", /* class_name */ sizeof(XmpStringRec), /* widget_size */ ClassInitialize, /* class_initialize */ NULL, /* class_part_initialize */ FALSE, /* class_inited */ Initialize, /* initialize */ NULL, /* initialize_hook */ XtInheritRealize, /* realize */ NULL, /* actions */ NULL, /* num_actions */ resources, /* resources */ XtNumber(resources), /* num_resources */ NULLQUARK, /* xrm_class */ TRUE, /* compress_motion */ XtExposeCompressMaximal, /* compress_exposure */ TRUE, /* compress_enterleave */ FALSE, /* visible_interest */ Destroy, /* destroy */ Resize, /* resize */ XtInheritExpose, /* expose */ SetValues, /* set_values */ NULL, /* set_values_hook */ XtInheritSetValuesAlmost, /* set_values_almost */ NULL, /* get_values_hook */ NULL, /* accept_focus */ XtVersion, /* version */ NULL, /* callback_private */ defaultTranslations, /* tm_table */ XtInheritQueryGeometry, /* query_geometry */ NULL, /* display_accelerator */ NULL, /* extension */ }, { /* XmPrimitive */ XmInheritBorderHighlight, /* border_highlight */ XmInheritBorderUnhighlight, /* border_unhighlight */ XtInheritTranslations, /* translations */ NULL, /* arm_and_activate */ syn_resources, /* syn_resources */ XtNumber(syn_resources), /* num_syn_resources */ NULL, /* extension */ }, { /* XmpBlob */ DrawVisual, /* draw_visual */ XmInheritDrawShadow, /* draw_shadow */ CreateGC, /* create_text_gc */ XmInheritDestroyGC, /* destroy_text_gc */ XmInheritSelectGC, /* select_text_gc */ XmInheritCalcWidgetSize, /* calc_widget_size */ CalcVisualSize, /* calc_visual_size */ NULL, /* extension */ }, { /* XmpString */ XmLABEL_FONTLIST, /* default_fontlist_type */ NULL, /* extension */ }};externaldef( xmpstringwidgetclass) WidgetClass xmpStringWidgetClass = (WidgetClass) &xmpStringClassRec;static XmRepTypeId alignmentId;static XmRepTypeId stringDirectionId;/************************************************************************ * * DefaultFont * ***********************************************************************/static void DefaultFont (w, offset, value) Widget w; int offset; XrmValue *value;{ XmpStringWidgetClass wc = (XmpStringWidgetClass)XtClass(w); static XmFontList f; /* Dynamic default for XmNfontList. Get class's default font type. */ f = _XmGetDefaultFontList (w, wc->string_class.default_fontlist_type); value->addr = (char *)&f; value->size = sizeof(f);}/************************************************************************ * * ToInternalXmString * ***********************************************************************/static XmImportOperator ToInternalXmString (w, offset, value) Widget w; int offset; XtArgVal *value;{ XmpStringWidget sw = (XmpStringWidget)w; _XmString is = NULL; /* Convert synthetic resource to internal format. */ if (sw->string.text != NULL && _XmStringIsXmString ((XmString)sw->string.text)) is = _XmStringCreate ((XmString)sw->string.text); *value = (XtArgVal)is; return XmSYNTHETIC_LOAD;}/************************************************************************ * * ToExternalXmString * ***********************************************************************/static void ToExternalXmString (w, resource, value) Widget w; XrmQuark resource; XtArgVal *value;{ XmpStringWidget sw = (XmpStringWidget)w; XmString es = NULL; /* Convert synthetic resource value to external format */ if (sw->string.text != NULL) es = _XmStringCreateExternal (sw->string.font_list, sw->string.text); *value = (XtArgVal)es;}/********************************************************************* * * ClassInitialize * ********************************************************************/ static void ClassInitialize(){ /* Use Motif representation types for XmNalignment, XmNstringDirection */ alignmentId = XmRepTypeGetId (XmRAlignment); stringDirectionId = XmRepTypeGetId (XmRStringDirection);}/************************************************************ * * Initialize * ************************************************************/static void Initialize (request_w, new_w, args, num_args) Widget request_w; Widget new_w; ArgList args; Cardinal *num_args;{ XmpStringWidgetClass wc = (XmpStringWidgetClass)XtClass(new_w); XmpStringWidget nw = (XmpStringWidget)new_w; unsigned char stringDirection; Arg dirArgs[1]; /* Validate XmNalignment */ if (!XmRepTypeValidValue (alignmentId, nw->string.alignment, (Widget)nw)) nw->string.alignment = XmALIGNMENT_CENTER; /* Get Default XmNstringDirection from parent */ if (nw->string.string_direction == XmSTRING_DIRECTION_DEFAULT) { if (XmIsManager (XtParent(nw))) { XtSetArg (dirArgs[0], XmNstringDirection, &stringDirection); XtGetValues (XtParent(nw), dirArgs, 1); nw->string.string_direction = stringDirection; } else { nw->string.string_direction = XmSTRING_DIRECTION_L_TO_R; } }
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -