/* > H.DrawExt */

/* Drawfile extenties. Aanvulling op ACORN draw functie. Worden gebruikt om */
/* diagrammen aan te maken van PSDs. Deze diagrammen worden in de window's  */
/* afgebeeld of kunnen naar disk worden ge-saved.                           */

#ifndef __drawext
#define __drawext

#include "drawfobj.h"
/*
typedef struct diag {
   char *data;
   int  length;
   int  size;
} diag;
*/

typedef struct draw_rectangle
{
   draw_pathstrhdr hdr;
   Path_movestr    move;
   Path_linestr    line1;
   Path_linestr    line2;
   Path_linestr    line3;
   Path_linestr    line4;
   Path_termstr    term;
} draw_rectangle;

typedef struct draw_two_lines
{
   draw_pathstrhdr hdr;
   Path_movestr    move;
   Path_linestr    line1;
   Path_linestr    line2;
   Path_termstr    term;
} draw_two_lines;

typedef struct draw_triangle
{
   draw_pathstrhdr hdr;
   Path_movestr    move;
   Path_linestr    line1;
   Path_linestr    line2;
   Path_linestr    line3;
   Path_termstr    term;
} draw_triangle;

typedef struct draw_line
{
   draw_pathstrhdr hdr;
   Path_movestr    move;
   Path_linestr    line;
   Path_termstr    term;
} draw_line;



typedef struct draw_text
{
   draw_textstrhdr hdr;
   char text[256];
} draw_text;

typedef struct draw_font_list
{
   draw_fontliststrhdr hdr;
   char font_ref;
   char name[256];
} draw_font_list;

extern int draw_colour;
extern int draw_width;
extern int draw_fill_colour;
extern int draw_text_col;
extern int draw_text_background_col;

extern void set_draw_colour(int colnum);

extern void set_draw_fill_colour(int colnum);

extern void set_draw_width(int width);

extern void set_text_col(int col);

extern void set_text_background_col(int col);

extern int get_draw_colour(void);

extern int get_draw_fill_colour(void);

extern int get_draw_width(void);

extern int get_text_col(void);

extern int get_text_background_col(void);

extern void drawext_init(void);

extern void init_path_header(draw_pathstrhdr *hdr,int size,int x0,int y0,
                             int x1,int y1);

extern void init_path_move(Path_movestr *move,int x,int y);

extern void init_path_line(Path_linestr *line,int x,int y);

extern void init_path_term(Path_termstr *term);

extern int line1(diag *diagram,int x0,int y0,int x1,int y1);

extern int line2(diag *diagram,int x0,int y0,int x1,int y1,int x2,int y2);

extern int line3(diag *diagram,int x0,int y0,int x1,int y1,int x2,int y2,
          int x3,int y3);

extern int line4(diag *diagram,int x0,int y0,int x1,int y1,int x2,int y2,
          int x3,int y3,int x4,int y4);

extern int rectangle(diag *diagram,int x0,int y0,int x1,int y1);

extern int triangle(diag *diagram,int x0,int y0,int x1,int y1,int x2,
                    int y2);

extern void text(diag *diagram,char font_num,int x_points,int y_points,
                 int xpos,int ypos,char *string);

extern void font_table(diag *diagram,char font_nummer,char *font_name);

extern void draw_show_error(char *func_name,draw_error *err);

extern void draw_extend_diag(diag *diagram);

#endif
