static Standard_Boolean autodisp = Standard_True;
static Standard_Boolean repaint2d,repaint3d;
-extern Draw_Interpretor theCommands;
-
//===============================================
// dictionnary of variables
// Variables are stored in a map Integer, Transient
// protect if the map was destroyed before the interpretor
if (theVariables.IsEmpty()) return NULL;
+ Draw_Interpretor& aCommands = Draw::GetInterpretor();
+
// MSV 9.10.14 CR25344
Handle(Draw_Drawable3D) D(reinterpret_cast<Draw_Drawable3D*>(CD));
if (D.IsNull()) {
- Tcl_UntraceVar(theCommands.Interp(),name,TCL_TRACE_UNSETS | TCL_TRACE_WRITES,
+ Tcl_UntraceVar(aCommands.Interp(),name,TCL_TRACE_UNSETS | TCL_TRACE_WRITES,
tracevar,CD);
return NULL;
}
if (D->Protected()) {
- D->Name(Tcl_SetVar(theCommands.Interp(),name,name,0));
+ D->Name(Tcl_SetVar(aCommands.Interp(),name,name,0));
return (char*) "variable is protected";
} else {
if (D->Visible()) {
else
repaint2d = Standard_True;
}
- Tcl_UntraceVar(theCommands.Interp(),name,TCL_TRACE_UNSETS | TCL_TRACE_WRITES,
+ Tcl_UntraceVar(aCommands.Interp(),name,TCL_TRACE_UNSETS | TCL_TRACE_WRITES,
tracevar,CD);
theVariables.Remove(D);
return NULL;
const Handle(Draw_Drawable3D)& D,
const Standard_Boolean displ)
{
+ Draw_Interpretor& aCommands = Draw::GetInterpretor();
+
if ((name[0] == '.') && (name[1] == '\0')) {
if (!D.IsNull()) {
dout.RemoveDrawable(D);
else {
// Check if the variable with the same name exists
ClientData aCD =
- Tcl_VarTraceInfo(theCommands.Interp(),name,TCL_TRACE_UNSETS | TCL_TRACE_WRITES,
+ Tcl_VarTraceInfo(aCommands.Interp(),name,TCL_TRACE_UNSETS | TCL_TRACE_WRITES,
tracevar, NULL);
Handle(Draw_Drawable3D) anOldD(reinterpret_cast<Draw_Drawable3D*>(aCD));
if (!anOldD.IsNull()) {
anOldD.Nullify();
}
- Tcl_UnsetVar(theCommands.Interp(),name,0);
+ Tcl_UnsetVar(aCommands.Interp(),name,0);
if (!D.IsNull()) {
theVariables.Add(D);
- D->Name(Tcl_SetVar(theCommands.Interp(),name,name,0));
+ D->Name(Tcl_SetVar(aCommands.Interp(),name,name,0));
// set the trace function
- Tcl_TraceVar(theCommands.Interp(),name,TCL_TRACE_UNSETS | TCL_TRACE_WRITES,
+ Tcl_TraceVar(aCommands.Interp(),name,TCL_TRACE_UNSETS | TCL_TRACE_WRITES,
tracevar,reinterpret_cast<ClientData>(D.operator->()));
if (displ) {
if (!D->Visible())
}
else {
ClientData aCD =
- Tcl_VarTraceInfo(theCommands.Interp(),name,TCL_TRACE_UNSETS | TCL_TRACE_WRITES,
+ Tcl_VarTraceInfo(Draw::GetInterpretor().Interp(),name,TCL_TRACE_UNSETS | TCL_TRACE_WRITES,
tracevar, NULL);
D = reinterpret_cast<Draw_Drawable3D*>(aCD);
if (!theVariables.Contains(D))
*(p-1) = '\0';
c = *p;
+ Draw_Interpretor& aCommands = Draw::GetInterpretor();
+
// call the function, save the current result
char* sv = 0;
- if (*theCommands.Result()) {
- sv = new char [strlen(theCommands.Result())];
- strcpy(sv,theCommands.Result());
- theCommands.Reset();
+ if (*aCommands.Result()) {
+ sv = new char [strlen(aCommands.Result())];
+ strcpy(sv,aCommands.Result());
+ aCommands.Reset();
}
- if (theCommands.Eval(name) != 0) {
+ if (aCommands.Eval(name) != 0) {
cout << "Call of function " << name << " failed" << endl;
x = 0;
}
else
- x = Atof(theCommands.Result());
- theCommands.Reset();
+ x = Atof(aCommands.Result());
+ aCommands.Reset();
if (sv) {
- theCommands << sv;
+ aCommands << sv;
delete [] sv;
}
}
break;
default :
- name--;
- return x;
+ name--;
+ return x;
}
}
pName=(Standard_PCharacter)Name;
pVal=(Standard_PCharacter)val;
//
- Tcl_SetVar(theCommands.Interp(), pName, pVal, 0);
+ Tcl_SetVar(Draw::GetInterpretor().Interp(), pName, pVal, 0);
}
//=======================================================================
// Command management
#include <Image_AlienPixMap.hxx>
#include <NCollection_List.hxx>
-extern Draw_Interpretor theCommands;
extern Standard_Boolean Draw_VirtualWindows;
static Tcl_Interp *interp; /* Interpreter for this application. */
static NCollection_List<Draw_Window::FCallbackBeforeTerminate> MyCallbacks;
#endif
- if (tty) Prompt(theCommands.Interp(), 0);
- Prompt(theCommands.Interp(), 0);
+ Draw_Interpretor& aCommands = Draw::GetInterpretor();
+
+ if (tty) Prompt(aCommands.Interp(), 0);
+ Prompt(aCommands.Interp(), 0);
outChannel = Tcl_GetStdChannel(TCL_STDOUT);
if (outChannel) {
if (Draw_VirtualWindows) {
// main window will never shown
// but main loop will parse all Xlib messages
- Tcl_Eval(theCommands.Interp(), "wm withdraw .");
+ Tcl_Eval(aCommands.Interp(), "wm withdraw .");
}
Tk_MainLoop();
//======================================================
Standard_Boolean Init_Appli()
{
- theCommands.Init();
- interp = theCommands.Interp();
+ Draw_Interpretor& aCommands = Draw::GetInterpretor();
+ aCommands.Init();
+ interp = aCommands.Interp();
Tcl_Init(interp) ;
try {
Standard_Boolean Init_Appli(HINSTANCE hInst,
HINSTANCE hPrevInst, int nShow, HWND& hWndFrame )
{
+ Draw_Interpretor& aCommands = Draw::GetInterpretor();
+
DWORD IDThread;
HANDLE hThread;
console_semaphore = STOP_CONSOLE;
- theCommands.Init();
- interp = theCommands.Interp();
+ aCommands.Init();
+ interp = aCommands.Interp();
Tcl_Init(interp) ;
dwMainThreadId = GetCurrentThreadId();
\*--------------------------------------------------------*/
static DWORD WINAPI tkLoop(VOID)
{
+ Draw_Interpretor& aCommands = Draw::GetInterpretor();
+
Tcl_CreateExitHandler(exitProc, 0);
#if (TCL_MAJOR_VERSION > 8) || ((TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION >= 5))
{
Tcl_Channel aChannelErr = Tcl_GetStdChannel (TCL_STDERR);
if (aChannelIn != NULL)
{
- Tcl_RegisterChannel (theCommands.Interp(), aChannelIn);
+ Tcl_RegisterChannel (aCommands.Interp(), aChannelIn);
}
if (aChannelOut != NULL)
{
- Tcl_RegisterChannel (theCommands.Interp(), aChannelOut);
+ Tcl_RegisterChannel (aCommands.Interp(), aChannelOut);
}
if (aChannelErr != NULL)
{
- Tcl_RegisterChannel (theCommands.Interp(), aChannelErr);
+ Tcl_RegisterChannel (aCommands.Interp(), aChannelErr);
}
}
#endif