ProcessMessage question

hi,

i have a class TGMainFrame A and in the ProcessMessage() of A, if selected by the user, i create a TGTransientFrame B object and just after call another method of A (A::DoAction()).
so to implement the A::ProcessMessage i do something like:

Bool_t A::ProcessMessage(Long_t msg, Long_t par1, Long_t par2) {

case kCM_MENU:
switch(parm1) {

case M_GetConfigurationDB:
b = new B(); /* Action 1 /
this->DoAction(); /
Action 2 */
}

When running the program, the B() is created and “at the same time”, the A::DoAction() is done.
so my question is how i shall proceed to get Action 2 being done ONLY and ONLY when Action 1 finishes (when e.g. the user clicks the exit button of B!)

in advance thanks for your valuable help.

Hi,

use as last statement in the ctor of the TGFrameDialog derived class:

fClient->WaitFor(this);

this will block the execution of the next statement in A till the dialog has been destroyed. Also check fClient->WaitForUnmap(this) if the dialog is not destroyed on exit but only unmapped.

Cheers, Fons.