You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
3.6 KiB
119 lines
3.6 KiB
/*=========================================================================
|
|
|
|
Program: Visualization Toolkit
|
|
Module: $RCSfile: vtkTclUtil.h,v $
|
|
|
|
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
|
|
All rights reserved.
|
|
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even
|
|
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
PURPOSE. See the above copyright notice for more information.
|
|
|
|
=========================================================================*/
|
|
|
|
#ifndef __vtkTclInclude_h
|
|
#define __vtkTclInclude_h
|
|
|
|
#include "vtkObject.h"
|
|
#include "vtkCommand.h"
|
|
#include "vtkTcl.h"
|
|
|
|
#ifdef WIN32
|
|
#define VTKTCL_EXPORT __declspec( dllexport )
|
|
#else
|
|
#define VTKTCL_EXPORT
|
|
#endif
|
|
|
|
extern VTKTCL_EXPORT void vtkTclUpdateCommand(Tcl_Interp *interp,
|
|
char *name,
|
|
vtkObject *obj);
|
|
|
|
extern VTKTCL_EXPORT void vtkTclDeleteObjectFromHash(vtkObject *,
|
|
unsigned long eventId,
|
|
void *, void *);
|
|
extern VTKTCL_EXPORT void vtkTclGenericDeleteObject(ClientData cd);
|
|
|
|
extern VTKTCL_EXPORT void
|
|
vtkTclGetObjectFromPointer(Tcl_Interp *interp, void *temp,
|
|
const char *targetType);
|
|
|
|
extern VTKTCL_EXPORT void *
|
|
vtkTclGetPointerFromObject(const char *name, const char *result_type,
|
|
Tcl_Interp *interp, int &error);
|
|
|
|
extern VTKTCL_EXPORT void vtkTclVoidFunc(void *);
|
|
extern VTKTCL_EXPORT void vtkTclVoidFuncArgDelete(void *);
|
|
extern VTKTCL_EXPORT void vtkTclListInstances(Tcl_Interp *interp,
|
|
ClientData arg);
|
|
extern VTKTCL_EXPORT int vtkTclInDelete(Tcl_Interp *interp);
|
|
|
|
extern VTKTCL_EXPORT int vtkTclNewInstanceCommand(ClientData cd,
|
|
Tcl_Interp *interp,
|
|
int argc, char *argv[]);
|
|
extern VTKTCL_EXPORT void vtkTclDeleteCommandStruct(ClientData cd);
|
|
extern VTKTCL_EXPORT
|
|
void vtkTclCreateNew(Tcl_Interp *interp, const char *cname,
|
|
ClientData (*NewCommand)(),
|
|
int (*CommandFunction)(ClientData cd,
|
|
Tcl_Interp *interp,
|
|
int argc, char *argv[]));
|
|
|
|
class vtkTclCommand : public vtkCommand
|
|
{
|
|
public:
|
|
static vtkTclCommand *New() { return new vtkTclCommand; };
|
|
|
|
void SetStringCommand(const char *arg);
|
|
void SetInterp(Tcl_Interp *interp) { this->Interp = interp; };
|
|
|
|
void Execute(vtkObject *, unsigned long, void *);
|
|
|
|
char *StringCommand;
|
|
Tcl_Interp *Interp;
|
|
protected:
|
|
vtkTclCommand();
|
|
~vtkTclCommand();
|
|
};
|
|
|
|
typedef struct _vtkTclVoidFuncArg
|
|
{
|
|
Tcl_Interp *interp;
|
|
char *command;
|
|
} vtkTclVoidFuncArg;
|
|
|
|
struct vtkTclCommandArgStruct
|
|
{
|
|
void *Pointer;
|
|
Tcl_Interp *Interp;
|
|
unsigned long Tag;
|
|
};
|
|
|
|
struct vtkTclCommandStruct
|
|
{
|
|
ClientData (*NewCommand)();
|
|
int (*CommandFunction)(ClientData cd, Tcl_Interp *interp,
|
|
int argc, char *argv[]);
|
|
};
|
|
|
|
struct vtkTclInterpStruct
|
|
{
|
|
Tcl_HashTable InstanceLookup;
|
|
Tcl_HashTable PointerLookup;
|
|
Tcl_HashTable CommandLookup;
|
|
|
|
int Number;
|
|
int DebugOn;
|
|
int InDelete;
|
|
int DeleteExistingObjectOnNew;
|
|
};
|
|
|
|
extern VTKTCL_EXPORT
|
|
void vtkTclApplicationInitExecutable(int argc, const char* const argv[]);
|
|
extern VTKTCL_EXPORT
|
|
void vtkTclApplicationInitTclTk(Tcl_Interp* interp,
|
|
const char* const relative_dirs[]);
|
|
|
|
#endif
|
|
|
|
|