/*************************************************************************************** ** Ada language interface to OSF/Motif toolkit ** ** Version: 1.0 ** ** Release date: 3/19/91 ** ** Compiled under: ** VADS 5.5+ on Apollo Domain / DEC Ultrix / SCO Unix ** ** This is an Ada binding to the OSF Motif toolkit. ** Requires: ** OSF/Motif toolkit ** Verdix (or Verdix-derived) Ada libraries ** ** Author: ** Boeing Commercial Airplanes Avionics Flight Systems Organization ** ** ** Mailing Address: ** P.O. Box 3999, M/S 65-07 ** Seattle, WA 98124 ** Attn: E. J. Jones ** ** ** Approved for public release; distribution is unlimited. Per DoD Directive ** 5230.24. ** ** Copyright (c) 1991, The Boeing Company, Seattle, Washington. This software, ** the BCA Ada language interface to the OSF/Motif toolkit, produced by the ** Boeing Commercial Airplane Company and made available under STARS (Software ** Technology for Adaptable, Reliable Systems) is approved for release under ** Distribution "A" of the Scientific and Technical Information Program ** Classification Scheme (DoD Directive 5230.24) unless otherwise indicated. ** Sponsored by the U.S. Defense Advanced Research Project Agency (DARPA) under ** contract F19628-88-D-0028, the STARS program is supported by the military ** services, SEI, and MITRE, with the U.S. Air Force as the executive ** contracting agent. The code identified herein is subject to change. ** ** Permission to use, modify, copy, and comment on this software for purposes ** stated under Distribution "A" and without fee is hereby granted. This ** software retains Contractor indemnification to the Government regarding ** copyrights pursuant to the above referenced STARS contract. The Government ** disclaims all responsibility against liability, including costs and expenses ** for violation of proprietary rights, or copyrights arising out of the ** creation or use of this software. ** ** In addition, the Government and The Boeing Company disclaim all warranties ** with regard to this software, including all implied warranties of ** merchantability and fitness. In no event shall the Government or The Boeing ** Company be liable for any special, indirect or consequential damages or any ** damages whatsoever resulting from the loss of use, data or profits, whether ** in action of contract, negligence or other tortuous action, arising in ** connection with the use or performance of this software. The Boeing Company ** does not agree to support or maintain this software or to produce any ** future versions. *************************************************************************************/ /*PROLOGUE******************************************************************************** * * * NAME: Ada bindings for OSF MOTIF for A/FS CORE library * * FUNCTION: xm_binding.c is a file that contains the C code that was needed to * implement the Ada bindings to the X toolkit and the OSF Motif * widget set. * * S/W FAMILY: CORE library * * RESTRICTIONS: Assumptions, expected libraries, etc. * * ****************************************************************************************/ /***************************************************************** for the intrinsics classes *****************************************************************/ /*---------------------------------------------------------------------- -- Package XM BINDINGS ( C code ) ---------------------------------------------------------------------- -- CHANGE HISTORY -- Ver. Developer Date Description -- ---- -------- ----- --------------------------------- -- 1.0 E.J.Jones(206)477-3566 12/91 Original version for Ada Motif Bindings -- -- --------------------------------------------------------------------------*/ #include #include #include #include #include /***************************************************************** -- CORE CLASSES ******************************************************************/ WidgetClass coreFakeClass () { return widgetClass; } /***************************************************************** -- COMPOSITE CLASSES ******************************************************************/ WidgetClass compositeFakeClass () { return compositeWidgetClass; } /***************************************************************** -- CONSTRAINT CLASSES ******************************************************************/ WidgetClass constraintFakeClass () { return constraintWidgetClass; } /***************************************************************** -- SHELL CLASSES ******************************************************************/ WidgetClass topLevelShellFakeClass () { return topLevelShellWidgetClass; } WidgetClass transientShellFakeClass() { return transientShellWidgetClass; } WidgetClass overrideShellFakeClass() { return overrideShellWidgetClass; } WidgetClass wmShellFakeClass () { return wmShellWidgetClass; } WidgetClass vendorShellFakeClass() { return NULL; } /***************************************************************** for the intrinsics' event handler *****************************************************************/ static XEvent event; XEvent *current_event() { return &event; } /***************************************************************** OSF MOTIF WIDGETS ************************************************************************/ /* for the OSF MOTIF widget set */ #include "Xm/ArrowB.h" #include "Xm/ArrowBG.h" #include "Xm/BulletinB.h" #include "Xm/CascadeB.h" #include "Xm/CascadeBG.h" #include "Xm/Command.h" #include "Xm/CutPaste.h" #include "Xm/DialogS.h" #include "Xm/DrawingA.h" #include "Xm/DrawnB.h" #include "Xm/FileSB.h" #include "Xm/Form.h" #include "Xm/Frame.h" #include "Xm/Label.h" #include "Xm/LabelG.h" #include "Xm/List.h" #include "Xm/MainW.h" #include "Xm/MenuShell.h" #include "Xm/MessageB.h" #include "Xm/PanedW.h" #include "Xm/PushB.h" #include "Xm/PushBG.h" #include "Xm/RowColumn.h" #include "Xm/Scale.h" #include "Xm/ScrollBar.h" #include "Xm/ScrolledW.h" #include "Xm/SelectioB.h" #include "Xm/SeparatoG.h" #include "Xm/Separator.h" #include "Xm/Text.h" #include "Xm/ToggleB.h" #include "Xm/ToggleBG.h" #include "Xm/Xm.h" /************ OSF MOTIF WIDGET CLASSES *************/ WidgetClass xmArrowButtonWidgetFakeClass () { return xmArrowButtonWidgetClass; } WidgetClass xmArrowButtonGadgetFakeClass () { return xmArrowButtonGadgetClass; } WidgetClass xmBulletinBoardWidgetFakeClass () { return xmBulletinBoardWidgetClass; } WidgetClass xmCascadeButtonWidgetFakeClass () { return xmCascadeButtonWidgetClass; } WidgetClass xmCascadeButtonGadgetFakeClass () { return xmCascadeButtonGadgetClass; } WidgetClass xmCommandWidgetFakeClass () { return xmCommandWidgetClass; } WidgetClass xmDialogShellWidgetFakeClass () { return xmDialogShellWidgetClass; } WidgetClass xmDrawingAreaWidgetFakeClass () { return xmDrawingAreaWidgetClass; } WidgetClass xmDrawnButtonWidgetFakeClass () { return xmDrawnButtonWidgetClass; } WidgetClass xmFileSelectionBoxWdgtFkClass () { return xmFileSelectionBoxWidgetClass; } WidgetClass xmFormWidgetFakeClass () { return xmFormWidgetClass; } WidgetClass xmFrameWidgetFakeClass () { return xmFrameWidgetClass; } WidgetClass xmLabelWidgetFakeClass () { return xmLabelWidgetClass; } WidgetClass xmLabelGadgetFakeClass () { return xmLabelGadgetClass; } WidgetClass xmListWidgetFakeClass () { return xmListWidgetClass; } WidgetClass xmMainWindowWidgetFakeClass () { return xmMainWindowWidgetClass; } WidgetClass xmMenuShellWidgetFakeClass () { return xmMenuShellWidgetClass; } WidgetClass xmMessageBoxWidgetFakeClass () { return xmMessageBoxWidgetClass; } WidgetClass xmPanedWindowWidgetFakeClass () { return xmPanedWindowWidgetClass; } WidgetClass xmPushButtonWidgetFakeClass () { return xmPushButtonWidgetClass; } WidgetClass xmPushButtonGadgetFakeClass () { return xmPushButtonGadgetClass; } WidgetClass xmRowColumnWidgetFakeClass () { return xmRowColumnWidgetClass; } WidgetClass xmScaleWidgetFakeClass () { return xmScaleWidgetClass; } WidgetClass xmScrollBarWidgetFakeClass () { return xmScrollBarWidgetClass; } WidgetClass xmScrolledWindowWidgetFakeClass () { return xmScrolledWindowWidgetClass; } WidgetClass xmSelectionBoxWidgetFakeClass () { return xmSelectionBoxWidgetClass; } WidgetClass xmSeparatorGadgetFakeClass () { return xmSeparatorGadgetClass; } WidgetClass xmSeparatorWidgetFakeClass () { return xmSeparatorWidgetClass; } WidgetClass xmTextWidgetFakeClass () { return xmTextWidgetClass; } WidgetClass xmToggleButtonWidgetFakeClass () { return xmToggleButtonWidgetClass; } WidgetClass xmToggleButtonGadgetFakeClass () { return xmToggleButtonGadgetClass; } WidgetClass xmPrimitiveWidgetFakeClass () { return xmPrimitiveWidgetClass; } WidgetClass xmGadgetFakeClass () { return xmGadgetClass; } WidgetClass xmManagerWidgetFakeClass () { return xmManagerWidgetClass; } /* Not sure if OSF string manipulation routines need this to be here or not??? (HP WIDGET binding included this at the end for their string manipulation routines. */ #include XmString XmStringSegmentCreateFake (text, charset, direction, separator) char *text; XmStringCharSet charset; long direction; Boolean separator; { return XmStringSegmentCreate(text,charset,(XmStringDirection)direction,separator); } Boolean XmStringGetNextSegmentFk (context,text,charset,direction,separator) XmStringContext context; char *text; XmStringCharSet *charset; XmStringDirection *direction; Boolean *separator; { return XmStringGetNextSegment(context,&text,&charset,direction,separator); } Boolean XmStringGetLtoRFake ( string, charset, text ) XmString string; XmStringCharSet charset; char *text; { Boolean return_value ; char *buffer ; return_value = XmStringGetLtoR( string, charset, &buffer); strcpy (text, buffer) ; return (return_value) ; } Widget XmCommandGetChildFk (widget, child) Widget widget; long child; { return XmCommandGetChild(widget,(unsigned char)child); } Widget XmFileSelectionBoxGetChildFk(fs,which) Widget fs; long which; { return XmFileSelectionBoxGetChild(fs,(unsigned char)which); } /* this conversion from long to int type is not necessary void XmListAddItemFk(w,item,pos) Widget w; XmString item; long pos; { XmListAddItem(w,item,(int)pos); } */ /* this conversion from long to int type int not necessary void XmListAddItemUnselectedFk(w,item,pos) Widget w; XmString item; long pos; { XmListAddItemUnselected(w,item,(int)pos); } */ void XmTextGetStringFk ( w , str) Widget w; char *str; { char *buffer ; buffer = XmTextGetString(w); strcpy (str, buffer) ; } void XmStringDrawFk (d,w,fontlist,string,gc,x,y,width,alignment,layout_direction,clip) Display * d; Window w; XmFontList fontlist; XmString string; GC gc; Position x; Position y; Dimension width; long alignment; long layout_direction; XRectangle * clip; { XmStringDraw (d,w,fontlist,string,gc,x,y,width,(unsigned char)alignment, (unsigned char)layout_direction,clip); } void XmStringDrawImageFk (d,w,fontlist,string,gc,x,y,width,alignment,layout_direction,clip) Display * d; Window w; XmFontList fontlist; XmString string; GC gc; Position x; Position y; Dimension width; long alignment; long layout_direction; XRectangle * clip; { XmStringDrawImage (d,w,fontlist,string,gc,x,y,width,(unsigned char)alignment, (unsigned char)layout_direction,clip); } void XmStringDrawUnderlineFk (d,w,fontlist,string,gc,x,y,width,alignment,layout_direction,clip,underline) Display * d; Window w; XmFontList fontlist; XmString string; GC gc; Position x; Position y; Dimension width; long alignment; long layout_direction; XRectangle * clip; XmString underline; { XmStringDrawUnderline (d,w,fontlist,string,gc,x,y,width,(unsigned char)alignment, (unsigned char)layout_direction,clip); } long XmStringGetNextComponentFk (context,text,charset,direction,unknown_tag,unknown_length,unknown_value) XmStringContext * context; char ** text; XmStringCharSet * charset; XmStringDirection * direction; XmStringComponentType * unknown_tag; short * unknown_length; char ** unknown_value; { return (long)XmStringGetNextComponent (context,text,charset,direction,unknown_tag,unknown_length,unknown_value); } long XmStringPeekNextComponentFk (context) XmStringContext * context; { return (long)XmStringPeekNextComponent (context); }