1typedef __SIZE_TYPE__ size_t; 2typedef void *XtPointer; 3 4typedef struct _WidgetRec *Widget; 5typedef struct _WidgetClassRec *WidgetClass; 6 7extern WidgetClass commandWidgetClass; 8 9typedef void (*XtCallbackProc)( 10 Widget , 11 XtPointer , 12 XtPointer 13); 14 15extern const char XtStrings[]; 16 17 18typedef struct 19{ 20 char *Name, 21 *Label; 22 XtCallbackProc Callback; 23 XtPointer ClientData; 24 Widget W; 25} DialogButtonType, *DialogButtonTypePtr; 26 27 28Widget AddButtons(Widget Parent, Widget Top, 29 DialogButtonTypePtr Buttons, size_t Count) 30{ 31 int i; 32 33 for (i = 0; i < Count; i++) 34 { 35 if (!Buttons[i].Label) 36 continue; 37 Buttons[i].W = XtVaCreateManagedWidget(Buttons[i].Name, 38 commandWidgetClass, 39 Parent, 40 ((char*)&XtStrings[429]) , Buttons[i].Label, 41 "fromHoriz" , i ? Buttons[i-1].W : ((void *)0) , 42 "fromVert" , Top, 43 "resizable" , 1 , 44 ((void *)0) ); 45 46 XtAddCallback(((char*)&XtStrings[136]), 47 Buttons[i].Callback, Buttons[i].ClientData); 48 } 49 return(Buttons[Count-1].W); 50} 51 52