File: ot.h

package info (click to toggle)
tkdesk 2.0-12
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 6,596 kB
  • sloc: tcl: 20,764; ansic: 16,262; sh: 359; makefile: 233
file content (110 lines) | stat: -rw-r--r-- 3,518 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/* ============================================================================
 *
 * File:	ot.h
 * Project:	ot - Optimizing Tcl 
 * Started:	12.02.94
 * Changed:	12.02.94
 *
 * Description:	This header file contains a few macro function definitions
 *              for simplifying the use of the ot and Tcl/Tk C libraries.
 *              And of course it contains prototypes for functions and
 *              tcl commands implemented by ot.
 *
 * ========================================================================= */

#ifndef _OT_H
#define _OT_H

#include <stdlib.h>
#include <tcl.h>
#include <tk.h>

/* ===== Defines */

#define round(x) (int)(((x) >= 0) ? (double)(x) + 0.5 : (double)(x) - 0.5)


/* Macros for tcl optimization (these assume the variable interp to
   point to the Tcl interpreter): */

#define ot_invoke(cmd) \
  if (Ot_TclInvoke (interp, (cmd)) == TCL_ERROR) return TCL_ERROR;

#define ot_getvar(var, x) \
  if (!((x) = Ot_GetVar (interp, (var), TCL_LEAVE_ERR_MSG))) \
      return TCL_ERROR;

#define ot_getvar2(var, ind, x) \
  if (!((x) = Ot_GetVar2 (interp, (var), (ind), TCL_LEAVE_ERR_MSG))) \
      return TCL_ERROR;

#define ot_setvar(var, newval) \
  if (!(Ot_SetVar (interp, (var), (newval), TCL_LEAVE_ERR_MSG))) \
      return TCL_ERROR;

#define ot_setvar2(var, ind, newval) \
  if (!(Ot_SetVar2 (interp, (var), (ind), (newval), TCL_LEAVE_ERR_MSG))) \
      return TCL_ERROR;

#define ot_setvar_with_flags(var, newval, flags) \
  if (!(Ot_SetVar (interp, (var), (newval), (flags)))) \
      return TCL_ERROR;

#define ot_setvar2_with_flags(var, ind, newval, flags) \
  if (!(Ot_SetVar2 (interp, (var), (ind), (newval), (flags)))) \
      return TCL_ERROR;

#define tcl_getint(str, x) \
  if (Tcl_GetInt (interp, (str), (int *)(x)) == TCL_ERROR) \
      return TCL_ERROR;

#define tcl_getdouble(str, x) \
  if (Tcl_GetDouble (interp, (str), (double *)(x)) == TCL_ERROR) \
      return TCL_ERROR;

#define tcl_getboolean(str, x) \
  if (Tcl_GetBoolean (interp, (str), (int *)(x)) == TCL_ERROR) \
      return TCL_ERROR;

#define ot_getint(var, ind, x) \
  if (Ot_GetInt (interp, (var), (ind), (int *)(x)) == TCL_ERROR) \
      return TCL_ERROR;

#define ot_getdouble(var, ind, x) \
  if (Ot_GetDouble (interp, (var), (ind), (double *)(x)) == TCL_ERROR) \
      return TCL_ERROR;

#define ot_getboolean(var, ind, x) \
  if (Ot_GetBoolean (interp, (var), (ind), (int *)(x)) == TCL_ERROR) \
      return TCL_ERROR;


/* ===== Prototypes of Utility Functions */

EXTERN int Ot_TclInvoke _ANSI_ARGS_((Tcl_Interp *interp, char *cmd));
EXTERN char *Ot_GetVar _ANSI_ARGS_((Tcl_Interp *interp, char *var,
				  int flags));
EXTERN char *Ot_GetVar2 _ANSI_ARGS_((Tcl_Interp *interp, char *var,
				  char *ind, int flags));
EXTERN char *Ot_SetVar _ANSI_ARGS_((Tcl_Interp *interp, char *var,
				  char *newval, int flags));
EXTERN char *Ot_SetVar2 _ANSI_ARGS_((Tcl_Interp *interp, char *var,
				  char *ind, char *newval, int flags));
EXTERN int Ot_GetInt _ANSI_ARGS_((Tcl_Interp *interp, char *var,
				  char *index, int *val));
EXTERN int Ot_GetDouble _ANSI_ARGS_((Tcl_Interp *interp, char *var,
				     char *index, double *val));
EXTERN int Ot_GetBoolean _ANSI_ARGS_((Tcl_Interp *interp, char *var,
				      char *index, int *val));


/* ===== Prototypes of Tcl Commands */
     
EXTERN int Ot_Init _ANSI_ARGS_((Tcl_Interp *interp));
EXTERN Tcl_CmdProc ot_timer_Cmd;
EXTERN Tcl_CmdProc ot_maplist_Cmd;
#ifndef NO_TK
EXTERN Tcl_CmdProc ot_warp_pointer_Cmd;
#endif

#endif /* _OT_H */