home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / lifeos2.zip / LIFE-1.02 / LIB / X_PRED.LF < prev    next >
Text File  |  1996-06-04  |  11KB  |  415 lines

  1. %    $Id: x_pred.lf,v 1.2 1994/12/09 00:27:42 duchier Exp $    
  2. % Copyright 1992 Digital Equipment Corporation.
  3. % Distributed only by permission.
  4. %
  5. % Last modified by vanroy
  6. %      modified on Wed Jun 23 16:13:19 MET DST 1993 by dumant
  7. %      modified on Wed Jun 23 07:06:28 1993 by Rmeyer
  8. %      modified on Thu Nov 26 19:57:04 1992 by herve
  9. %
  10. % X predicates for Life
  11. %
  12.  
  13. % default values in the X predicates
  14.  
  15. global(xDefaultScreen<-"")?
  16. global(xDefaultName<-"Life")?
  17. persistent(xDefaultBackground)?
  18. xDefaultBackground<<-xWhite?
  19. global(xDefaultBorderWidth<-2)?
  20. persistent(xDefaultBorderColor)?
  21. xDefaultBorderColor<<-xBlack?
  22. global(xDefaultDepth<-0)?
  23. global(xDefaultClass<-1)?
  24. global(xDefaultVisual<-0)?
  25. global(xDefaultFunction<-xCopy)?
  26. global(xDefaultLineWidth<-xThinLine)?
  27. global(xDefaultFontName<-"9x15")?
  28. global(xDefaultFont<- -1)?
  29. global(xDefaultEventMask<-xExposureMask \/ xKeyPressMask \/ xButtonPressMask)?
  30. global(xDefaultPsFilename<-"X.ps")?
  31.  
  32. xDefaultColor -> copy_term(xBlack).
  33.  
  34.  
  35. % hierarchy of events 
  36.  
  37. %%% RM 4th May 93 revised the hierarchy (still not complete however)
  38.  
  39.  
  40. %                    ,-configure_event
  41. %                    |
  42. %      ,-window_event|-expose_event
  43. %      |             |
  44. %      |             `-destroy_event
  45. %      |                    
  46. %      |                         ,-motion_event
  47. %      |            ,-mouse_event|
  48. %      |            |            |-button_event
  49. % event|-input_event|            |                ,-enter_event
  50. %      |            |             `-entrance_event-|
  51. %      |            |                  `-leave_event
  52. %      |            `-keyboard_event
  53. %      |
  54. %      |-null_event
  55. %      |
  56. %      `-misc_event
  57. %
  58.  
  59.  
  60. configure_event <| window_event.
  61. expose_event    <| window_event.
  62. destroy_event   <| window_event.
  63.  
  64. button_event    <| mouse_event.
  65. motion_event    <| mouse_event.
  66. mouse_event     <| input_event.
  67.  
  68. enter_event     <| entrance_event.
  69. leave_event     <| entrance_event.
  70. entrance_event  <| mouse_event.
  71.  
  72. keyboard_event  <| input_event.
  73.  
  74. window_event    <| event.
  75. input_event     <| event.
  76. null_event      <| event.
  77. misc_event      <| event.
  78.  
  79.  
  80.  
  81.  
  82.  
  83. % Drawables
  84.  
  85. window <| drawable.
  86. pixmap <| drawable.
  87.  
  88.  
  89.  
  90. % X predicates
  91.  
  92. xOpenConnection (D,Screen:{xDefaultScreen;string}) :- !,
  93.     xcOpenConnection (Screen, Display:@(id => D)), 
  94.                               %%% en attendant de modifier le C
  95.     xBlack<<- xGetScreenBlackPixel (D, xGetConnectionDefaultScreen (D))
  96.                   & @(name => "black"),
  97.     xWhite<<- xGetScreenWhitePixel (D, xGetConnectionDefaultScreen (D))
  98.                   & @(name => "white").
  99.  
  100. %    setq (xBlack, BlackPixel),
  101. %    setq (xWhite, WhitePixel),
  102. %    pause(0.5)
  103.  
  104.  
  105.  
  106. xDefaultRootWindow (Display, Root) :-
  107.     xcDefaultRootWindow (Display,Root).
  108.  
  109.  
  110. xCloseConnection (Display) :-
  111.     xcCloseConnection (Display).
  112.  
  113.  
  114. xCreateWindow (Display, X0, Y0, Width, Height,Window, 
  115.                parent=>Parent,
  116.                color=>Color:{xDefaultBackground;int},
  117.                borderwidth=>BorderWidth:{xDefaultBorderWidth;int},
  118.                bordercolor=>BorderColor:{xDefaultBorderColor;int},
  119.            windowtitle=>WindowTitle:{xDefaultName;string},
  120.            icontitle=>IconTitle,
  121.            eventmask=>EventMask:{xDefaultEventMask;int},
  122.            permanent=>Permanent:{false;bool},
  123.            show=>Show:{true;bool},
  124.                overrideredirect=>OverrideRedirect:{false;bool}) :-
  125.     IconTitle = {WindowTitle;string},
  126.     xcDefaultRootWindow (Display,Root),
  127.     Parent:@(id => P) = {Root;@},
  128.     !,
  129.     xcCreateSimpleWindow (Display, P, X0, Y0, Width, Height, 
  130.                   Color, WindowTitle, IconTitle, 
  131.                   BorderWidth, BorderColor,
  132.                   Permanent, Show, 
  133.                   Win:@(id=>W)),
  134. %    pause (0.75),
  135. %    xSetWindowBackingStore (W, xAlways),
  136. %    xSetWindowSaveUnder (W, xTrue),
  137.     xcSelectInput (Display, W, EventMask),
  138.     Win = @(display=>Display, permanent=>Permanent),
  139. %    xSetWindowBackPixel (Win, Color),
  140.     xSetWindowOverrideRedirect (Win, OverrideRedirect),
  141.     cond (Show, xcMapWindow (Display,W)),
  142.     Window = Win & @(id => W).
  143.  
  144.  
  145. xShowWindow (Window:@(display=>Display, id=>W)) :- 
  146.     xcMapWindow (Display, W).
  147.  
  148.  
  149. xRaiseWindow (Window:@(display => Display, id=>W)) :- 
  150.     xcRaiseWindow (Display, W).
  151.  
  152.  
  153. xHideWindow (Window:@(display=>Display, id=>W)) :- 
  154.     xcUnmapWindow (Display, W).
  155.  
  156.  
  157. xClearWindow (Window:@(display=>Display)) :- 
  158.     xcClearWindow (Display, Window).
  159.  
  160.  
  161. xRefreshWindow (Window:@(display=>Display)) :- 
  162.      xcRefreshWindow (Display, Window).
  163.  
  164.  
  165. xPostScriptWindow (Window:@(display=>Display),
  166.                Filename:{xDefaultPsFilename;string}) :- !,
  167.      xcPostScriptWindow (Display, Window, Filename).
  168.  
  169.  
  170. xGetWindowGeometry (Window:@(display=>Display), 
  171.             X0, Y0, Width, Height) :- 
  172.     xcGetWindowGeometry (Display, Window, X0, Y0, Width, Height).
  173.  
  174.  
  175. xSetWindowGeometry (Window:@(display=>Display), 
  176.             X0, Y0, Width, Height) :- 
  177.     xcSetWindowGeometry (Display, Window, X0, Y0, Width, Height).
  178.  
  179.  
  180. xResizeWindowPixmap (Window:@(display=>Display),
  181.              Width, Height) :- 
  182.     xcResizeWindowPixmap (Display, Window, Width, Height).
  183.  
  184. xSetWindowColor (Window, Color) :- 
  185.      xSetWindowBackPixel (Window, Color).
  186.  
  187.  
  188. xDestroyWindow (Window:@(display=>Display)) :- 
  189.      xcDestroyWindow (Display, Window).
  190.  
  191.  
  192. xRequestColor (Window:@(display=>Display), 
  193.            Red, Green, Blue, Color) :- 
  194.      ColorMap = xGetWindowColormap (Window),
  195.     xcRequestColor (Display, ColorMap, Red, Green, Blue, Color).
  196.  
  197.  
  198. xRequestNamedColor (Window:@(display=>Display), 
  199.             Name, Color) :- 
  200.      ColorMap = xGetWindowColormap (Window),
  201.     xcRequestNamedColor (Display, ColorMap, Name, Color).
  202.  
  203.  
  204. xFreeColor (Window:@(display=>Display), 
  205.         Color) :-
  206.      ColorMap = xGetWindowColormap (Window),
  207.     xcFreeColor (Display, ColorMap, Color).
  208.  
  209.  
  210. xDrawLine (Window:@(display=>Display), 
  211.        X0, Y0, X1, Y1, 
  212.        function=>Function:{xDefaultFunction; int}, 
  213.        color=>Color:{xDefaultColor; int}, 
  214.        linewidth=>LineWidth:{xDefaultLineWidth; real}) 
  215.     :- !,
  216.      xcDrawLine (Display, Window, X0, Y0, X1, Y1, 
  217.                 Function, Color, LineWidth).
  218.  
  219.  
  220. xMoveWindow(Window:@(display=>Display),X,Y) :-
  221.     xcMoveWindow(Display,Window,X,Y).
  222.  
  223.  
  224. xDrawRectangle (Window:@(display=>Display), 
  225.             X0, Y0, Width, Height, 
  226.             function=>Function:{xDefaultFunction; int}, 
  227.             color=>Color:{xDefaultColor; int}, 
  228.             linewidth=>LineWidth:{xDefaultLineWidth; real}) 
  229.     :- !,
  230.      xcDrawRectangle (Display, Window, X0, Y0, Width, Height, 
  231.              Function, Color, LineWidth).
  232.  
  233.  
  234. xDrawArc (Window:@(display=>Display), 
  235.           X0, Y0, Width, Height, StartAngle, ArcAngle,
  236.       function=>Function:{xDefaultFunction; int}, 
  237.       color=>Color:{xDefaultColor; int}, 
  238.       linewidth=>LineWidth:{xDefaultLineWidth; real}) 
  239.     :- !,
  240.      xcDrawArc (Display, Window, X0, Y0, Width, Height,
  241.            StartAngle*64, ArcAngle*64,
  242.            Function, Color, LineWidth).
  243.  
  244.  
  245. xDrawOval (Window, X0, Y0, Width, Height,
  246.        function=>Function:{xDefaultFunction; int}, 
  247.        color=>Color:{xDefaultColor; int}, 
  248.        linewidth=>LineWidth:{xDefaultLineWidth; real}) 
  249.     :- !,
  250.     xDrawArc (Window, X0, Y0, Width, Height, 0, 360,
  251.               function=>Function, color=>Color, 
  252.           linewidth=>LineWidth).
  253.  
  254.  
  255. xPointsPut ([(X,Y) | L], Polygon, N) 
  256.     :-
  257.     !,
  258.     xcCoordPut (Polygon, N, X), 
  259.     xcCoordPut (Polygon, N+1, Y),
  260.     xPointsPut (L,Polygon, N+2).
  261. xPointsPut ([]).
  262.  
  263.  
  264. xDrawPolygon (Window:@(display=>Display), 
  265.           PointList,
  266.           function=>Function:{xDefaultFunction; int}, 
  267.           color=>Color:{xDefaultColor; int},
  268.            linewidth=>LineWidth:{xDefaultLineWidth; real})
  269.     :- !,
  270.     xcPointsAlloc (L:length (PointList), Polygon),
  271.      xPointsPut (PointList,Polygon,0),
  272.      xcDrawPolygon (Display,Window,Polygon,L,Function,Color,LineWidth),
  273.     xcPointsFree (Polygon).
  274.  
  275.  
  276. xFillRectangle (Window:@(display=>Display), 
  277.             X0, Y0, Width, Height, 
  278.             function=>Function:{xDefaultFunction; int}, 
  279.             color=>Color:{xDefaultColor; int}) 
  280.     :- !,
  281.     xcFillRectangle (Display, Window, X0, Y0, Width, Height,
  282.                Function, Color).
  283.  
  284.  
  285. xFillArc (Window:@(display=>Display), 
  286.       X0, Y0, Width, Height, 
  287.       StartAngle, ArcAngle, % given in degrees
  288.       function=>Function:{xDefaultFunction; int}, 
  289.       color=>Color:{xDefaultColor; int}) 
  290.     :- !,
  291.     xcFillArc (Display, Window, X0, Y0, Width, Height,
  292.            StartAngle*64, ArcAngle*64,
  293.            Function, Color).
  294.  
  295.  
  296. xFillOval (Window, X0, Y0, Width, Height,
  297.        function=>Function:{xDefaultFunction; int}, 
  298.        color=>Color:{xDefaultColor; int}) 
  299.     :- !,
  300.     xFillArc (Window, X0, Y0, Width, Height, 0, 360,
  301.               function=>Function, color=>Color).
  302.  
  303.  
  304. xFillPolygon (Window:@(display=>Display), 
  305.           PointList,
  306.           function=>Function:{xDefaultFunction; int}, 
  307.           color=>Color:{xDefaultColor; int}) 
  308.     :- !,
  309.     xcPointsAlloc (L:length (PointList), Polygon),
  310.      xPointsPut (PointList,Polygon, 0),
  311.      xcFillPolygon (Display, Window, Polygon, L, Function, Color),
  312.     xcPointsFree (Polygon).
  313.  
  314.  
  315. xLoadFont (Display, 
  316.        Font, 
  317.        FontName:{xDefaultFontName; string}) 
  318.     :- !,
  319.      xcLoadFont (Display, FontName, Font).
  320.  
  321.  
  322. xUnloadFont (Display, 
  323.          Font)
  324.     :- !,
  325.     xcUnloadFont (Display, Font).
  326.  
  327.  
  328. xDrawString (Window:@(display=>Display), 
  329.          X0, Y0, String, 
  330.            font=>Font:{xDefaultFont; int},
  331.          function=>Function:{xDefaultFunction; int}, 
  332.           color=>Color:{xDefaultColor; int}) 
  333.     :- !,
  334.     xcDrawString (Display, Window, X0, Y0, String, 
  335.               Font, Function, Color).
  336.  
  337.  
  338. xDrawImageString (Window:@(display=>Display), 
  339.           X0, Y0, String, 
  340.               font=>Font:{xDefaultFont; int},
  341.              function=>Function:{xDefaultFunction; int}, 
  342.               color=>Color:{xDefaultColor; int}) 
  343.     :- !,
  344.     xcDrawImageString (Display, Window, X0, Y0, String,
  345.                  Font, Function, Color).
  346.  
  347.  
  348.  
  349. xQueryTextExtents(Display,
  350.               Font:{xDefaultFont;int},
  351.                   String:string,
  352.           text_direction => Tdir,
  353.           text_ascent => Tasc,
  354.           text_descent => Tdes,
  355.           text_left_bearing => TLB,
  356.           text_right_bearing => TRB,
  357.           text_width => TW,
  358.           font_ascent => FA,
  359.           font_descent => FD) :-
  360.  
  361.   xcQueryTextExtents(Display,Font,String,
  362.              Tdir,FA,FD,TLB,TRB,TW,
  363.              Tasc,Tdes).
  364.   
  365.  
  366. xStringWidth (Display, Font, String)
  367.     -> 
  368.     xcStringWidth (Display, Font, String).
  369.  
  370.  
  371. xGetEvent (Window:@(display=>Display), 
  372.        eventmask=>EventMask) 
  373.     -> 
  374. %%    xcGetEvent (Display, Window, EventMask) 
  375. %%    | 
  376. %%    EventMask = {xDefaultEventMask;int}, !.  %% BD 4/06/93
  377.         xcGetEvent(Display,Window,EventMask).
  378.  
  379.  
  380. xFlushEvents (Window:@(display=>Display), 
  381.            eventmask=>EventMask:{xDefaultEventMask;int}) 
  382.     :- !,
  383.     xcFlushEvents (Display, Window, EventMask).
  384.  
  385.  
  386. %%% RM: 7/12/92
  387. xQueryPointer(Window:@(display=>Display),
  388.               Root_return,   Child_return,
  389.               Root_x_return, Root_y_return,
  390.               Win_x_return,  Win_y_return,
  391.               Mask_return,   Same_screen) :-
  392.  
  393.     xcQueryPointer(Display,       Window,
  394.                        Root_return,   Child_return,
  395.                        Root_x_return, Root_y_return,
  396.                        Win_x_return,  Win_y_return,
  397.                        Mask_return,   Same_screen).
  398. %%% RM: 7/12/92 (END)
  399.  
  400.  
  401. %%% RM: 8/12/92
  402.  
  403. xShowSubwindows(Window:@(display=>Display, id=>W)) :- 
  404.     xcMapSubwindows(Display, W).
  405.  
  406.  
  407. xHideSubwindows(Window:@(display=>Display, id=>W)) :- 
  408.     xcUnmapSubwindows(Display, W).
  409.  
  410. %%% RM: 8/12/92 (END)
  411.  
  412. xSync(Display) :- xcSync(Display,0). %% BD 23 June 1993
  413.  
  414. %%% PVR: 13/10/93 (END)
  415.