1/*
2 * Author:      William Chia-Wei Cheng (bill.cheng@acm.org)
3 *
4 * Copyright (C) 2001-2009, William Chia-Wei Cheng.
5 *
6 * This file may be distributed under the terms of the Q Public License
7 * as defined by Trolltech AS of Norway and appearing in the file
8 * LICENSE.QPL included in the packaging of this file.
9 *
10 * THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING
11 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
12 * PURPOSE.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL,
13 * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
14 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
15 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
16 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 *
18 * @(#)$Header: /mm2/home/cvs/bc-src/tgif/dup.e,v 1.6 2011/05/16 16:21:57 william Exp $
19 */
20
21#ifndef _DUP_E_
22#define _DUP_E_
23
24extern int	justDupped;
25extern int	useRecentDupDistance;
26extern int	dupDx;
27extern int	dupDy;
28
29#ifdef _INCLUDE_FROM_DUP_C_
30#undef extern
31#define extern
32#endif /*_INCLUDE_FROM_DUP_C_*/
33
34extern void	CopyObjId ARGS_DECL((struct ObjRec *From, struct ObjRec *To));
35extern void	CopyObjLocks ARGS_DECL((struct ObjRec *From,
36		                        struct ObjRec *To));
37extern void	UnlockAnObj ARGS_DECL((struct ObjRec *From));
38extern void	DupObjXfrmMtrx ARGS_DECL((struct ObjRec *From,
39		                          struct ObjRec *To));
40extern void	DupObjBasics ARGS_DECL((struct ObjRec *From,
41		                        struct ObjRec *To));
42extern void	DupPolyObj ARGS_DECL((struct PolyRec *, struct ObjRec *));
43extern void	DupPolygonObj ARGS_DECL((struct PolygonRec *, struct ObjRec *));
44extern void	DupOvalObj ARGS_DECL((struct OvalRec *, struct ObjRec *));
45extern void	DupBoxObj ARGS_DECL((struct BoxRec *, struct ObjRec *));
46extern void	DupRCBoxObj ARGS_DECL((struct RCBoxRec *, struct ObjRec *));
47extern void	DupArcObj ARGS_DECL((struct ArcRec *, struct ObjRec *));
48extern void	DupXBmObj ARGS_DECL((struct XBmRec *, struct ObjRec *));
49extern void	DupXPmObj ARGS_DECL((struct XPmRec *, struct ObjRec *));
50extern void	DupStrSeg ARGS_DECL((StrBlockInfo*, StrSegInfo*));
51extern void	DupStrBlock ARGS_DECL((StrBlockInfo*, MiniLineInfo*,
52		                       StrBlockInfo**, StrBlockInfo**));
53extern void	DupMiniLine ARGS_DECL((MiniLineInfo *pMiniLine,
54		                       MiniLinesInfo *pOwnerMiniLines,
55		                       StrBlockInfo *pOwnerBlock,
56		                       MiniLineInfo **ppFirstMiniLine,
57		                       MiniLineInfo **ppLastMiniLine));
58extern void	DupMiniLines ARGS_DECL((MiniLinesInfo *minilines,
59		                        StrBlockInfo *pOwnerBlock,
60		                        MiniLinesInfo **ppMiniLines));
61extern void	DupTextObj ARGS_DECL((struct TextRec *, struct ObjRec *From,
62		                      struct ObjRec *To));
63extern void	DupConnection ARGS_DECL((struct ConnRec *From,
64		                         struct ConnRec *To));
65extern void	DupGroupObj ARGS_DECL((struct GroupRec *, struct ObjRec *));
66extern struct ObjRec	* DupObj ARGS_DECL((struct ObjRec *));
67extern void	DupSelObj ARGS_DECL((void));
68extern void	DupTheseObjects ARGS_DECL((struct SelRec *Top,
69		                           struct SelRec *Bot,
70		                           struct SelRec **NewTop,
71		                           struct SelRec **NewBot));
72extern void	JustDupSelObj ARGS_DECL((struct SelRec **NewTop,
73		                         struct SelRec **NewBot));
74
75#ifdef _INCLUDE_FROM_DUP_C_
76#undef extern
77#ifndef _NO_RECURSIVE_EXTERN
78#define extern extern
79#endif /* ~_NO_RECURSIVE_EXTERN */
80#endif /*_INCLUDE_FROM_DUP_C_*/
81
82#endif /*_DUP_E_*/
83