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/cmd.e,v 1.7 2011/05/16 16:21:56 william Exp $
19 */
20
21#ifndef _CMD_E_
22#define _CMD_E_
23
24extern int		recordCmdIncludeTgifObj;
25extern int		recordCmdUsesNewColormap;
26extern int		undoingOrRedoing;
27extern int		historyDepth, historyCount, defaultHistoryDepth;
28extern struct CmdRec	*firstCmd, *lastCmd, *curCmd;
29
30extern struct SelRec	*topSelBeforeInCmd, *botSelBeforeInCmd;
31extern int		*stackingPosition;
32extern int		stackingCount;
33extern int		stackingPositionHasIds;
34
35extern int		composingCommand;
36extern int		undoRedoRestoreDrawingMode;
37extern Colormap		preparedColormap;
38
39#ifdef _INCLUDE_FROM_CMD_C_
40#undef extern
41#define extern
42#endif /*_INCLUDE_FROM_CMD_C_*/
43
44extern void	InsertCmd ARGS_DECL((struct CmdRec *PrevCmd,
45		                     struct CmdRec *NextCmd,
46		                     struct CmdRec *CmdPtr,
47		                     struct CmdRec **ppFirstCmd,
48		                     struct CmdRec **ppLastCmd));
49extern void	CopyAndInsertCmd ARGS_DECL((int from_remote,
50                                     char *serialization_buf,
51                                     struct CmdRec *PrevCmd,
52		                     struct CmdRec *NextCmd,
53		                     struct CmdRec *CmdPtr,
54		                     struct CmdRec **ppFirstCmd,
55		                     struct CmdRec **ppLastCmd));
56extern void	DeleteARedoRecord ARGS_DECL((struct CmdRec *, double PercStart,
57		                             double PercEnd));
58extern void	ClearRedoRecords ARGS_DECL((struct CmdRec *));
59extern void	CleanUpCmds ARGS_DECL((void));
60extern void	CopySel ARGS_DECL((struct SelRec *FromTopSel, int Count,
61		                   struct SelRec **ToTopSel,
62		                   struct SelRec **ToBotSel));
63extern void	UndoACmd ARGS_DECL((struct CmdRec *CmdPtr, int HighLight,
64		                   int PerformAction));
65extern void	UndoCmd ARGS_DECL((void));
66extern int	RedoACmd ARGS_DECL((struct CmdRec *CmdPtr, int HighLight,
67		                    int PerformAction));
68extern void	RedoCmd ARGS_DECL((void));
69extern void	StartCompositeCmd ARGS_DECL((void));
70extern void	EndCompositeCmd ARGS_DECL((void));
71extern void	RestoreDefaultHistoryDepth ARGS_DECL((void));
72extern void	DisableUndo ARGS_DECL((void));
73extern void	EnableUndo ARGS_DECL((void));
74extern struct SelRec	* PrepareStackingInfo ARGS_DECL((
75				struct SelRec *TopSel,
76				struct SelRec *BotSel,
77				int NumObjs,
78				int PreparePhase,
79				int **ppnStackingPosition,
80				int *pnStackingCount,
81				int *pnStackingPositionHasIds));
82extern void	PrepareToRecord ARGS_DECL((int, struct SelRec *Top,
83		                           struct SelRec *Bot, int NumObjs));
84extern void	FreeAfterSel ARGS_DECL((struct CmdRec *));
85extern void	RecordCmd ARGS_DECL((int, struct SubCmdRec *,
86		                     struct SelRec *Top, struct SelRec *Bot,
87		                     int NumObjs));
88extern void	AbortPrepareCmd ARGS_DECL((int CmdType));
89extern void	RecordNewObjCmd ARGS_DECL((void));
90extern void	PrepareToReplaceAnObj ARGS_DECL((struct ObjRec *));
91extern void	RecordReplaceAnObj ARGS_DECL((struct ObjRec *));
92extern void	ChangeReplaceOneCmdToDeleteCmd ARGS_DECL((void));
93extern void	RecordWBClearAll ARGS_DECL((void));
94extern void	RecordWBSlideShow ARGS_DECL((int nIntoSlideShow));
95extern void	RecordWBChatALine ARGS_DECL((struct SubCmdRec *));
96
97#ifdef _INCLUDE_FROM_CMD_C_
98#undef extern
99#ifndef _NO_RECURSIVE_EXTERN
100#define extern extern
101#endif /* ~_NO_RECURSIVE_EXTERN */
102#endif /*_INCLUDE_FROM_CMD_C_*/
103
104#endif /*_CMD_E_*/
105