definition module xpicture;

//1.3
from StdString import String;
//3.1

start_drawing :: !Int -> Int;
// int start_drawing (int);
end_drawing :: !Int -> Int;
// int end_drawing (int);
hide_pen :: !Int -> Int;
// int hide_pen (int);
show_pen :: !Int -> Int;
// int show_pen (int);
get_pen :: !Int -> (!Int,!Int);
// void get_pen (int,int*,int*);
pen_size :: !Int !Int !Int -> Int;
// int pen_size (int,int,int);
pen_mode :: !Int !Int -> Int;
// int pen_mode (int,int);
pen_pattern :: !Int !Int -> Int;
// int pen_pattern (int,int);
pen_normal :: !Int -> Int;
// int pen_normal (int);
move_to :: !Int !Int !Int -> Int;
// int move_to (int,int,int);
move_relative :: !Int !Int !Int -> Int;
// int move_relative (int,int,int);
line_to :: !Int !Int !Int -> Int;
// int line_to (int,int,int);
line_relative :: !Int !Int !Int -> Int;
// int line_relative (int,int,int);
draw_string :: !{#Char} !Int -> Int;
// int draw_string (CleanString,int);
get_color :: !Int -> Int;
// int get_color (int);
foreground_color :: !Int !Int -> Int;
// int foreground_color (int,int);
background_color :: !Int !Int -> Int;
// int background_color (int,int);
rgb_fg_color :: !Real !Real !Real !Int -> Int;
// int rgb_fg_color (double,double,double,int);
rgb_bg_color :: !Real !Real !Real !Int -> Int;
// int rgb_bg_color (double,double,double,int);
draw_line :: !Int !Int !Int !Int !Int -> Int;
// int draw_line (int,int,int,int,int);
draw_point :: !Int !Int !Int -> Int;
// int draw_point (int,int,int);
frame_rectangle :: !Int !Int !Int !Int !Int -> Int;
// int frame_rectangle (int,int,int,int,int);
paint_rectangle :: !Int !Int !Int !Int !Int -> Int;
// int paint_rectangle (int,int,int,int,int);
erase_rectangle :: !Int !Int !Int !Int !Int -> Int;
// int erase_rectangle (int,int,int,int,int);
invert_rectangle :: !Int !Int !Int !Int !Int -> Int;
// int invert_rectangle (int,int,int,int,int);
move_rectangle :: !Int !Int !Int !Int !Int !Int !Int -> Int;
// int move_rectangle (int,int,int,int,int,int,int);
copy_rectangle :: !Int !Int !Int !Int !Int !Int !Int -> Int;
// int copy_rectangle (int,int,int,int,int,int,int);
frame_round_rectangle :: !Int !Int !Int !Int !Int !Int !Int -> Int;
// int frame_round_rectangle (int,int,int,int,int,int,int);
paint_round_rectangle :: !Int !Int !Int !Int !Int !Int !Int -> Int;
// int paint_round_rectangle (int,int,int,int,int,int,int);
erase_round_rectangle :: !Int !Int !Int !Int !Int !Int !Int -> Int;
// int erase_round_rectangle (int,int,int,int,int,int,int);
invert_round_rectangle :: !Int !Int !Int !Int !Int !Int !Int -> Int;
// int invert_round_rectangle (int,int,int,int,int,int,int);
frame_oval :: !Int !Int !Int !Int !Int -> Int;
// int frame_oval (int,int,int,int,int);
paint_oval :: !Int !Int !Int !Int !Int -> Int;
// int paint_oval (int,int,int,int,int);
erase_oval :: !Int !Int !Int !Int !Int -> Int;
// int erase_oval (int,int,int,int,int);
invert_oval :: !Int !Int !Int !Int !Int -> Int;
// int invert_oval (int,int,int,int,int);
frame_arc :: !Int !Int !Int !Int !Int !Int !Int -> Int;
// int frame_arc (int,int,int,int,int,int,int);
paint_arc :: !Int !Int !Int !Int !Int !Int !Int -> Int;
// int paint_arc (int,int,int,int,int,int,int);
erase_arc :: !Int !Int !Int !Int !Int !Int !Int -> Int;
// int erase_arc (int,int,int,int,int,int,int);
invert_arc :: !Int !Int !Int !Int !Int !Int !Int -> Int;
// int invert_arc (int,int,int,int,int,int,int);
alloc_polygon :: !Int -> Int;
// int alloc_polygon (int);
free_polygon :: !Int !Int -> Int;
// int free_polygon (int,int);
set_polygon_point :: !Int !Int !Int !Int -> Int;
// int set_polygon_point (int,int,int,int);
frame_polygon :: !Int !Int !Int !Int !Int -> Int;
// int frame_polygon (int,int,int,int,int);
paint_polygon :: !Int !Int !Int !Int !Int -> Int;
// int paint_polygon (int,int,int,int,int);
erase_polygon :: !Int !Int !Int !Int !Int -> Int;
// int erase_polygon (int,int,int,int,int);
invert_polygon :: !Int !Int !Int !Int !Int -> Int;
// int invert_polygon (int,int,int,int,int);
get_number_fonts :: !Int -> Int;
// int get_number_fonts (int);
get_font_name :: !Int -> {#Char};
// CleanString get_font_name (int);
get_font_info :: !Int -> (!Int,!Int,!Int,!Int,!Int);
// void get_font_info (int,int*,int*,int*,int*,int*);
get_font_font_info :: !Int -> (!Int,!Int,!Int,!Int);
// void get_font_font_info (int,int*,int*,int*,int*);
get_string_width :: !Int !String -> (!Int,!Int);
// void get_string_width (int,CleanString,int*,int*);
get_font_string_width :: !Int !{#Char} -> Int;
// int get_font_string_width (int,CleanString);
set_font :: !Int !Int !{#Char} !{#Char} !{#Char} -> Int;
// int set_font (int,int,CleanString,CleanString,CleanString);
set_font_name :: !Int !{#Char} -> Int;
// int set_font_name (int,CleanString);
set_font_style :: !Int !{#Char} -> Int;
// int set_font_style (int,CleanString);
set_font_size :: !Int !{#Char} -> Int;
// int set_font_size (int,CleanString);
select_default_font :: !Int -> Int;
// int select_default_font (int);
select_font :: !{#Char} -> Int;
// int select_font (CleanString);
get_font_styles :: !String -> (!Int,!Int,!Int,!Int,!Int);
// void get_font_styles (CleanString,int*,int*,int*,int*,int*);
get_font_sizes :: !{#Char} -> Int;
// int get_font_sizes (CleanString);
get_one_font_size :: !Int -> Int;
// int get_one_font_size (int);
