INT_PTR WINAPI doResolve(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { if (INT_PTR r = SNM_HookThemeColorsMessage(hwndDlg, uMsg, wParam, lParam)) return r; switch (uMsg) { case WM_INITDIALOG: { SetDlgItemText(hwndDlg, IDC_TEXT, g_cErrorStr); CheckDlgButton(hwndDlg, IDC_APPLY, BST_CHECKED); HWND hTracks = GetDlgItem(hwndDlg, IDC_TRACK); WDL_UTF8_HookComboBox(hTracks); SendMessage(hTracks, CB_ADDSTRING, 0, (LPARAM)__LOCALIZE("(create new track)","sws_DLG_114")); for (int i = 1; i <= GetNumTracks(); i++) { MediaTrack* tr = CSurf_TrackFromID(i, false); if (tr != g_send) { char cName[80]; _snprintf(cName, 80, "%d: %s", i, (char*)GetSetMediaTrackInfo(tr, "P_NAME", NULL)); SendMessage(hTracks, CB_ADDSTRING, 0, (LPARAM)cName); } } SendMessage(hTracks, CB_SETCURSEL, 0, 0); RestoreWindowPos(hwndDlg, RESOLVE_WND_POS, false); g_iResolveRet = 0; return 0; } case WM_COMMAND: wParam = LOWORD(wParam); if (wParam == IDC_DELETE) g_iResolveRet = 1; else if (wParam == IDOK) { char cTrack[10]; GetDlgItemText(hwndDlg, IDC_TRACK, cTrack, 10); int id = atol(cTrack); if (!id) // assume they chose "create new track" { id = GetNumTracks()+1; InsertTrackAtIndex(id, false); TrackList_AdjustWindows(false); } g_recv = CSurf_TrackFromID(id, false); g_iResolveRet = 2; } if (wParam == IDC_DELETE || wParam == IDOK || wParam == IDCANCEL) { SaveWindowPos(hwndDlg, RESOLVE_WND_POS); EndDialog(hwndDlg,0); } return 0; } return 0; }
static INT_PTR WINAPI doDeleteDialog(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { if (INT_PTR r = SNM_HookThemeColorsMessage(hwndDlg, uMsg, wParam, lParam)) return r; switch (uMsg) { case WM_INITDIALOG: { HWND list = GetDlgItem(hwndDlg, IDC_COMBO); WDL_UTF8_HookComboBox(list); for (int i = 0; i < g_relatedProjects.Get()->GetSize(); i++) SendMessage(list, CB_ADDSTRING, 0, (LPARAM)g_relatedProjects.Get()->Get(i)->Get()); SendMessage(list, CB_SETCURSEL, 0, 0); SetWindowText(hwndDlg, __LOCALIZE("SWS Delete Related Project","sws_mbox")); RestoreWindowPos(hwndDlg, DELWINDOW_POS_KEY); return 0; } case WM_COMMAND: switch(LOWORD(wParam)) { case IDOK: { HWND list = GetDlgItem(hwndDlg, IDC_COMBO); int iList = (int)SendMessage(list, CB_GETCURSEL, 0, 0); if (iList >= 0 && iList < g_relatedProjects.Get()->GetSize()) g_relatedProjects.Get()->Delete(iList, true); Undo_OnStateChangeEx(__LOCALIZE("Delete related project","sws_undo"), UNDO_STATE_MISCCFG, -1); } // Fall through to cancel to save/end case IDCANCEL: SaveWindowPos(hwndDlg, DELWINDOW_POS_KEY); EndDialog(hwndDlg, 0); break; } break; } return 0; }
void WDL_UTF8_HookListBox(HWND h) { WDL_UTF8_HookComboBox(h); }
WDL_DLGRET EnvelopeLfoDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { const char cWndPosKey[] = "LFO Window Pos"; if (INT_PTR r = SNM_HookThemeColorsMessage(hwnd, uMsg, wParam, lParam)) return r; switch(uMsg) { case WM_INITDIALOG : { WDL_UTF8_HookComboBox(GetDlgItem(hwnd, IDC_PADRELFO_TARGET)); WDL_UTF8_HookComboBox(GetDlgItem(hwnd, IDC_PADRELFO_TIMESEGMENT)); WDL_UTF8_HookComboBox(GetDlgItem(hwnd, IDC_PADRELFO_LFOSHAPE)); WDL_UTF8_HookComboBox(GetDlgItem(hwnd, IDC_PADRELFO_SYNCFREQUENCY)); WDL_UTF8_HookComboBox(GetDlgItem(hwnd, IDC_PADRELFO_SYNCDELAY)); WDL_UTF8_HookComboBox(GetDlgItem(hwnd, IDC_PADRELFO_TAKEENV)); WDL_UTF8_HookComboBox(GetDlgItem(hwnd, IDC_PADRELFO_MIDICC)); for(int i=eENVTYPE_TRACK; i<=eENVTYPE_MIDICC; i++) { int x = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_TARGET,CB_ADDSTRING,0,(LPARAM)GetEnvTypeStr((EnvType)i)); SendDlgItemMessage(hwnd,IDC_PADRELFO_TARGET,CB_SETITEMDATA,x,i); if(i == EnvelopeProcessor::getInstance()->_parameters.envType) SendDlgItemMessage(hwnd,IDC_PADRELFO_TARGET,CB_SETCURSEL,x,0); } SendMessage(hwnd, WM_COMMAND, MAKEWPARAM(IDC_PADRELFO_TARGET, CBN_SELCHANGE), NULL); if(EnvelopeProcessor::getInstance()->_parameters.activeTakeOnly) CheckDlgButton(hwnd, IDC_PADRELFO_ACTIVETAKES, TRUE); else CheckDlgButton(hwnd, IDC_PADRELFO_ACTIVETAKES, FALSE); int iLastShape = eWAVSHAPE_SAWDOWN_BEZIER; if(EnvelopeProcessor::getInstance()->_parameters.envType == eENVTYPE_MIDICC) iLastShape = eWAVSHAPE_SAWDOWN; for(int i=eWAVSHAPE_SINE; i<=iLastShape; i++) { int x = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_LFOSHAPE,CB_ADDSTRING,0,(LPARAM)GetWaveShapeStr((WaveShape)i)); SendDlgItemMessage(hwnd,IDC_PADRELFO_LFOSHAPE,CB_SETITEMDATA,x,i); if(i == EnvelopeProcessor::getInstance()->_parameters.waveParams.shape) SendDlgItemMessage(hwnd,IDC_PADRELFO_LFOSHAPE,CB_SETCURSEL,x,0); } for(int i=eGRID_OFF; i<eGRID_LAST; i++) { int x = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_SYNCFREQUENCY,CB_ADDSTRING,0,(LPARAM)GetGridDivisionStr((GridDivision)i)); SendDlgItemMessage(hwnd,IDC_PADRELFO_SYNCFREQUENCY,CB_SETITEMDATA,x,i); if(i == EnvelopeProcessor::getInstance()->_parameters.waveParams.freqBeat) SendDlgItemMessage(hwnd,IDC_PADRELFO_SYNCFREQUENCY,CB_SETCURSEL,x,0); } SendMessage(hwnd, WM_COMMAND, MAKEWPARAM(IDC_PADRELFO_SYNCFREQUENCY, CBN_SELCHANGE), NULL); for(int i=eGRID_OFF; i<eGRID_LAST; i++) { if( (i>eGRID_OFF) && (i<=eGRID_1_1) ) continue; int x = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_SYNCDELAY,CB_ADDSTRING,0,(LPARAM)GetGridDivisionStr((GridDivision)i)); SendDlgItemMessage(hwnd,IDC_PADRELFO_SYNCDELAY,CB_SETITEMDATA,x,i); if(i == EnvelopeProcessor::getInstance()->_parameters.waveParams.delayBeat) SendDlgItemMessage(hwnd,IDC_PADRELFO_SYNCDELAY,CB_SETCURSEL,x,0); } SendMessage(hwnd, WM_COMMAND, MAKEWPARAM(IDC_PADRELFO_SYNCDELAY, CBN_SELCHANGE), NULL); char buffer[BUFFER_SIZE]; sprintf(buffer, "%.3lf", EnvelopeProcessor::getInstance()->_parameters.waveParams.freqHz); SetDlgItemText(hwnd, IDC_PADRELFO_FREQUENCY, buffer); sprintf(buffer, "%.3lf", EnvelopeProcessor::getInstance()->_parameters.waveParams.delayMsec); SetDlgItemText(hwnd, IDC_PADRELFO_DELAY, buffer); sprintf(buffer, "%.0lf", 100.0*EnvelopeProcessor::getInstance()->_parameters.waveParams.strength); SetDlgItemText(hwnd, IDC_PADRELFO_STRENGTH, buffer); sprintf(buffer, "%.0lf", 100.0*EnvelopeProcessor::getInstance()->_parameters.waveParams.offset); SetDlgItemText(hwnd, IDC_PADRELFO_OFFSET, buffer); for(int i=eTAKEENV_VOLUME; i<=eTAKEENV_PITCH; i++) { int x = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_TAKEENV,CB_ADDSTRING,0,(LPARAM)GetTakeEnvelopeStr((TakeEnvType)i)); SendDlgItemMessage(hwnd,IDC_PADRELFO_TAKEENV,CB_SETITEMDATA,x,i); if(i == EnvelopeProcessor::getInstance()->_parameters.takeEnvType) SendDlgItemMessage(hwnd,IDC_PADRELFO_TAKEENV,CB_SETCURSEL,x,0); } for(int i=0; i<128; i++) { sprintf(buffer, "%3d", i); int x = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_MIDICC,CB_ADDSTRING,0,(LPARAM)buffer); SendDlgItemMessage(hwnd,IDC_PADRELFO_MIDICC,CB_SETITEMDATA,x,i); if(i == EnvelopeProcessor::getInstance()->_parameters.midiCc) SendDlgItemMessage(hwnd,IDC_PADRELFO_MIDICC,CB_SETCURSEL,x,0); } RestoreWindowPos(hwnd, cWndPosKey, false); SetFocus(GetDlgItem(hwnd, IDC_PADRELFO_TARGET)); return 0; } case WM_COMMAND : switch(LOWORD(wParam)) { case IDOK: { int combo = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_TARGET,CB_GETCURSEL,0,0); if(combo != CB_ERR) EnvelopeProcessor::getInstance()->_parameters.envType = (EnvType)(SendDlgItemMessage(hwnd,IDC_PADRELFO_TARGET,CB_GETITEMDATA,combo,0)); EnvelopeProcessor::getInstance()->_parameters.activeTakeOnly = (IsDlgButtonChecked(hwnd, IDC_PADRELFO_ACTIVETAKES) != 0); combo = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_TIMESEGMENT,CB_GETCURSEL,0,0); if(combo != CB_ERR) EnvelopeProcessor::getInstance()->_parameters.timeSegment = (TimeSegment)(SendDlgItemMessage(hwnd,IDC_PADRELFO_TIMESEGMENT,CB_GETITEMDATA,combo,0)); combo = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_LFOSHAPE,CB_GETCURSEL,0,0); if(combo != CB_ERR) EnvelopeProcessor::getInstance()->_parameters.waveParams.shape = (WaveShape)(SendDlgItemMessage(hwnd,IDC_PADRELFO_LFOSHAPE,CB_GETITEMDATA,combo,0)); combo = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_SYNCFREQUENCY,CB_GETCURSEL,0,0); if(combo != CB_ERR) EnvelopeProcessor::getInstance()->_parameters.waveParams.freqBeat = (GridDivision)(SendDlgItemMessage(hwnd,IDC_PADRELFO_SYNCFREQUENCY,CB_GETITEMDATA,combo,0)); combo = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_SYNCDELAY,CB_GETCURSEL,0,0); if(combo != CB_ERR) EnvelopeProcessor::getInstance()->_parameters.waveParams.delayBeat = (GridDivision)(SendDlgItemMessage(hwnd,IDC_PADRELFO_SYNCDELAY,CB_GETITEMDATA,combo,0)); char buffer[BUFFER_SIZE]; GetDlgItemText(hwnd,IDC_PADRELFO_FREQUENCY,buffer,BUFFER_SIZE); EnvelopeProcessor::getInstance()->_parameters.waveParams.freqHz = atof(buffer); GetDlgItemText(hwnd,IDC_PADRELFO_DELAY,buffer,BUFFER_SIZE); EnvelopeProcessor::getInstance()->_parameters.waveParams.delayMsec = atof(buffer); GetDlgItemText(hwnd,IDC_PADRELFO_STRENGTH,buffer,BUFFER_SIZE); EnvelopeProcessor::getInstance()->_parameters.waveParams.strength = atof(buffer)/100.0; GetDlgItemText(hwnd,IDC_PADRELFO_OFFSET,buffer,BUFFER_SIZE); EnvelopeProcessor::getInstance()->_parameters.waveParams.offset = atof(buffer)/100.0; combo = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_TAKEENV,CB_GETCURSEL,0,0); if(combo != CB_ERR) EnvelopeProcessor::getInstance()->_parameters.takeEnvType = (TakeEnvType)(SendDlgItemMessage(hwnd,IDC_PADRELFO_TAKEENV,CB_GETITEMDATA,combo,0)); combo = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_MIDICC,CB_GETCURSEL,0,0); if(combo != CB_ERR) EnvelopeProcessor::getInstance()->_parameters.midiCc = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_MIDICC,CB_GETITEMDATA,combo,0); EnvelopeProcessor::ErrorCode res = EnvelopeProcessor::eERRORCODE_UNKNOWN; switch(EnvelopeProcessor::getInstance()->_parameters.envType) { case eENVTYPE_TRACK : res = EnvelopeProcessor::getInstance()->generateSelectedTrackEnvLfo(); break; case eENVTYPE_TAKE : res = EnvelopeProcessor::getInstance()->generateSelectedTakesLfo(); break; case eENVTYPE_MIDICC : res = EnvelopeProcessor::getInstance()->generateSelectedMidiTakeLfo(); break; default: break; } EnvelopeProcessor::errorHandlerDlg(hwnd, res); //EndDialog(hwnd,0); return 0; } break; case IDCANCEL: { ShowWindow(hwnd, SW_HIDE); return 0; } break; case IDC_PADRELFO_TARGET: { if(HIWORD(wParam) == CBN_SELCHANGE) { int combo = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_TARGET,CB_GETCURSEL,0,0); if(combo != CB_ERR) { EnvType envType = (EnvType)(SendDlgItemMessage(hwnd,IDC_PADRELFO_TARGET,CB_GETITEMDATA,combo,0)); switch(envType) { case eENVTYPE_TRACK: EnableWindow(GetDlgItem(hwnd,IDC_PADRELFO_ACTIVETAKES), FALSE); EnableWindow(GetDlgItem(hwnd,IDC_PADRELFO_TAKEENV), FALSE); EnableWindow(GetDlgItem(hwnd,IDC_PADRELFO_MIDICC), FALSE); break; case eENVTYPE_TAKE: EnableWindow(GetDlgItem(hwnd,IDC_PADRELFO_ACTIVETAKES), TRUE); EnableWindow(GetDlgItem(hwnd,IDC_PADRELFO_TAKEENV), TRUE); EnableWindow(GetDlgItem(hwnd,IDC_PADRELFO_MIDICC), FALSE); break; case eENVTYPE_MIDICC: EnableWindow(GetDlgItem(hwnd,IDC_PADRELFO_ACTIVETAKES), TRUE); EnableWindow(GetDlgItem(hwnd,IDC_PADRELFO_TAKEENV), FALSE); EnableWindow(GetDlgItem(hwnd,IDC_PADRELFO_MIDICC), TRUE); break; default: break; } SendDlgItemMessage(hwnd,IDC_PADRELFO_TIMESEGMENT,CB_RESETCONTENT,0,NULL); for(int i=eTIMESEGMENT_TIMESEL; i<eTIMESEGMENT_LAST; i++) { if( (envType == eENVTYPE_TRACK) && (i == eTIMESEGMENT_SELITEM) ) continue; if( (envType == eENVTYPE_TAKE) && (i == eTIMESEGMENT_PROJECT) ) continue; int x = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_TIMESEGMENT,CB_ADDSTRING,0,(LPARAM)GetTimeSegmentStr((TimeSegment)i)); SendDlgItemMessage(hwnd,IDC_PADRELFO_TIMESEGMENT,CB_SETITEMDATA,x,i); if(i == EnvelopeProcessor::getInstance()->_parameters.timeSegment) SendDlgItemMessage(hwnd,IDC_PADRELFO_TIMESEGMENT,CB_SETCURSEL,x,0); } } } return 0; } break; case IDC_PADRELFO_SYNCFREQUENCY: { if(HIWORD(wParam) == CBN_SELCHANGE) { int combo = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_SYNCFREQUENCY,CB_GETCURSEL,0,0); if(combo != CB_ERR) { GridDivision freqBeat = (GridDivision)(SendDlgItemMessage(hwnd,IDC_PADRELFO_SYNCFREQUENCY,CB_GETITEMDATA,combo,0)); if(freqBeat == eGRID_OFF) EnableWindow(GetDlgItem(hwnd,IDC_PADRELFO_FREQUENCY), TRUE); else EnableWindow(GetDlgItem(hwnd,IDC_PADRELFO_FREQUENCY), FALSE); } } return 0; } break; case IDC_PADRELFO_SYNCDELAY: { if(HIWORD(wParam) == CBN_SELCHANGE) { int combo = (int)SendDlgItemMessage(hwnd,IDC_PADRELFO_SYNCDELAY,CB_GETCURSEL,0,0); if(combo != CB_ERR) { GridDivision delayBeat = (GridDivision)(SendDlgItemMessage(hwnd,IDC_PADRELFO_SYNCDELAY,CB_GETITEMDATA,combo,0)); if(delayBeat == eGRID_OFF) EnableWindow(GetDlgItem(hwnd,IDC_PADRELFO_DELAY), TRUE); else EnableWindow(GetDlgItem(hwnd,IDC_PADRELFO_DELAY), FALSE); } } return 0; } break; } case WM_DESTROY: SaveWindowPos(hwnd, cWndPosKey); break; } return 0; }
WDL_DLGRET EnvelopeProcessorDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { const char cWndPosKey[] = "EnvProc Window Pos"; if (INT_PTR r = SNM_HookThemeColorsMessage(hwnd, uMsg, wParam, lParam)) return r; switch(uMsg) { case WM_INITDIALOG : { WDL_UTF8_HookComboBox(GetDlgItem(hwnd, IDC_PADREENVPROC_TYPE)); WDL_UTF8_HookComboBox(GetDlgItem(hwnd, IDC_PADREENVPROC_TARGET)); WDL_UTF8_HookComboBox(GetDlgItem(hwnd, IDC_PADREENVPROC_TIMESEGMENT)); WDL_UTF8_HookComboBox(GetDlgItem(hwnd, IDC_PADREENVPROC_TAKEENV)); for(int i=eENVTYPE_TRACK; i<eENVTYPE_MIDICC; i++) { int x = (int)SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TARGET,CB_ADDSTRING,0,(LPARAM)GetEnvTypeStr((EnvType)i)); SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TARGET,CB_SETITEMDATA,x,i); if(i == EnvelopeProcessor::getInstance()->_envModParams.envType) SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TARGET,CB_SETCURSEL,x,0); } SendMessage(hwnd, WM_COMMAND, MAKEWPARAM(IDC_PADREENVPROC_TARGET, CBN_SELCHANGE), NULL); if(EnvelopeProcessor::getInstance()->_envModParams.activeTakeOnly) CheckDlgButton(hwnd, IDC_PADREENVPROC_ACTIVETAKES, TRUE); else CheckDlgButton(hwnd, IDC_PADREENVPROC_ACTIVETAKES, FALSE); for(int i=eENVMOD_FADEIN; i<eENVMOD_LAST; i++) { int x = (int)SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TYPE,CB_ADDSTRING,0,(LPARAM)GetEnvModTypeStr((EnvModType)i)); SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TYPE,CB_SETITEMDATA,x,i); if(i == EnvelopeProcessor::getInstance()->_envModParams.type) SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TYPE,CB_SETCURSEL,x,0); } char buffer[BUFFER_SIZE]; sprintf(buffer, "%.0lf", 100.0*EnvelopeProcessor::getInstance()->_envModParams.strength); SetDlgItemText(hwnd, IDC_PADREENVPROC_STRENGTH, buffer); sprintf(buffer, "%.0lf", 100.0*EnvelopeProcessor::getInstance()->_envModParams.offset); SetDlgItemText(hwnd, IDC_PADREENVPROC_OFFSET, buffer); for(int i=eTAKEENV_VOLUME; i<=eTAKEENV_PITCH; i++) { int x = (int)SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TAKEENV,CB_ADDSTRING,0,(LPARAM)GetTakeEnvelopeStr((TakeEnvType)i)); SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TAKEENV,CB_SETITEMDATA,x,i); if(i == EnvelopeProcessor::getInstance()->_envModParams.takeEnvType) SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TAKEENV,CB_SETCURSEL,x,0); } RestoreWindowPos(hwnd, cWndPosKey, false); SetFocus(GetDlgItem(hwnd, IDC_PADREENVPROC_TYPE)); return 0; } break; case WM_COMMAND : { switch(LOWORD(wParam)) { case IDOK: { int combo = (int)SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TARGET,CB_GETCURSEL,0,0); if(combo != CB_ERR) EnvelopeProcessor::getInstance()->_envModParams.envType = (EnvType)(SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TARGET,CB_GETITEMDATA,combo,0)); EnvelopeProcessor::getInstance()->_envModParams.activeTakeOnly = (IsDlgButtonChecked(hwnd, IDC_PADREENVPROC_ACTIVETAKES) != 0); combo = (int)SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TIMESEGMENT,CB_GETCURSEL,0,0); if(combo != CB_ERR) EnvelopeProcessor::getInstance()->_envModParams.timeSegment = (TimeSegment)(SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TIMESEGMENT,CB_GETITEMDATA,combo,0)); combo = (int)SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TYPE,CB_GETCURSEL,0,0); if(combo != CB_ERR) EnvelopeProcessor::getInstance()->_envModParams.type = (EnvModType)(SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TYPE,CB_GETITEMDATA,combo,0)); char buffer[BUFFER_SIZE]; GetDlgItemText(hwnd,IDC_PADREENVPROC_STRENGTH,buffer,BUFFER_SIZE); EnvelopeProcessor::getInstance()->_envModParams.strength = atof(buffer)/100.0; GetDlgItemText(hwnd,IDC_PADREENVPROC_OFFSET,buffer,BUFFER_SIZE); EnvelopeProcessor::getInstance()->_envModParams.offset = atof(buffer)/100.0; combo =(int) SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TAKEENV,CB_GETCURSEL,0,0); if(combo != CB_ERR) EnvelopeProcessor::getInstance()->_envModParams.takeEnvType = (TakeEnvType)(SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TAKEENV,CB_GETITEMDATA,combo,0)); EnvelopeProcessor::ErrorCode res = EnvelopeProcessor::eERRORCODE_UNKNOWN; switch(EnvelopeProcessor::getInstance()->_envModParams.envType) { case eENVTYPE_TRACK : res = EnvelopeProcessor::getInstance()->processSelectedTrackEnv(); break; case eENVTYPE_TAKE : res = EnvelopeProcessor::getInstance()->processSelectedTakes(); break; default: break; } EnvelopeProcessor::errorHandlerDlg(hwnd, res); return 0; } break; case IDCANCEL: { ShowWindow(hwnd, SW_HIDE); return 0; } break; case IDC_PADREENVPROC_TARGET: { if(HIWORD(wParam) == CBN_SELCHANGE) { int combo = (int)SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TARGET,CB_GETCURSEL,0,0); if(combo != CB_ERR) { EnvType envType = (EnvType)(SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TARGET,CB_GETITEMDATA,combo,0)); switch(envType) { case eENVTYPE_TRACK: EnableWindow(GetDlgItem(hwnd,IDC_PADREENVPROC_ACTIVETAKES), FALSE); EnableWindow(GetDlgItem(hwnd,IDC_PADREENVPROC_TAKEENV), FALSE); break; case eENVTYPE_TAKE: EnableWindow(GetDlgItem(hwnd,IDC_PADREENVPROC_ACTIVETAKES), TRUE); EnableWindow(GetDlgItem(hwnd,IDC_PADREENVPROC_TAKEENV), TRUE); break; default: break; } SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TIMESEGMENT,CB_RESETCONTENT,0,NULL); for(int i=eTIMESEGMENT_TIMESEL; i<eTIMESEGMENT_LAST; i++) { if( (envType == eENVTYPE_TRACK) && (i == eTIMESEGMENT_SELITEM) ) continue; if( (envType == eENVTYPE_TAKE) && (i == eTIMESEGMENT_PROJECT) ) continue; int x = (int)SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TIMESEGMENT,CB_ADDSTRING,0,(LPARAM)GetTimeSegmentStr((TimeSegment)i)); SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TIMESEGMENT,CB_SETITEMDATA,x,i); if(i == EnvelopeProcessor::getInstance()->_envModParams.timeSegment) SendDlgItemMessage(hwnd,IDC_PADREENVPROC_TIMESEGMENT,CB_SETCURSEL,x,0); } } } return 0; } break; } } case WM_DESTROY: SaveWindowPos(hwnd, cWndPosKey); break; } return 0; }
WDL_DLGRET CueBussDlgProc(HWND _hwnd, UINT _uMsg, WPARAM _wParam, LPARAM _lParam) { if (INT_PTR r = SNM_HookThemeColorsMessage(_hwnd, _uMsg, _wParam, _lParam)) return r; const char cWndPosKey[] = "CueBus Window Pos"; switch(_uMsg) { case WM_INITDIALOG: { WDL_UTF8_HookComboBox(GetDlgItem(_hwnd, IDC_SNM_CUEBUS_TYPE)); WDL_UTF8_HookComboBox(GetDlgItem(_hwnd, IDC_COMBO)); for(int i=0; i < SNM_MAX_HW_OUTS; i++) WDL_UTF8_HookComboBox(GetDlgItem(_hwnd, IDC_SNM_CUEBUS_HWOUT1+i)); RestoreWindowPos(_hwnd, cWndPosKey, false); char buf[16] = ""; for(int i=0; i < SNM_MAX_CUE_BUSS_CONFS; i++) if (_snprintfStrict(buf,sizeof(buf),"%d",i+1) > 0) SendDlgItemMessage(_hwnd,IDC_COMBO,CB_ADDSTRING,0,(LPARAM)buf); SendDlgItemMessage(_hwnd,IDC_COMBO,CB_SETCURSEL,0,0); FillCueBussDlg(_hwnd); return 0; } break; case WM_CLOSE : g_cueBussHwnd = NULL; // for proper toggle state report, see openCueBussWnd() break; case WM_COMMAND : switch(LOWORD(_wParam)) { case IDC_COMBO: if(HIWORD(_wParam) == CBN_SELCHANGE) // config id update? { int id = (int)SendDlgItemMessage(_hwnd, IDC_COMBO, CB_GETCURSEL, 0, 0); if (id != CB_ERR) { g_cueBussConfId = id; FillCueBussDlg(); } } break; case IDOK: CueBuss(__LOCALIZE("Create cue buss from track selection","sws_undo"), g_cueBussConfId); return 0; case IDCANCEL: g_cueBussHwnd = NULL; // for proper toggle state report, see openCueBussWnd() ShowWindow(_hwnd, SW_HIDE); return 0; case IDC_FILES: { char curPath[SNM_MAX_PATH]=""; GetDlgItemText(_hwnd, IDC_SNM_CUEBUS_TEMPLATE, curPath, sizeof(curPath)); if (!*curPath || !FileOrDirExists(curPath)) if (_snprintfStrict(curPath, sizeof(curPath), "%s%cTrackTemplates", GetResourcePath(), PATH_SLASH_CHAR) <= 0) *curPath = '\0'; if (char* fn = BrowseForFiles(__LOCALIZE("S&M - Load track template","sws_DLG_149"), curPath, NULL, false, "REAPER Track Template (*.RTrackTemplate)\0*.RTrackTemplate\0")) { SetDlgItemText(_hwnd,IDC_SNM_CUEBUS_TEMPLATE,fn); free(fn); SaveCueBussSettings(); } break; } case IDC_CHECK3: { bool templateEnable = (IsDlgButtonChecked(_hwnd, IDC_CHECK3) == 1); EnableWindow(GetDlgItem(_hwnd, IDC_SNM_CUEBUS_TEMPLATE), templateEnable); EnableWindow(GetDlgItem(_hwnd, IDC_FILES), templateEnable); EnableWindow(GetDlgItem(_hwnd, IDC_SNM_CUEBUS_NAME), !templateEnable); for(int k=0; k < SNM_MAX_HW_OUTS ; k++) EnableWindow(GetDlgItem(_hwnd, IDC_SNM_CUEBUS_HWOUT1+k), !templateEnable); EnableWindow(GetDlgItem(_hwnd, IDC_CHECK1), !templateEnable); EnableWindow(GetDlgItem(_hwnd, IDC_CHECK4), !templateEnable); // SetFocus(GetDlgItem(_hwnd, templateEnable ? IDC_SNM_CUEBUS_TEMPLATE : IDC_SNM_CUEBUS_NAME)); SaveCueBussSettings(); break; } case IDC_SNM_CUEBUS_SOLOGRP: case IDC_CHECK1: case IDC_CHECK2: case IDC_CHECK4: SaveCueBussSettings(); break; case IDC_SNM_CUEBUS_TYPE: case IDC_SNM_CUEBUS_HWOUT1: case IDC_SNM_CUEBUS_HWOUT2: case IDC_SNM_CUEBUS_HWOUT3: case IDC_SNM_CUEBUS_HWOUT4: case IDC_SNM_CUEBUS_HWOUT5: case IDC_SNM_CUEBUS_HWOUT6: case IDC_SNM_CUEBUS_HWOUT7: case IDC_SNM_CUEBUS_HWOUT8: if(HIWORD(_wParam) == CBN_SELCHANGE) SaveCueBussSettings(); break; case IDC_SNM_CUEBUS_TEMPLATE: case IDC_SNM_CUEBUS_NAME: if (HIWORD(_wParam)==EN_CHANGE) SaveCueBussSettings(); break; } break; case WM_DESTROY: SaveWindowPos(_hwnd, cWndPosKey); break; } return 0; }