CompuServe Messages

#CDialogDirector 1.1.3

    20-Jul-93 21:04:43
Sb: #CDialogDirector 1.1.3
Fm: David Jokinen 70713,1603
To: sysop (X)
I am converting a project developed under TCL 1.1.2 to TCL 1.1.3. A change which has been made to CDialogDirector is causing me some confusion. — The problem is that CDialogDirector::Close() now refuses to close modal dialogs, as follows: … if (itsWindow->IsModal()) { dismissCmd = cmdClose; return TRUE; // CDirector::Close() never gets called! } else return inherited::Close(fQuitting); // calls CDirector::Close() … — To implement a simple modal dialog box, I used to do this under TCL 1.1.2: … myDialogDirector->itsWindow->SetModal(TRUE); myDialogDirector->BeginDialog(); myDialogDirector->DoModalDialog(cmdOK); myDialogDirector->Close(FALSE); // calls CDialogDirector::Close() … — According to the documentation for TCL 1.1.3, this should be rewritten as: … myDialogDirector->BeginModalDialog(); myDialogDirector->DoModalDialog(cmdOK); myDialogDirector->Close(FALSE); // calls CDialogDirector::Close() … — The above technique leaves a dismissed dialog hanging open on the screen, so I now have to do this under TCL 1.1.3: … myDialogDirector->BeginModalDialog(); myDialogDirector->DoModalDialog(cmdOK); myDialogDirector->CDirector::Close(FALSE); // bypasses CDialogDirector::Close() … — Bypassing CDialogDirector::Close() fixes the problem, in a clumsy kind of way, but I am concerned about compatibility with future releases of TCL. What is the recommended method for closing a modal dialog implemented with CDialogDirector? Thanks in advance, David Jokinen Ground Zero Software