diff options
Diffstat (limited to 'contrib/groff/pic/object.h')
-rw-r--r-- | contrib/groff/pic/object.h | 217 |
1 files changed, 0 insertions, 217 deletions
diff --git a/contrib/groff/pic/object.h b/contrib/groff/pic/object.h deleted file mode 100644 index 2748e81e8465e..0000000000000 --- a/contrib/groff/pic/object.h +++ /dev/null @@ -1,217 +0,0 @@ -// -*- C++ -*- -/* Copyright (C) 1989, 1990, 1991, 1992 Free Software Foundation, Inc. - Written by James Clark (jjc@jclark.com) - -This file is part of groff. - -groff is free software; you can redistribute it and/or modify it under -the terms of the GNU General Public License as published by the Free -Software Foundation; either version 2, or (at your option) any later -version. - -groff is distributed in the hope that it will be useful, but WITHOUT 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 along -with groff; see the file COPYING. If not, write to the Free Software -Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ - -struct place; - -enum object_type { - OTHER_OBJECT, - BOX_OBJECT, - CIRCLE_OBJECT, - ELLIPSE_OBJECT, - ARC_OBJECT, - SPLINE_OBJECT, - LINE_OBJECT, - ARROW_OBJECT, - MOVE_OBJECT, - TEXT_OBJECT, - BLOCK_OBJECT, - MARK_OBJECT - }; - -struct bounding_box; - -struct object { - object *prev; - object *next; - object(); - virtual ~object(); - virtual position origin(); - virtual double width(); - virtual double radius(); - virtual double height(); - virtual position north(); - virtual position south(); - virtual position east(); - virtual position west(); - virtual position north_east(); - virtual position north_west(); - virtual position south_east(); - virtual position south_west(); - virtual position start(); - virtual position end(); - virtual position center(); - virtual place *find_label(const char *); - virtual void move_by(const position &); - virtual int blank(); - virtual void update_bounding_box(bounding_box *); - virtual object_type type() = 0; - virtual void print(); - virtual void print_text(); -}; - -typedef position (object::*corner)(); - -struct place { - object *obj; - double x, y; -}; - -struct string_list; - -class path { - corner crn; - string_list *label_list; - path *ypath; -public: - path(corner = 0); - path(char *, corner = 0); - ~path(); - void append(corner); - void append(char *); - void set_ypath(path *); - int follow(const place &, place *) const; -}; - -struct object_list { - object *head; - object *tail; - object_list(); - void append(object *); - void wrap_up_block(object_list *); -}; - -declare_ptable(place) - -// these go counterclockwise -enum direction { - RIGHT_DIRECTION, - UP_DIRECTION, - LEFT_DIRECTION, - DOWN_DIRECTION - }; - -struct graphics_state { - double x, y; - direction dir; -}; - -struct saved_state : public graphics_state { - saved_state *prev; - PTABLE(place) *tbl; -}; - - -struct text_item { - text_item *next; - char *text; - adjustment adj; - const char *filename; - int lineno; - - text_item(char *, const char *, int); - ~text_item(); -}; - -const unsigned long IS_DOTTED = 01; -const unsigned long IS_DASHED = 02; -const unsigned long IS_CLOCKWISE = 04; -const unsigned long IS_INVISIBLE = 020; -const unsigned long HAS_LEFT_ARROW_HEAD = 040; -const unsigned long HAS_RIGHT_ARROW_HEAD = 0100; -const unsigned long HAS_SEGMENT = 0200; -const unsigned long IS_SAME = 0400; -const unsigned long HAS_FROM = 01000; -const unsigned long HAS_AT = 02000; -const unsigned long HAS_WITH = 04000; -const unsigned long HAS_HEIGHT = 010000; -const unsigned long HAS_WIDTH = 020000; -const unsigned long HAS_RADIUS = 040000; -const unsigned long HAS_TO = 0100000; -const unsigned long IS_CHOPPED = 0200000; -const unsigned long IS_DEFAULT_CHOPPED = 0400000; -const unsigned long HAS_THICKNESS = 01000000; -const unsigned long IS_FILLED = 02000000; -const unsigned long IS_DEFAULT_FILLED = 04000000; -const unsigned long IS_ALIGNED = 010000000; - -struct segment { - int is_absolute; - position pos; - segment *next; - segment(const position &, int, segment *); -}; - -struct rectangle_object; -struct graphic_object; -struct linear_object; - -struct object_spec { - unsigned long flags; - object_type type; - object_list oblist; - PTABLE(place) *tbl; - double dash_width; - position from; - position to; - position at; - position by; - path *with; - text_item *text; - double height; - double radius; - double width; - double segment_width; - double segment_height; - double start_chop; - double end_chop; - double thickness; - double fill; - direction dir; - segment *segment_list; - position segment_pos; - int segment_is_absolute; - - object_spec(object_type); - ~object_spec(); - object *make_object(position *, direction *); - graphic_object *make_box(position *, direction *); - graphic_object *make_block(position *, direction *); - graphic_object *make_text(position *, direction *); - graphic_object *make_ellipse(position *, direction *); - graphic_object *make_circle(position *, direction *); - linear_object *make_line(position *, direction *); - linear_object *make_arc(position *, direction *); - graphic_object *make_linear(position *, direction *); - graphic_object *make_move(position *, direction *); - int position_rectangle(rectangle_object *p, position *curpos, - direction *dirp); -}; - - -object *make_object(object_spec *, position *, direction *); - -object *make_mark_object(); -object *make_command_object(char *, const char *, int); - -int lookup_variable(const char *name, double *val); -void define_variable(const char *name, double val); - -void print_picture(object *); - |