diff options
| author | No author <no_author@ocaml.org> | 1995-06-15 16:08:54 +0000 |
|---|---|---|
| committer | No author <no_author@ocaml.org> | 1995-06-15 16:08:54 +0000 |
| commit | 77b1c8b89fd8940a63b17c41eb37161e5d159831 (patch) | |
| tree | 43dbfb3982d9166b717199cb8faa97bdce30add7 /otherlibs/graph/graphics.mli | |
| parent | ba79d4bd1f01a70b892c69f6a5e6e86714a023d6 (diff) | |
| download | ocaml-unlabeled-1.2.2.tar.gz | |
This commit was manufactured by cvs2svn to create branchunlabeled-1.2.2
'unlabeled-1.2.2'.
git-svn-id: http://caml.inria.fr/svn/ocaml/branches/unlabeled-1.2.2@37 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'otherlibs/graph/graphics.mli')
| -rw-r--r-- | otherlibs/graph/graphics.mli | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/otherlibs/graph/graphics.mli b/otherlibs/graph/graphics.mli deleted file mode 100644 index 606aaf8cfd..0000000000 --- a/otherlibs/graph/graphics.mli +++ /dev/null @@ -1,214 +0,0 @@ -(* Machine-independent graphics primitives *) - -exception Graphic_failure of string - (* Raised by the functions below when they encounter an error. *) - -(*** Initializations *) - -val open_graph: string -> unit - (* Show the graphics window or switch the screen to graphic mode. - The graphics window is cleared. The string argument is used to - pass optional information on the desired graphics mode, the - graphics window size, and so on. Its interpretation is - implementation-dependent. If the empty string is given, a sensible - default is selected. *) -val close_graph: unit -> unit - (* Delete the graphics window or switch the screen back to - text mode. *) -external clear_graph : unit -> unit = "gr_clear_graph" - (* Erase the graphics window. *) -external size_x : unit -> int = "gr_size_x" -external size_y : unit -> int = "gr_size_y" - (* Return the size of the graphics window. Coordinates of the screen - pixels range over [0 .. size_x()-1] and [0 .. size_y()-1]. - Drawings outside of this rectangle are clipped, without causing - an error. The origin (0,0) is at the lower left corner. *) - -(*** Colors *) - -type color = int - (* A color is specified by its R, G, B components. Each component - is in the range [0..255]. The three components are packed in - an [int]: [0xRRGGBB], where [RR] are the two hexadecimal digits for - the red component, [GG] for the green component, [BB] for the - blue component. *) - -val rgb: int -> int -> int -> int - (* [rgb r g b] returns the integer encoding the color with red - component [r], green component [g], and blue component [b]. - [r], [g] and [b] are in the range [0..255]. *) - -external set_color : color -> unit = "gr_set_color" - (* Set the current drawing color. *) - -val black : color -val white : color -val red : color -val green : color -val blue : color -val yellow : color -val cyan : color -val magenta : color - (* Some predefined colors. *) - -val background: color -val foreground: color - (* Default background and foreground colors (usually, either black - foreground on a white background or white foreground on a - black background). - [clear_graph] fills the screen with the [background] color. - The initial drawing color is [foreground]. *) - -(*** Point and line drawing *) - -external plot : int -> int -> unit = "gr_plot" - (* Plot the given point with the current drawing color. *) -external point_color : int -> int -> color = "gr_point_color" - (* Return the color of the given point. *) -external moveto : int -> int -> unit = "gr_moveto" - (* Position the current point. *) -external current_point : unit -> int * int = "gr_current_point" - (* Return the position of the current point. *) -external lineto : int -> int -> unit = "gr_lineto" - (* Draw a line with endpoints the current point and the given point, - and move the current point to the given point. *) -external draw_arc : int -> int -> int -> int -> int -> int -> unit - = "gr_draw_arc" - (* [draw_arc x y rx ry a1 a2] draws an elliptical arc with center - [x,y], horizontal radius [rx], vertical radius [ry], from angle - [a1] to angle [a2] (in degrees). The current point is unchanged. *) -val draw_ellipse : int -> int -> int -> int -> unit - (* [draw_ellipse x y rx ry] draws an ellipse with center - [x,y], horizontal radius [rx] and vertical radius [ry]. - The current point is unchanged. *) -val draw_circle : int -> int -> int -> unit - (* [draw_circle x y r] draws a circle with center [x,y] and - radius [r]. The current point is unchanged. *) -external set_line_width : int -> unit = "gr_set_line_width" - (* Set the width of points and lines drawn with the functions above. - Under X Windows, [set_line_width 0] selects a width of 1 pixel - and a faster, but less precise drawing algorithm than the one - used when [set_line_width 1] is specified. *) - -(*** Text drawing *) - -external draw_char : char -> unit = "gr_draw_char" -external draw_string : string -> unit = "gr_draw_string" - (* Draw a character or a character string with lower left corner - at current position. After drawing, the current position is set - to the lower right corner of the text drawn. *) -external set_font : string -> unit = "gr_set_font" -val set_text_size : int -> unit - (* Set the font and character size used for drawing text. - The interpretation of the arguments to [set_font] and - [set_text_size] is implementation-dependent. *) -external text_size : string -> int * int = "gr_text_size" - (* Return the dimensions of the given text, if it were drawn with - the current font and size. *) - -(*** Filling *) - -external fill_rect : int -> int -> int -> int -> unit = "gr_fill_rect" - (* [fill_rect x y w h] fills the rectangle with lower left corner - at [x,y], width [w] and heigth [h], with the current color. *) -external fill_poly : (int * int) array -> unit = "gr_fill_poly" - (* Fill the given polygon with the current color. The array - contains the coordinates of the vertices of the polygon. *) -external fill_arc : int -> int -> int -> int -> int -> int -> unit - = "gr_fill_arc" - (* Fill an elliptical pie slice with the current color. The - parameters are the same as for [draw_arc]. *) -val fill_ellipse : int -> int -> int -> int -> unit - (* Fill an ellipse with the current color. The - parameters are the same as for [draw_ellipse]. *) -val fill_circle : int -> int -> int -> unit - (* Fill a circle with the current color. The - parameters are the same as for [draw_circle]. *) - -(*** Images *) - -type image - (* The abstract type for images, in internal representation. - Externally, images are represented as matrices of colors. *) - -val transp : color - (* In matrices of colors, this color represent a ``transparent'' - point: when drawing the corresponding image, all pixels on the - screen corresponding to a transparent pixel in the image will - not be modified, while other points will be set to the color - of the corresponding point in the image. This allows superimposing - an image over an existing background. *) - -external make_image : color array array -> image = "gr_make_image" - (* Convert the given color matrix to an image. - Each sub-array represents one horizontal line. All sub-arrays - must have the same length; otherwise, exception [Graphic_failure] - is raised. *) -external dump_image : image -> color array array = "gr_dump_image" - (* Convert an image to a color matrix. *) -external draw_image : image -> int -> int -> unit = "gr_draw_image" - (* Draw the given image with lower left corner at the given point. *) -val get_image : int -> int -> int -> int -> image - (* Capture the contents of a rectangle on the screen as an image. - The parameters are the same as for [fill_rect]. *) -external create_image : int -> int -> image = "gr_create_image" - (* [create_image w h] returns a new image [w] pixels wide and [h] - pixels tall, to be used in conjunction with [blit_image]. - The initial image contents are random. *) -external blit_image : image -> int -> int -> unit = "gr_blit_image" - (* [blit_image img x y] copies screen pixels into the image [img], - modifying [img] in-place. The pixels copied are those inside the - rectangle with lower left corner at [x,y], and width and height - equal to those of the image. *) - -(*** Mouse and keyboard events *) - -type status = - { mouse_x : int; (* X coordinate of the mouse *) - mouse_y : int; (* Y coordinate of the mouse *) - button : bool; (* true if a mouse button is pressed *) - keypressed : bool; (* true if a key has been pressed *) - key : char } (* the character for the key pressed *) - (* To report events. *) - -type event = - Button_down (* A mouse button is pressed *) - | Button_up (* A mouse button is released *) - | Key_pressed (* A key is pressed *) - | Mouse_motion (* The mouse is moved *) - | Poll (* Don't wait; return immediately *) - (* To specify events to wait for. *) - -external wait_next_event : event list -> status = "gr_wait_event" - (* Wait until one of the events specified in the given event list - occurs, and return the status of the mouse and keyboard at - that time. If [Poll] is given in the event list, return immediately - with the current status. If the mouse cursor is outside of the - graphics window, the [mouse_x] and [mouse_y] fields of the event are - outside the range [0..size_x()-1, 0..size_y()-1]. Keypresses - are queued, and dequeued one by one when the [Key_pressed] - event is specified. *) - -(*** Mouse and keyboard polling *) - -val mouse_pos : unit -> int * int - (* Return the position of the mouse cursor, relative to the - graphics window. If the mouse cursor is outside of the graphics - window, [mouse_pos()] returns a point outside of the range - [0..size_x()-1, 0..size_y()-1]. *) -val button_down : unit -> bool - (* Return [true] if the mouse button is pressed, [false] otherwise. *) -val read_key : unit -> char - (* Wait for a key to be pressed, and return the corresponding - character. Keypresses are queued. *) -val key_pressed : unit -> bool - (* Return [true] if a keypress is available; that is, if [read_key] - would not block. *) - -(*** Sound *) - -external sound : int -> int -> unit = "gr_sound" - (* [sound freq dur] plays a sound at frequency [freq] (in hertz) - for a duration [dur] (in milliseconds). On the Macintosh, - the frequency is rounded to the nearest note in the equal-tempered - scale. *) |
