1/*
2 * Author:      Daniel Ratton Figueiredo <ratton@land.ufrj.br>
3 * Author:      William Chia-Wei Cheng (bill.cheng@acm.org)
4 *
5 * Copyright (C) 2001-2009, William Chia-Wei Cheng.
6 *
7 * This file may be distributed under the terms of the Q Public License
8 * as defined by Trolltech AS of Norway and appearing in the file
9 * LICENSE.QPL included in the packaging of this file.
10 *
11 * THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING
12 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
13 * PURPOSE.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL,
14 * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
15 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
16 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
17 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18 *
19 * @(#)$Header: /mm2/home/cvs/bc-src/tgif/tangram2.e,v 1.9 2011/05/16 16:21:59 william Exp $
20 */
21
22#ifndef _TGIF_TANGRAM2_E_
23#define _TGIF_TANGRAM2_E_
24
25#define CMDID_TANGRAM2_BASE 0x4000
26
27#define CMDID_ABOUT_TANGRAM2           (CMDID_TANGRAM2_BASE+0)
28#define CMDID_TANGRAM2_GENERATE_CHAIN  (CMDID_TANGRAM2_BASE+1)
29#define CMDID_TANGRAM2_START_SIMULATOR (CMDID_TANGRAM2_BASE+2)
30#define CMDID_TANGRAM2_SIMULATION_STEP (CMDID_TANGRAM2_BASE+3)
31#define CMDID_TANGRAM2_END_SIMULATOR   (CMDID_TANGRAM2_BASE+4)
32
33#define MAXTANGRAM2CMDIDS (CMDID_ABOUT_TANGRAM2+5)
34
35extern		char cmdLineGenParser[MAXSTRING];
36
37extern		TgMenuInfo tangram2MenuInfo;
38
39#ifdef _INCLUDE_FROM_TANGRAM2_C_
40#undef extern
41#define extern
42#endif /*_INCLUDE_FROM_TANGRAM2_C_*/
43
44/* ======================= Init & CleanUp ======================= */
45
46extern void	CleanUpTangram2 ARGS_DECL((void));
47extern int	InitTangram2 ARGS_DECL((void));
48
49/* ======================= Tangram2 Shortcuts ======================= */
50
51extern void	CleanUpTangram2ShortCut ARGS_DECL((void));
52extern int	InitTangram2ShortCut ARGS_DECL((void));
53
54extern int	ValidTangram2CmdName ARGS_DECL((char *buf, int buf_sz,
55		                                int *pn_num_args));
56extern int	ValidTangram2CmdId ARGS_DECL((int nCmdId));
57extern int	DoTangram2Cmd ARGS_DECL((int nCmdId, char *args));
58extern int	FetchTangram2ShortCutNumArgs ARGS_DECL((int index,
59		                                        int *pn_num_args));
60extern int	DoTangram2ShortCut ARGS_DECL((int index, char *args));
61
62/* ======================= Tangram2 Internal Commands ======================= */
63
64extern ExecInfo	*Tangram2GetExecInfo ARGS_DECL((char *func_name));
65
66/* ======================= Tangram2 Menu ======================= */
67
68extern int	RefreshTangram2Menu ARGS_DECL((TgMenu*));
69extern TgMenu	*CreateTangram2Menu ARGS_DECL((TgMenu*, int X, int Y,
70		                               TgMenuInfo*,
71		                               int status_str_xlated));
72extern int	Tangram2Menu ARGS_DECL((int X, int Y, int TrackMenubar));
73
74/* ======================= Tangram2 Menu Functions ======================= */
75
76extern void	AboutTangram2 ARGS_DECL((void));
77extern void	Tangram2GenerateChain ARGS_DECL((char*));
78extern void	Tangram2StartSimulator ARGS_DECL((char*));
79extern void	Tangram2SimulationStep ARGS_DECL((void));
80extern void	Tangram2EndSimulator ARGS_DECL((void));
81
82/* ======================= Tangram2 Misc Functions ======================= */
83
84extern void	Tangram2UpdateInitAttr ARGS_DECL((struct ObjRec *, char*));
85
86#ifdef _INCLUDE_FROM_TANGRAM2_C_
87#undef extern
88#ifndef _NO_RECURSIVE_EXTERN
89#define extern extern
90#endif /* ~_NO_RECURSIVE_EXTERN */
91#endif /*_INCLUDE_FROM_TANGRAM2_C_*/
92
93#endif /*_TGIF_TANGRAM2_E_*/
94