void MorphObject::SetupTargetList() { if (!morphCont) return; SendMessage(GetDlgItem(hParams2,IDC_MORPHTARG_LIST),LB_RESETCONTENT,0,0); for (int i=0; i<morphCont->NumMorphTargs(); i++) { SendMessage(GetDlgItem(hParams2,IDC_MORPHTARG_LIST), LB_ADDSTRING,0,(LPARAM)(const TCHAR*)SubAnimName(i)); } if (sel>=0) { SendMessage(GetDlgItem(hParams2,IDC_MORPHTARG_LIST), LB_SETCURSEL,sel,0); EnableWindow(GetDlgItem(hParams2,IDC_CREATE_MORPHKEY),TRUE); EnableWindow(GetDlgItem(hParams2,IDC_DELETE_MORPHTARG),TRUE); ICustEdit *edit = GetICustEdit(GetDlgItem(hParams2,IDC_MORPHTARG_NAME)); edit->Enable(); edit->SetText(SubAnimName(sel)); ReleaseICustEdit(edit); } else { EnableWindow(GetDlgItem(hParams2,IDC_CREATE_MORPHKEY),FALSE); EnableWindow(GetDlgItem(hParams2,IDC_DELETE_MORPHTARG),FALSE); ICustEdit *edit = GetICustEdit(GetDlgItem(hParams2,IDC_MORPHTARG_NAME)); edit->Disable(); edit->SetText(_T("")); ReleaseICustEdit(edit); } }
void SceneViewer::IEnableSetupControls(bool enable) { ICustEdit *edit = GetICustEdit(GetDlgItem(fhDlg, IDC_CLIENT_PATH)); edit->Enable(enable); EnableWindow(GetDlgItem(fhDlg, IDC_DIR), enable); EnableWindow(GetDlgItem(fhDlg, IDC_EXE), enable); EnableWindow(GetDlgItem(fhDlg, IDC_REUSE_DATA), enable); SetWindowText(GetDlgItem(fhDlg, IDC_START), enable ? "Start" : "Stop"); }
void FooControl::set_enable() { if (parent_rollout != NULL && parent_rollout->page != NULL) { // set spinner enable ISpinnerControl *spin = GetISpinner(GetDlgItem(parent_rollout->page, control_ID)); if (enabled) spin->Enable(); else spin->Disable(); ReleaseISpinner(spin); // set editbox enable ICustEdit *edit = GetICustEdit(GetDlgItem(parent_rollout->page, control_ID+2)); if (enabled) edit->Enable(); else edit->Disable(); ReleaseICustEdit(edit); // set caption enable HWND ctrl = GetDlgItem(parent_rollout->page, control_ID+1); if (ctrl) EnableWindow(ctrl, enabled); } }
static INT_PTR CALLBACK MorphParamDlgProc2( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { MorphObject *mo = DLGetWindowLongPtr<MorphObject*>(hWnd); if (!mo && message!=WM_INITDIALOG) return FALSE; switch (message) { case WM_INITDIALOG: { mo = (MorphObject*)lParam; DLSetWindowLongPtr(hWnd, lParam); mo->hParams2 = hWnd; mo->SetupTargetList(); break; } case WM_COMMAND: switch(LOWORD(wParam)) { case IDC_CREATE_MORPHKEY: { TSTR name; Matrix3 tm = mo->morphCont->GetMorphTargTM(mo->sel); SetMorphTargetPacket pckt( mo->morphCont->GetMorphTarg(mo->sel),name, tm,TRUE); theHold.Begin(); mo->morphCont->SetValue(mo->ip->GetTime(),&pckt); theHold.Accept(GetString(IDS_RB_CREATEMORPHKEY)); mo->ip->RedrawViews(mo->ip->GetTime()); break; } case IDC_MORPHTARG_LIST: if (HIWORD(wParam)==LBN_SELCHANGE) { mo->sel = SendMessage( GetDlgItem(mo->hParams2,IDC_MORPHTARG_LIST), LB_GETCURSEL,0,0); if (mo->sel < 0) { EnableWindow(GetDlgItem(hWnd,IDC_CREATE_MORPHKEY),FALSE); EnableWindow(GetDlgItem(hWnd,IDC_DELETE_MORPHTARG),FALSE); ICustEdit *edit = GetICustEdit(GetDlgItem(hWnd,IDC_MORPHTARG_NAME)); edit->Disable(); edit->SetText(_T("")); ReleaseICustEdit(edit); } else { EnableWindow(GetDlgItem(hWnd,IDC_CREATE_MORPHKEY),TRUE); EnableWindow(GetDlgItem(hWnd,IDC_DELETE_MORPHTARG),TRUE); ICustEdit *edit = GetICustEdit(GetDlgItem(hWnd,IDC_MORPHTARG_NAME)); edit->Enable(); edit->SetText(mo->SubAnimName(mo->sel)); ReleaseICustEdit(edit); } mo->NotifyDependents(FOREVER,(PartID) mo,REFMSG_BRANCHED_HISTORY_CHANGED); } break; case IDC_DELETE_MORPHTARG: if (mo->sel>=0) { theHold.Begin(); mo->morphCont->DeleteMorphTarg(mo->sel); theHold.Accept(GetString(IDS_RB_DELETEMORPHTARG)); mo->sel = -1; mo->SetupTargetList(); mo->ip->RedrawViews(mo->ip->GetTime()); //GetSystemSetting(SYSSET_CLEAR_UNDO); } break; } break; case WM_CUSTEDIT_ENTER: if (LOWORD(wParam)==IDC_MORPHTARG_NAME && mo->sel >= 0) { ICustEdit *edit = GetICustEdit(GetDlgItem(hWnd,IDC_MORPHTARG_NAME)); TCHAR buf[256]; edit->GetText(buf,256); mo->morphCont->SetMorphTargName(mo->sel,TSTR(buf)); mo->SetupTargetList(); mo->NotifyDependents(FOREVER,0,REFMSG_SUBANIM_STRUCTURE_CHANGED); ReleaseICustEdit(edit); } break; case WM_LBUTTONDOWN: case WM_LBUTTONUP: case WM_MOUSEMOVE: mo->ip->RollupMouseMessage(hWnd,message,wParam,lParam); return FALSE; default: return FALSE; } return TRUE; }