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
27 /* prototypes for create routines
35 /* TRUE during file loads, for example to allow overlapping vias.
36 FALSE otherwise, to stop the user from doing normally dangerous
38 void CreateBeLenient (bool);
40 DataType
* CreateNewBuffer (void);
41 void pcb_colors_from_settings (PCBType
*);
42 PCBType
* CreateNewPCB (bool);
43 /* Called after PCB->Data->LayerN is set. Returns zero if no errors,
45 int CreateNewPCBPost (PCBType
*, int /* set defaults */);
46 PinType
* CreateNewVia (DataType
*, Coord
, Coord
, Coord
, Coord
, Coord
, Coord
, char *, FlagType
);
47 LineType
* CreateDrawnLineOnLayer (LayerType
*, Coord
, Coord
, Coord
, Coord
, Coord
, Coord
, FlagType
);
48 LineType
* CreateNewLineOnLayer (LayerType
*, Coord
, Coord
, Coord
, Coord
, Coord
, Coord
, FlagType
);
49 RatType
* CreateNewRat (DataType
*, Coord
, Coord
, Coord
, Coord
, Cardinal
, Cardinal
, Coord
, FlagType
);
50 ArcType
* CreateNewArcOnLayer (LayerType
*, Coord
, Coord
, Coord
, Coord
, Angle
, Angle
, Coord
, Coord
, FlagType
);
51 PolygonType
* CreateNewPolygonFromRectangle (LayerType
*, Coord
, Coord
, Coord
, Coord
, FlagType
);
52 TextType
* CreateNewText (LayerType
*, FontType
*, Coord
, Coord
, unsigned, int, char *, FlagType
);
53 PolygonType
* CreateNewPolygon (LayerType
*, FlagType
);
54 PointType
* CreateNewPointInPolygon (PolygonType
*, Coord
, Coord
);
55 PolygonType
* CreateNewHoleInPolygon (PolygonType
*polygon
);
56 ElementType
* CreateNewElement (DataType
*, ElementType
*, FontType
*, FlagType
, char *, char *, char *, Coord
, Coord
, BYTE
, int, FlagType
, bool);
57 LineType
* CreateNewLineInElement (ElementType
*, Coord
, Coord
, Coord
, Coord
, Coord
);
58 ArcType
* CreateNewArcInElement (ElementType
*, Coord
, Coord
, Coord
, Coord
, Angle
, Angle
, Coord
);
59 PinType
* CreateNewPin (ElementType
*, Coord
, Coord
, Coord
, Coord
, Coord
, Coord
, char *, char *, FlagType
);
60 PadType
* CreateNewPad (ElementType
*, Coord
, Coord
, Coord
, Coord
, Coord
, Coord
, Coord
, char *, char *, FlagType
);
61 LineType
* CreateNewLineInSymbol (SymbolType
*, Coord
, Coord
, Coord
, Coord
, Coord
);
62 void CreateDefaultFont (PCBType
*);
63 RubberbandType
* CreateNewRubberbandEntry (LayerType
*, LineType
*, PointType
*);
64 LibraryMenuType
* CreateNewNet (LibraryType
*, char *, char *);
65 LibraryEntryType
* CreateNewConnection (LibraryMenuType
*, char *);
66 AttributeType
* CreateNewAttribute (AttributeListType
*list
, char *name
, char *value
);