Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/eXene/doc/sigs/exene-base-sig.sml
ViewVC logotype

Annotation of /sml/trunk/src/eXene/doc/sigs/exene-base-sig.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 104 - (view) (download)

1 : monnier 104 (* exene-base.sml
2 :     *
3 :     * COPYRIGHT (c) 1990,1991 by John H. Reppy. See COPYRIGHT file for details.
4 :     *
5 :     * These are the basic types and operations supported by eXene.
6 :     *)
7 :    
8 :     signature EXENE_BASE =
9 :     sig
10 :    
11 :     val version : {major : int, minor : int, rev : int, date : string}
12 :     val versionName : string
13 :    
14 :     structure G : GEOMETRY
15 :    
16 :     (** opaque types **)
17 :     type display
18 :     type screen
19 :     type window
20 :     type font
21 :     type pixmap
22 :     type tile
23 :     type cursor
24 :     eqtype std_cursor
25 :     eqtype atom
26 :     type color
27 :    
28 :     (* server time *)
29 :     structure XTime : sig
30 :     type time
31 :     val toReal : time -> real
32 :     val + : (time * time) -> time
33 :     val - : (time * time) -> time
34 :     val < : (time * time) -> bool
35 :     val <= : (time * time) -> bool
36 :     val > : (time * time) -> bool
37 :     val >= : (time * time) -> bool
38 :     end
39 :    
40 :     (* authentication information *)
41 :     datatype authentication = AUTH of {
42 :     family : int,
43 :     addr : string,
44 :     dpy : string,
45 :     name : string,
46 :     data : Word8Vector.vector
47 :     }
48 :    
49 :     (** identity tests **)
50 :     val sameDisplay : display * display -> bool
51 :     val sameScreen : screen * screen -> bool
52 :     val sameWindow : window * window -> bool
53 :     val sameFont : font * font -> bool
54 :     val samePixmap : pixmap * pixmap -> bool
55 :     val sameTile : tile * tile -> bool
56 :     val sameCursor : cursor * cursor -> bool
57 :     val sameColor : color * color -> bool
58 :    
59 :    
60 :     (** Display operations **)
61 :     exception BadAddr of string
62 :     val openDisplay : (string * authentication option) -> display
63 :     val closeDisplay : display -> unit
64 :     val defaultScreenOf : display -> screen
65 :     val screensOf : display -> screen list
66 :     val ringBell : display -> int -> unit
67 :     val maxReqLen : display -> int
68 :    
69 :    
70 :     (** Screen operations **)
71 :     val displayOfScr : screen -> display
72 :     val sizeOfScr : screen -> G.size
73 :     val sizeMMOfScr : screen -> G.size
74 :     val depthOfScr : screen -> int
75 :    
76 :     datatype display_class
77 :     = StaticGray | GrayScale | StaticColor | PseudoColor | TrueColor | DirectColor
78 :    
79 :     val displayClassOfScr : screen -> display_class
80 :    
81 :    
82 :     (** window, pixmap and tile geometry functions **)
83 :     val depthOfWin : window -> int
84 :     val depthOfPixmap : pixmap -> int
85 :     val depthOfTile : tile -> int
86 :     val sizeOfWin : window -> G.size
87 :     val sizeOfPixmap : pixmap -> G.size
88 :     val sizeOfTile : tile -> G.size
89 :     val geomOfWin : window
90 :     -> {pos : G.point, sz : G.size, depth : int, border : int}
91 :     val geomOfPixmap : pixmap
92 :     -> {pos : G.point, sz : G.size, depth : int, border : int}
93 :     val geomOfTile : tile
94 :     -> {pos : G.point, sz : G.size, depth : int, border : int}
95 :    
96 :    
97 :     (** Images **)
98 :     datatype image = IMAGE of {
99 :     sz : G.size,
100 :     data : Word8Vector.vector list list
101 :     }
102 :    
103 :     exception BadImageData
104 :    
105 :     val imageFromAscii : int * string list list -> image
106 :    
107 :    
108 :     (** Pixmap and tile operations **)
109 :     exception BadPixmapParameter
110 :    
111 :     val createPixmap : screen -> G.size * int -> pixmap
112 :     val createPixmapFromAsciiData : screen -> int * string list list -> pixmap
113 :     val createPixmapFromImage : screen -> image -> pixmap
114 :     val destroyPixmap : pixmap -> unit
115 :    
116 :     val createTileFromAsciiData : screen -> int * string list list -> tile
117 :     val createTileFromImage : screen -> image -> tile
118 :     val createTileFromPixmap : pixmap -> tile
119 :    
120 :     val createImageFromPixmap : pixmap -> image
121 :     val createImageFromTile : tile -> image
122 :    
123 :    
124 :     (** window hash tables **)
125 :     type 'a window_map
126 :     exception WindowNotFound
127 :     val newMap : unit -> '1a window_map
128 :     val insert : 'a window_map -> (window * 'a) -> unit
129 :     val lookup : 'a window_map -> window -> 'a
130 :     val remove : 'a window_map -> window -> 'a
131 :     val list : 'a window_map -> 'a list
132 :    
133 :    
134 :     (** Colors **)
135 :     exception BadRGB
136 :     exception NoColorCell
137 :    
138 :     datatype color_spec
139 :     = CMS_Name of string
140 :     | CMS_RGB of {red : word, green : word, blue : word}
141 :    
142 :     val white : color_spec
143 :     val black : color_spec
144 :    
145 :     val color0 : color
146 :     val color1 : color
147 :    
148 :     val colorOfScr : screen -> color_spec -> color
149 :     val blackOfScr : screen -> color
150 :     val whiteOfScr : screen -> color
151 :    
152 :     (** NOTE: the following should go away soon, but we need it for recolorCursor **)
153 :     (** Maybe not; see rgbOfColor function **)
154 :    
155 :     datatype rgb = RGB of {red : word, green : word, blue : word}
156 :    
157 :     val rgbOfColor : color -> rgb
158 :    
159 :     (** Cursors **)
160 :     val stdCursor : display -> std_cursor -> cursor
161 :     val recolorCursor : {cursor : cursor, fore_rgb : rgb, back_rgb : rgb} -> unit
162 :     val changeActiveGrabCursor : display -> cursor -> unit
163 :    
164 :    
165 :     (* gravity (both window and bit) *)
166 :     datatype gravity
167 :     = ForgetGravity (* bit gravity only *)
168 :     | UnmapGravity (* window gravity only *)
169 :     | NorthWestGravity
170 :     | NorthGravity
171 :     | NorthEastGravity
172 :     | WestGravity
173 :     | CenterGravity
174 :     | EastGravity
175 :     | SouthWestGravity
176 :     | SouthGravity
177 :     | SouthEastGravity
178 :     | StaticGravity
179 :    
180 :     end (* EXENE_BASE *)

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0