Introduce POLYGONHOLE_MODE for creating holes in polygons
[geda-pcb/gde.git] / src / create.h
blob8086b1e3c5aca69eb1eb36e3e6871173e9026499
1 /*
2 * COPYRIGHT
4 * PCB, interactive printed circuit board design
5 * Copyright (C) 1994,1995,1996 Thomas Nau
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 * Contact addresses for paper mail and Email:
22 * Thomas Nau, Schlehenweg 15, 88471 Baustetten, Germany
23 * Thomas.Nau@rz.uni-ulm.de
25 * RCS: $Id$
28 /* prototypes for create routines
31 #ifndef __CREATE_INCLUDED__
32 #define __CREATE_INCLUDED__
34 #include "global.h"
36 DataTypePtr CreateNewBuffer (void);
37 void pcb_colors_from_settings (PCBTypePtr);
38 PCBTypePtr CreateNewPCB (bool);
39 /* Called after PCB->Data->LayerN is set. Returns zero if no errors,
40 else nonzero. */
41 int CreateNewPCBPost (PCBTypePtr, int /* set defaults */);
42 PinTypePtr CreateNewVia (DataTypePtr, LocationType, LocationType, BDimension,
43 BDimension, BDimension, BDimension, char *,
44 FlagType);
45 LineTypePtr CreateDrawnLineOnLayer (LayerTypePtr, LocationType, LocationType,
46 LocationType, LocationType, BDimension,
47 BDimension, FlagType);
48 LineTypePtr CreateNewLineOnLayer (LayerTypePtr, LocationType, LocationType,
49 LocationType, LocationType, BDimension,
50 BDimension, FlagType);
51 RatTypePtr CreateNewRat (DataTypePtr, LocationType, LocationType,
52 LocationType, LocationType, Cardinal, Cardinal,
53 BDimension, FlagType);
54 ArcTypePtr CreateNewArcOnLayer (LayerTypePtr, LocationType, LocationType,
55 BDimension, BDimension, int, int, BDimension, BDimension,
56 FlagType);
57 PolygonTypePtr CreateNewPolygonFromRectangle (LayerTypePtr, LocationType,
58 LocationType, LocationType,
59 LocationType, FlagType);
60 TextTypePtr CreateNewText (LayerTypePtr, FontTypePtr, LocationType,
61 LocationType, BYTE, int, char *, FlagType);
62 PolygonTypePtr CreateNewPolygon (LayerTypePtr, FlagType);
63 PointTypePtr CreateNewPointInPolygon (PolygonTypePtr,
64 LocationType, LocationType);
65 PolygonType *CreateNewHoleInPolygon (PolygonType *polygon);
66 ElementTypePtr CreateNewElement (DataTypePtr, ElementTypePtr,
67 FontTypePtr, FlagType, char *, char *,
68 char *, LocationType, LocationType, BYTE,
69 int, FlagType, bool);
70 LineTypePtr CreateNewLineInElement (ElementTypePtr, LocationType,
71 LocationType, LocationType, LocationType,
72 BDimension);
73 ArcTypePtr CreateNewArcInElement (ElementTypePtr, LocationType, LocationType,
74 BDimension, BDimension, int, int,
75 BDimension);
76 PinTypePtr CreateNewPin (ElementTypePtr, LocationType, LocationType,
77 BDimension, BDimension, BDimension, BDimension,
78 char *, char *, FlagType);
79 PadTypePtr CreateNewPad (ElementTypePtr, LocationType, LocationType,
80 LocationType, LocationType, BDimension, BDimension,
81 BDimension, char *, char *, FlagType);
82 LineTypePtr CreateNewLineInSymbol (SymbolTypePtr, LocationType, LocationType,
83 LocationType, LocationType, BDimension);
84 void CreateDefaultFont (void);
85 RubberbandTypePtr CreateNewRubberbandEntry (LayerTypePtr,
86 LineTypePtr, PointTypePtr);
87 LibraryMenuTypePtr CreateNewNet (LibraryTypePtr, char *, char *);
88 LibraryEntryTypePtr CreateNewConnection (LibraryMenuTypePtr, char *);
90 AttributeTypePtr CreateNewAttribute (AttributeListTypePtr list, char *name, char *value);
92 #endif