------------------------------------------------------------------------------
-- BUSH Pen Package Parser                                                  --
--                                                                          --
-- Part of BUSH                                                             --
------------------------------------------------------------------------------
--                                                                          --
--              Copyright (C) 2001-2005 Ken O. Burtch & FSF                 --
--                                                                          --
-- This is free software;  you can  redistribute it  and/or modify it under --
-- terms of the  GNU General Public License as published  by the Free Soft- --
-- ware  Foundation;  either version 2,  or (at your option) any later ver- --
-- sion.  This is distributed in the hope that it will be useful, but WITH- --
-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
-- for  more details.  You should have  received  a copy of the GNU General --
-- Public License  distributed with this;  see file COPYING.  If not, write --
-- to  the Free Software Foundation,  59 Temple Place - Suite 330,  Boston, --
-- MA 02111-1307, USA.                                                      --
--                                                                          --
-- This is maintained at http://www.pegasoft.ca                             --
--                                                                          --
------------------------------------------------------------------------------
-- CVS: $Id: parser_pen.ads,v 1.1 2005/08/31 15:12:27 ken Exp $

with ada.strings.unbounded, world;
use ada.strings.unbounded, world;

package parser_pen is

------------------------------------------------------------------------------
-- Numerics package identifiers
------------------------------------------------------------------------------

pen_rect_t          : identifier;
pen_coordinate_t    : identifier;
pen_rgbcomponent_t  : identifier;
pen_rect_left_t     : identifier;
pen_rect_top_t      : identifier;
pen_rect_right_t    : identifier;
pen_rect_bottom_t   : identifier;
pen_canvas_id_t     : identifier;

pen_pen_mode_t      : identifier;
pen_mode_invert_t   : identifier;
pen_mode_add_t      : identifier;
pen_mode_subtract_t : identifier;
pen_mode_average_t  : identifier;
pen_mode_copy_t     : identifier;
pen_mode_off_t      : identifier;

pen_pen_brush_t     : identifier;
pen_brush_undefined_t : identifier;
pen_brush_pencil_t  : identifier;
pen_brush_stretch_t : identifier;
pen_brush_tile_t    : identifier;
pen_brush_stamp_t   : identifier;
pen_brush_smear_t   : identifier;

pen_set_rect_t       : identifier;
pen_is_empty_rect_t  : identifier;
pen_offset_rect_t    : identifier;
pen_inset_rect_t     : identifier;
pen_intersect_rect_t : identifier;
pen_inside_rect_t    : identifier;
pen_in_rect_t        : identifier;

pen_set_pen_mode_t   : identifier;
pen_set_pen_ink_t    : identifier;
pen_set_pen_brush_t  : identifier;
pen_set_pen_pattern_t: identifier;
pen_get_pen_mode_t   : identifier;
pen_get_pen_ink_t    : identifier;
pen_get_pen_brush_t  : identifier;
-- pen_get_pen_pattern_t: identifier;

pen_move_to_t        : identifier;
pen_move_t           : identifier;
pen_line_to_t        : identifier;
pen_line_t           : identifier;

pen_frame_rect_t     : identifier;
pen_fill_rect_t      : identifier;
pen_frame_ellipse_t  : identifier;
pen_fill_ellipse_t   : identifier;

pen_new_screen_canvas_t : identifier;
pen_new_window_canvas_t : identifier;
pen_new_canvas_t     : identifier;
pen_set_title_t      : identifier;

pen_clip_rect_t      : identifier;


------------------------------------------------------------------------------
-- HOUSEKEEPING
------------------------------------------------------------------------------

procedure StartupPen;
procedure ShutdownPen;

------------------------------------------------------------------------------
-- PARSE THE PEN PACKAGE
------------------------------------------------------------------------------

----> Rects

procedure ParsePenSetRect;
procedure ParsePenIsEmptyRect( result : out unbounded_string );
procedure ParsePenOffsetRect;
procedure ParsePenInsetRect;
procedure ParsePenIntersectRect;
procedure ParsePenInsideRect( result : out unbounded_string );
procedure ParsePenInRect( result : out unbounded_string );

procedure ParsePenSetPenMode;
procedure ParsePenSetPenBrush;
procedure ParsePenSetPenInk;
procedure ParsePenSetPenPattern;
procedure ParsePenGetPenMode( result : out unbounded_string );
procedure ParsePenGetPenInk;
procedure ParsePenGetPenBrush( result : out unbounded_string );
-- procedure ParsePenGetPenPattern( result : out unbounded_string );

procedure ParsePenMoveTo;
procedure ParsePenMove;
procedure ParsePenLineTo;
procedure ParsePenLine;

procedure ParsePenFrameRect;
procedure ParsePenFillRect;
procedure ParsePenFrameEllipse;
procedure ParsePenFillEllipse;

procedure ParsePenNewScreenCanvas;
procedure ParsePenNewWindowCanvas;
procedure ParsePenNewCanvas;
procedure ParsePenSetTitle;

end parser_pen;
