ParamDlg* Output::CreateParamDlg(HWND hwMtlEdit, IMtlParams *imp) { // create the rollout dialogs IAutoMParamDlg* masterDlg = maskCD.CreateParamDlgs(hwMtlEdit, imp, this); texoutDlg = texout->CreateParamDlg(hwMtlEdit, imp); // add the secondary dialogs to the master masterDlg->AddDlg(texoutDlg); return masterDlg; }
ParamDlg* CellTex::CreateParamDlg(HWND hwMtlEdit, IMtlParams *imp) { // paramDlg = new CellTexParamDlg(this,imp,hwMtlEdit); // return paramDlg; // create the rollout dialogs xyzGenDlg = xyzGen->CreateParamDlg(hwMtlEdit, imp); IAutoMParamDlg* masterDlg = cellTexCD.CreateParamDlgs(hwMtlEdit, imp, this); texoutDlg = texout->CreateParamDlg(hwMtlEdit, imp); // add the secondary dialogs to the master masterDlg->AddDlg(xyzGenDlg); masterDlg->AddDlg(texoutDlg); // celTex_param_blk.SetUserDlgProc(new NoiseDlgProc(this)); return masterDlg; }
ParamDlg* Noise::CreateParamDlg(HWND hwMtlEdit, IMtlParams *imp) { // JBW: the main difference here is the automatic creation of a ParamDlg by the new // ClassDesc2 function CreateParamDlgs(). This mirrors the way BeginEditParams() // can be redirected to the ClassDesc2 for automatic ParamMap2 management. In this // case a special subclass of ParamDlg, AutoMParamDlg, defined in IParamm2.h, is // created. It can act as a 'master' ParamDlg to which you can add any number of // secondary dialogs and it will make sure all the secondary dialogs are kept // up-to-date and deleted as necessary. // create the rollout dialogs xyzGenDlg = xyzGen->CreateParamDlg(hwMtlEdit, imp); IAutoMParamDlg* masterDlg = noiseCD.CreateParamDlgs(hwMtlEdit, imp, this); texoutDlg = texout->CreateParamDlg(hwMtlEdit, imp); // add the secondary dialogs to the master masterDlg->AddDlg(xyzGenDlg); masterDlg->AddDlg(texoutDlg); noise_param_blk.SetUserDlgProc(new NoiseDlgProc(this)); EnableStuff(); return masterDlg; }
ParamDlg* Gradient::CreateParamDlg(HWND hwMtlEdit, IMtlParams *imp) { // JBW: the main difference here is the automatic creation of a ParamDlg by the new // ClassDesc2 function CreateParamDlgs(). This mirrors the way BeginEditParams() // can be redirected to the ClassDesc2 for automatic ParamMap2 management. In this // case a special subclass of ParamDlg, AutoMParamDlg, defined in IParamm2.h, is // created. It can act as a 'master' ParamDlg to which you can add any number of // secondary dialogs and it will make sure all the secondary dialogs are kept // up-to-date and deleted as necessary. // Here you see we create the Coordinate, Gradient and Output ParamDlgs in the desired // order, and then add the Coordinate and Output dlgs as secondaries to the // Gradient master AutoMParamDlg so it will keep them up-to-date automatically // create the rollout dialogs uvGenDlg = uvGen->CreateParamDlg(hwMtlEdit, imp); IAutoMParamDlg* masterDlg = gradCD.CreateParamDlgs(hwMtlEdit, imp, this); texoutDlg = texout->CreateParamDlg(hwMtlEdit, imp); // add the secondary dialogs to the master masterDlg->AddDlg(uvGenDlg); masterDlg->AddDlg(texoutDlg); EnableStuff(); return masterDlg; }