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 ConvexApproximationObject::DestroyUI(HWND hWnd) { ReleaseICustEdit (m_maxConcavity); ReleaseISpinner (m_maxConcavitySpinner); ReleaseICustEdit (m_maxSegments); ReleaseISpinner (m_maxSegmentsSpinner); }
void RigidBodyWorld::DestroyUI(HWND hWnd) { ReleaseICustEdit (m_minFps); ReleaseICustEdit (m_gravity[0]); ReleaseICustEdit (m_gravity[1]); ReleaseICustEdit (m_gravity[2]); UnRegisterNotification(OnUndoRedo, this, NOTIFY_SCENE_UNDO); UnRegisterNotification (OnUndoRedo, this, NOTIFY_SCENE_REDO); }
void EllipseObject::UpdateUI(HWND hwnd) { Interval valid; BOOL build_outine = FALSE; TimeValue t = ip? ip->GetTime() : 0; myParamBlock->GetValue(PB_OUTLINE, t, build_outine, valid); ICustEdit *thickness_edit = GetICustEdit(GetDlgItem(hwnd, IDC_THICKNESSEDIT)); ISpinnerControl *thickness_spin = GetISpinner(GetDlgItem(hwnd, IDC_THICKSPINNER)); if(!thickness_edit || !thickness_spin) return; if(build_outine) { EnableWindow(GetDlgItem(hwnd,IDC_THICKNESS_TEXT),TRUE); thickness_edit->Enable(); thickness_spin->Enable(); } else { EnableWindow(GetDlgItem(hwnd,IDC_THICKNESS_TEXT),FALSE); thickness_edit->Disable(); thickness_spin->Disable(); } ReleaseICustEdit(thickness_edit); ReleaseISpinner(thickness_spin); }
ObjectReference::~ObjectReference() { assert( _edit ); ReleaseICustEdit( _edit ); assert( hwndEdit ); DestroyWindow( hwndEdit ); assert( hwndBrowseButton ); DestroyWindow( hwndBrowseButton ); assert( hwndGoToObjectButton ); DestroyWindow( hwndGoToObjectButton ); }
Fixed32::~Fixed32() { assert( _edit ); ReleaseICustEdit( _edit ); assert( _spinner ); ReleaseISpinner( _spinner ); assert( hwndEdit ); DestroyWindow( hwndEdit ); assert( hwndSpinner ); DestroyWindow( hwndSpinner ); }
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; }
void RigidBodyUIPane::DestroyUI(HWND hWnd) { ReleaseICustEdit (m_massEdit); ReleaseISpinner (m_massSpinner); }
void MorphByBone::EndEditParams( IObjParam *ip, ULONG flags,Animatable *next) { editMorph = FALSE; MorphByBoneDesc.EndEditParams(ip, this, flags, next); TimeValue t = ip->GetTime(); ClearAFlag(A_MOD_BEING_EDITED); NotifyDependents(Interval(t,t), PART_ALL, REFMSG_END_EDIT); NotifyDependents(Interval(t,t), PART_ALL, REFMSG_MOD_DISPLAY_OFF); ip->ClearPickMode(); ip->DeleteMode(moveMode); if (moveMode) delete moveMode; moveMode = NULL; ip->DeleteMode(rotMode); if (rotMode) delete rotMode; rotMode = NULL; ip->DeleteMode(uscaleMode); ip->DeleteMode(nuscaleMode); ip->DeleteMode(squashMode); ip->DeleteMode(selectMode); if (uscaleMode) delete uscaleMode; uscaleMode = NULL; if (nuscaleMode) delete nuscaleMode; nuscaleMode = NULL; if (squashMode) delete squashMode; squashMode = NULL; if (selectMode) delete selectMode; selectMode = NULL; ReleaseICustButton(iEditButton); iEditButton = NULL; ReleaseICustButton(iNodeButton); iNodeButton = NULL; ReleaseICustButton(iPickBoneButton); iPickBoneButton = NULL; ReleaseICustButton(iMultiSelectButton); iMultiSelectButton = NULL; ReleaseICustButton(iDeleteMorphButton); iDeleteMorphButton = NULL; ReleaseICustButton(iResetMorphButton); iResetMorphButton = NULL; ReleaseICustButton(iClearVertsButton); iClearVertsButton = NULL; ReleaseICustButton(iRemoveVertsButton); iRemoveVertsButton = NULL; ReleaseICustButton(iGraphButton); iGraphButton = NULL; ReleaseICustEdit(iNameField); iNameField = NULL; ReleaseISpinner(iInfluenceAngleSpinner); iInfluenceAngleSpinner = NULL; this->ip = NULL; //Defect 727409 If the user turn off the skin morph modifier, we need to get the //localDataList for using the copy/paste mirror option. if(!TestAFlag(A_MOD_DISABLED)) { for (int i = 0; i < localDataList.Count(); i++) { if (localDataList[i]) localDataList[i]->FreeConnectionList(); } localDataList.ZeroCount(); } }
// --[ Method ]--------------------------------------------------------------- // // - Class : CStravaganzaMaxTools // // - prototype : void ReadConfig(bool bLoadDefaults = false) // // - Purpose : Initializes the tool parameters, reading the previous // configuration from a cfg file or creating default values. // If bLoadDefaults is true, the config file won't be read and // default values will be assigned. // // ----------------------------------------------------------------------------- void CStravaganzaMaxTools::ReadConfig(bool bLoadDefaults) { if(!m_hPanel) return; ISpinnerControl* pMaxSpin; ICustEdit* pMaxEdit; CInputFile cfgFile; m_bPreprocessMesh = true; m_bUseLights = true; m_eAnimType = ANIMATION_SAMPLING; m_nAnimCheckStep = 20; m_nNumPosSamplesPerSec = 30; m_nNumSclSamplesPerSec = 30; m_nNumRotSamplesPerSec = 30; m_nNumCamSettingsPerSec = 15; m_nNumLightSettingsPerSec = 15; m_strFile = ""; m_bCopyTextures = true; m_strTexturePath = ""; m_ePreviewType = CRenderVisitor::MODE_SOLID; m_bFullscreen = false; m_bLoop = true; m_nPreviewResX = 800; m_nPreviewResY = 600; m_fViewportHeight = 1.0f; m_bShowStats = true; m_bRenderToAvi = false; m_strAviFile = ""; m_strPreviewCamera = ""; if(cfgFile.Open(m_strCfgFile, false) && !bLoadDefaults) { int nValue; // Common options cfgFile.ReadInt(&nValue); m_bPreprocessMesh = nValue ? true : false; cfgFile.ReadInt(&nValue); m_bUseLights = nValue ? true : false; m_fStartTime = TICKS_TO_SECONDS(m_pMaxInterface->GetAnimRange().Start()); m_fEndTime = TICKS_TO_SECONDS(m_pMaxInterface->GetAnimRange().End()); cfgFile.ReadInt(&m_nAnimCheckStep); cfgFile.ReadInt(&m_nNumPosSamplesPerSec); cfgFile.ReadInt(&m_nNumSclSamplesPerSec); cfgFile.ReadInt(&m_nNumRotSamplesPerSec); cfgFile.ReadInt(&m_nNumCamSettingsPerSec); cfgFile.ReadInt(&m_nNumLightSettingsPerSec); cfgFile.ReadInt(&nValue); switch(nValue) { case ANIMATION_SAMPLING: m_eAnimType = ANIMATION_SAMPLING; break; case ANIMATION_MAXKEYS: m_eAnimType = ANIMATION_MAXKEYS; break; } // Export options cfgFile.ReadStringZero(&m_strFile); cfgFile.ReadInt(&nValue); m_bCopyTextures = nValue ? true : false; cfgFile.ReadStringZero(&m_strTexturePath); // Preview options cfgFile.ReadStringZero(&m_strPreviewCamera); FillCameraCombobox(GetDlgItem(m_hPanel, IDC_COMBO_CAMERA), m_pMaxInterface->GetRootNode()); cfgFile.ReadInt(&nValue); switch(nValue) { case CRenderVisitor::MODE_WIREFRAME: m_ePreviewType = CRenderVisitor::MODE_WIREFRAME; break; case CRenderVisitor::MODE_SOLID: m_ePreviewType = CRenderVisitor::MODE_SOLID; break; case CRenderVisitor::MODE_FULLDETAIL: m_ePreviewType = CRenderVisitor::MODE_FULLDETAIL; break; } cfgFile.ReadInt(&nValue); m_bFullscreen = nValue ? true : false; cfgFile.ReadInt(&nValue); m_bLoop = nValue ? true : false; cfgFile.ReadInt (&m_nPreviewResX); cfgFile.ReadInt (&m_nPreviewResY); cfgFile.ReadFloat(&m_fViewportHeight); cfgFile.ReadInt (&nValue); m_bShowStats = nValue ? true : false; cfgFile.ReadInt (&nValue); m_bRenderToAvi = nValue ? true : false; cfgFile.ReadStringZero(&m_strAviFile); } cfgFile.Close(); // Common CheckDlgButton(m_hPanel, IDC_CHECK_PREPROCESSMESHES, m_bPreprocessMesh ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(m_hPanel, IDC_CHECK_USELIGHTS, m_bUseLights ? BST_CHECKED : BST_UNCHECKED); EnableWindow(GetDlgItem(m_hPanel, IDC_RADIO_USEMAXKEYS), FALSE); switch(m_eAnimType) { case ANIMATION_SAMPLING: CheckRadioButton(m_hPanel, IDC_RADIO_USESAMPLING, IDC_RADIO_USEMAXKEYS, IDC_RADIO_USESAMPLING); break; case ANIMATION_MAXKEYS: CheckRadioButton(m_hPanel, IDC_RADIO_USESAMPLING, IDC_RADIO_USEMAXKEYS, IDC_RADIO_USEMAXKEYS); break; } pMaxSpin = GetISpinner(GetDlgItem(m_hPanel, IDC_SPIN_STARTTIME)); pMaxSpin->LinkToEdit(GetDlgItem(m_hPanel, IDC_EDIT_STARTTIME), EDITTYPE_FLOAT); pMaxSpin->SetLimits(m_fStartTime, m_fEndTime, TRUE); pMaxSpin->SetScale(0.01f); pMaxSpin->SetValue(m_fStartTime, FALSE); ReleaseISpinner(pMaxSpin); pMaxSpin = GetISpinner(GetDlgItem(m_hPanel, IDC_SPIN_ENDTIME)); pMaxSpin->LinkToEdit(GetDlgItem(m_hPanel, IDC_EDIT_ENDTIME), EDITTYPE_FLOAT); pMaxSpin->SetLimits(m_fStartTime, m_fEndTime, TRUE); pMaxSpin->SetScale(0.01f); pMaxSpin->SetValue(m_fEndTime, FALSE); ReleaseISpinner(pMaxSpin); pMaxSpin = GetISpinner(GetDlgItem(m_hPanel, IDC_SPIN_ANIMCHECKSTEP)); pMaxSpin->LinkToEdit(GetDlgItem(m_hPanel, IDC_EDIT_ANIMCHECKSTEP), EDITTYPE_INT); pMaxSpin->SetLimits(0, 100, TRUE); pMaxSpin->SetScale(1); pMaxSpin->SetValue(m_nAnimCheckStep, FALSE); ReleaseISpinner(pMaxSpin); pMaxSpin = GetISpinner(GetDlgItem(m_hPanel, IDC_SPIN_POSSAMPLINGFREQ)); pMaxSpin->LinkToEdit(GetDlgItem(m_hPanel, IDC_EDIT_POSSAMPLINGFREQ), EDITTYPE_INT); pMaxSpin->SetLimits(0, 100, TRUE); pMaxSpin->SetScale(1); pMaxSpin->SetValue(m_nNumPosSamplesPerSec, FALSE); ReleaseISpinner(pMaxSpin); pMaxSpin = GetISpinner(GetDlgItem(m_hPanel, IDC_SPIN_SCLSAMPLINGFREQ)); pMaxSpin->LinkToEdit(GetDlgItem(m_hPanel, IDC_EDIT_SCLSAMPLINGFREQ), EDITTYPE_INT); pMaxSpin->SetLimits(0, 100, TRUE); pMaxSpin->SetScale(1); pMaxSpin->SetValue(m_nNumSclSamplesPerSec, FALSE); ReleaseISpinner(pMaxSpin); pMaxSpin = GetISpinner(GetDlgItem(m_hPanel, IDC_SPIN_ROTSAMPLINGFREQ)); pMaxSpin->LinkToEdit(GetDlgItem(m_hPanel, IDC_EDIT_ROTSAMPLINGFREQ), EDITTYPE_INT); pMaxSpin->SetLimits(0, 100, TRUE); pMaxSpin->SetScale(1); pMaxSpin->SetValue(m_nNumRotSamplesPerSec, FALSE); ReleaseISpinner(pMaxSpin); // Export pMaxEdit = GetICustEdit(GetDlgItem(m_hPanel, IDC_EDIT_DESTINATIONFILE)); pMaxEdit->SetText((char*)m_strFile.data()); pMaxEdit->SetLeading(2); ReleaseICustEdit(pMaxEdit); CheckDlgButton(m_hPanel, IDC_CHECK_COPYTEXTURES, m_bCopyTextures ? BST_CHECKED : BST_UNCHECKED); pMaxEdit = GetICustEdit(GetDlgItem(m_hPanel, IDC_EDIT_TEXTUREFOLDER)); pMaxEdit->SetText((char*)m_strTexturePath.data()); pMaxEdit->SetLeading(2); ReleaseICustEdit(pMaxEdit); EnableWindow(GetDlgItem(m_hPanel, IDC_EDIT_TEXTUREFOLDER), m_bCopyTextures ? TRUE : FALSE); EnableWindow(GetDlgItem(m_hPanel, IDC_BUTTON_TEXTUREFOLDER), m_bCopyTextures ? TRUE : FALSE); // Preview switch(m_ePreviewType) { case CRenderVisitor::MODE_WIREFRAME: CheckRadioButton(m_hPanel, IDC_RADIO_WIREFRAME, IDC_RADIO_FULLDETAIL, IDC_RADIO_WIREFRAME); break; case CRenderVisitor::MODE_SOLID: CheckRadioButton(m_hPanel, IDC_RADIO_WIREFRAME, IDC_RADIO_FULLDETAIL, IDC_RADIO_SOLID); break; case CRenderVisitor::MODE_FULLDETAIL: CheckRadioButton(m_hPanel, IDC_RADIO_WIREFRAME, IDC_RADIO_FULLDETAIL, IDC_RADIO_FULLDETAIL); break; } CheckDlgButton(m_hPanel, IDC_CHECK_FULLSCREEN, m_bFullscreen ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(m_hPanel, IDC_CHECK_LOOP, m_bLoop ? BST_CHECKED : BST_UNCHECKED); pMaxEdit = GetICustEdit(GetDlgItem(m_hPanel, IDC_EDIT_RESW)); pMaxEdit->SetText(m_nPreviewResX); ReleaseICustEdit(pMaxEdit); pMaxEdit = GetICustEdit(GetDlgItem(m_hPanel, IDC_EDIT_RESH)); pMaxEdit->SetText(m_nPreviewResY); ReleaseICustEdit(pMaxEdit); pMaxSpin = GetISpinner(GetDlgItem(m_hPanel, IDC_SPIN_VIEWPORTHEIGHT)); pMaxSpin->LinkToEdit(GetDlgItem(m_hPanel, IDC_EDIT_VIEWPORTHEIGHT), EDITTYPE_FLOAT); pMaxSpin->SetLimits(0.0f, 1.0f, TRUE); pMaxSpin->SetScale(0.01f); pMaxSpin->SetValue(m_fViewportHeight, FALSE); ReleaseISpinner(pMaxSpin); CheckDlgButton(m_hPanel, IDC_CHECK_SHOWSTATS, m_bShowStats ? BST_CHECKED : BST_UNCHECKED); CheckDlgButton(m_hPanel, IDC_CHECK_RENDERTOAVI, m_bRenderToAvi ? BST_CHECKED : BST_UNCHECKED); pMaxEdit = GetICustEdit(GetDlgItem(m_hPanel, IDC_EDIT_AVIFILE)); pMaxEdit->SetText((char*)m_strAviFile.data()); pMaxEdit->SetLeading(2); ReleaseICustEdit(pMaxEdit); EnableWindow(GetDlgItem(m_hPanel, IDC_EDIT_AVIFILE), m_bRenderToAvi ? TRUE : FALSE); EnableWindow(GetDlgItem(m_hPanel, IDC_BUTTON_AVIFILE), m_bRenderToAvi ? TRUE : FALSE); }
// --[ Method ]--------------------------------------------------------------- // // - Class : CStravaganzaMaxTools // // - prototype : void SaveConfig() // // - Purpose : Saves the panel parameters to a file. // // ----------------------------------------------------------------------------- void CStravaganzaMaxTools::SaveConfig() { if(!m_hPanel) return; ISpinnerControl* pMaxSpin; ICustEdit* pMaxEdit; int nSelectedItem; char szAuxBuffer[MAX_PATH]; COutputFile cfgFile; // GET SETTINGS FROM PANEL // Common m_bPreprocessMesh = IsDlgButtonChecked(m_hPanel, IDC_CHECK_PREPROCESSMESHES) == BST_CHECKED ? true : false; m_bUseLights = IsDlgButtonChecked(m_hPanel, IDC_CHECK_USELIGHTS) == BST_CHECKED ? true : false; pMaxSpin = GetISpinner(GetDlgItem(m_hPanel, IDC_SPIN_STARTTIME)); m_fStartTime = pMaxSpin->GetFVal(); ReleaseISpinner(pMaxSpin); pMaxSpin = GetISpinner(GetDlgItem(m_hPanel, IDC_SPIN_ENDTIME)); m_fEndTime = pMaxSpin->GetFVal(); ReleaseISpinner(pMaxSpin); if(IsDlgButtonChecked(m_hPanel, IDC_RADIO_USESAMPLING) == BST_CHECKED) { m_eAnimType = ANIMATION_SAMPLING; } else if(IsDlgButtonChecked(m_hPanel, IDC_RADIO_USEMAXKEYS) == BST_CHECKED) { m_eAnimType = ANIMATION_MAXKEYS; } pMaxSpin = GetISpinner(GetDlgItem(m_hPanel, IDC_SPIN_ANIMCHECKSTEP)); m_nAnimCheckStep = pMaxSpin->GetIVal(); ReleaseISpinner(pMaxSpin); pMaxSpin = GetISpinner(GetDlgItem(m_hPanel, IDC_SPIN_POSSAMPLINGFREQ)); m_nNumPosSamplesPerSec = pMaxSpin->GetIVal(); ReleaseISpinner(pMaxSpin); pMaxSpin = GetISpinner(GetDlgItem(m_hPanel, IDC_SPIN_SCLSAMPLINGFREQ)); m_nNumSclSamplesPerSec = pMaxSpin->GetIVal(); ReleaseISpinner(pMaxSpin); pMaxSpin = GetISpinner(GetDlgItem(m_hPanel, IDC_SPIN_ROTSAMPLINGFREQ)); m_nNumRotSamplesPerSec = pMaxSpin->GetIVal(); ReleaseISpinner(pMaxSpin); // Export pMaxEdit = GetICustEdit(GetDlgItem(m_hPanel, IDC_EDIT_DESTINATIONFILE)); pMaxEdit->GetText(szAuxBuffer, MAX_PATH); ReleaseICustEdit(pMaxEdit); m_strFile = szAuxBuffer; m_bCopyTextures = IsDlgButtonChecked(m_hPanel, IDC_CHECK_COPYTEXTURES) == BST_CHECKED ? true : false; pMaxEdit = GetICustEdit(GetDlgItem(m_hPanel, IDC_EDIT_TEXTUREFOLDER)); pMaxEdit->GetText(szAuxBuffer, MAX_PATH); ReleaseICustEdit(pMaxEdit); m_strTexturePath = szAuxBuffer; // Preview // Get selected combo box camera nSelectedItem = SendMessage(GetDlgItem(m_hPanel, IDC_COMBO_CAMERA), CB_GETCURSEL, 0, 0); if(nSelectedItem == CB_ERR) // Items? { m_strPreviewCamera = ""; } else { // Get selected item memset(szAuxBuffer, 0, MAX_PATH); if(SendMessage(GetDlgItem(m_hPanel, IDC_COMBO_CAMERA), CB_GETLBTEXT, (WPARAM)nSelectedItem, (LPARAM)(LPCSTR)szAuxBuffer) == CB_ERR) { CLogger::ErrorWindow("Error getting camera selection"); } else { m_strPreviewCamera = szAuxBuffer; } } if(IsDlgButtonChecked(m_hPanel, IDC_RADIO_SOLID) == BST_CHECKED) { m_ePreviewType = CRenderVisitor::MODE_SOLID; } else if(IsDlgButtonChecked(m_hPanel, IDC_RADIO_WIREFRAME) == BST_CHECKED) { m_ePreviewType = CRenderVisitor::MODE_WIREFRAME; } else if(IsDlgButtonChecked(m_hPanel, IDC_RADIO_FULLDETAIL) == BST_CHECKED) { m_ePreviewType = CRenderVisitor::MODE_FULLDETAIL; } m_bFullscreen = IsDlgButtonChecked(m_hPanel, IDC_CHECK_FULLSCREEN) == BST_CHECKED ? true : false; m_bLoop = IsDlgButtonChecked(m_hPanel, IDC_CHECK_LOOP) == BST_CHECKED ? true : false; int nAux; BOOL valid; pMaxEdit = GetICustEdit(GetDlgItem(m_hPanel, IDC_EDIT_RESW)); nAux = pMaxEdit->GetInt(&valid); if(valid) m_nPreviewResX = nAux; else pMaxEdit->SetText(m_nPreviewResX); ReleaseICustEdit(pMaxEdit); pMaxEdit = GetICustEdit(GetDlgItem(m_hPanel, IDC_EDIT_RESH)); nAux = pMaxEdit->GetInt(&valid); if(valid) m_nPreviewResY = nAux; else pMaxEdit->SetText(m_nPreviewResY); ReleaseICustEdit(pMaxEdit); pMaxSpin = GetISpinner(GetDlgItem(m_hPanel, IDC_SPIN_VIEWPORTHEIGHT)); m_fViewportHeight = pMaxSpin->GetFVal(); ReleaseISpinner(pMaxSpin); m_bShowStats = IsDlgButtonChecked(m_hPanel, IDC_CHECK_SHOWSTATS) == BST_CHECKED ? true : false; m_bRenderToAvi = IsDlgButtonChecked(m_hPanel, IDC_CHECK_RENDERTOAVI) == BST_CHECKED ? true : false; pMaxEdit = GetICustEdit(GetDlgItem(m_hPanel, IDC_EDIT_AVIFILE)); pMaxEdit->GetText(szAuxBuffer, MAX_PATH); ReleaseICustEdit(pMaxEdit); m_strAviFile = szAuxBuffer; // SAVE SETTINGS if(cfgFile.Open(m_strCfgFile, false, false) == false) { return; } cfgFile.WriteInt(m_bPreprocessMesh ? 1 : 0); cfgFile.WriteInt(m_bUseLights ? 1 : 0); cfgFile.WriteInt(m_nAnimCheckStep); cfgFile.WriteInt(m_nNumPosSamplesPerSec); cfgFile.WriteInt(m_nNumSclSamplesPerSec); cfgFile.WriteInt(m_nNumRotSamplesPerSec); cfgFile.WriteInt(m_nNumCamSettingsPerSec); cfgFile.WriteInt(m_nNumLightSettingsPerSec); cfgFile.WriteInt(m_eAnimType); // Export options cfgFile.WriteStringZero(m_strFile); cfgFile.WriteInt(m_bCopyTextures ? 1 : 0); cfgFile.WriteStringZero(m_strTexturePath); // Preview options cfgFile.WriteStringZero(m_strPreviewCamera); cfgFile.WriteInt(m_ePreviewType); cfgFile.WriteInt(m_bFullscreen ? 1 : 0); cfgFile.WriteInt(m_bLoop ? 1 : 0); cfgFile.WriteInt(m_nPreviewResX); cfgFile.WriteInt(m_nPreviewResY); cfgFile.WriteFloat(m_fViewportHeight); cfgFile.WriteInt(m_bShowStats ? 1 : 0); cfgFile.WriteInt(m_bRenderToAvi ? 1 : 0); cfgFile.WriteStringZero(m_strAviFile); cfgFile.Close(); }