void plAgeDescInterface::IInitControls() { #ifdef MAXASS_AVAILABLE // Fill the branch combo box SendDlgItemMessage( fhDlg, IDC_BRANCHCOMBO, CB_RESETCONTENT, 0, 0 ); const jvTypeArray &branches = (*fAssetManIface)->GetBranches(); int i, curr = 0; for( i = 0; i < branches.Size(); i++ ) { int idx = SendDlgItemMessage( fhDlg, IDC_BRANCHCOMBO, CB_ADDSTRING, 0, (LPARAM)(const char *)( branches[ i ].Name ) ); SendDlgItemMessage( fhDlg, IDC_BRANCHCOMBO, CB_SETITEMDATA, idx, (LPARAM)branches[ i ].Id ); if( branches[ i ].Id == fAssetManIface->GetCurrBranch() ) curr = i; } SendDlgItemMessage( fhDlg, IDC_BRANCHCOMBO, CB_SETCURSEL, curr, 0 ); fSpin = SetupFloatSpinner(fhDlg, IDC_DAYLEN_SPINNER, IDC_DAYLEN_EDIT, 1.f, 100.f, 24.f); fCapSpin = SetupIntSpinner(fhDlg, IDC_CAP_SPINNER, IDC_CAP_EDIT, 1, 250, kDefaultCapacity); fSeqPrefixSpin = SetupIntSpinner(fhDlg, IDC_SEQPREFIX_SPIN, IDC_SEQPREFIX_EDIT, 1, 102400, 1); SendDlgItemMessage( fhDlg, IDC_AGELIST_STATIC, WM_SETFONT, (WPARAM)fBoldFont, MAKELPARAM( TRUE, 0 ) ); SendDlgItemMessage( fhDlg, IDC_AGEDESC, WM_SETFONT, (WPARAM)fBoldFont, MAKELPARAM( TRUE, 0 ) ); #endif ISetControlDefaults(); IEnableControls(false); }
static INT_PTR CALLBACK NumMapsDlgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_INITDIALOG: { ISpinnerControl *spin = SetupIntSpinner( hWnd,IDC_COMP_NUMMAPSSPIN,IDC_COMP_NUMMAPS, 2,1000,(int)lParam); ReleaseISpinner(spin); CenterWindow(hWnd,GetParent(hWnd)); break; } case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: { ISpinnerControl *spin = GetISpinner(GetDlgItem(hWnd,IDC_COMP_NUMMAPSSPIN)); EndDialog(hWnd,spin->GetIVal()); ReleaseISpinner(spin); break; } case IDCANCEL: EndDialog(hWnd,-1); break; } break; default: return FALSE; } return TRUE; }
void VertexPaint::BeginEditParams( IObjParam *ip, ULONG flags,Animatable *prev ) { this->ip = ip; editMod = this; if (!hParams) { hParams = ip->AddRollupPage( hInstance, MAKEINTRESOURCE(IDD_PANEL), VertexPaintDlgProc, GetString(IDS_PARAMS), (LPARAM)this); // Subclass the palette controls hPaletteWnd[ 0] = GetDlgItem(hParams, IDC_PALETTE_1); hPaletteWnd[ 1] = GetDlgItem(hParams, IDC_PALETTE_2); hPaletteWnd[ 2] = GetDlgItem(hParams, IDC_PALETTE_3); hPaletteWnd[ 3] = GetDlgItem(hParams, IDC_PALETTE_4); hPaletteWnd[ 4] = GetDlgItem(hParams, IDC_PALETTE_5); hPaletteWnd[ 5] = GetDlgItem(hParams, IDC_PALETTE_6); hPaletteWnd[ 6] = GetDlgItem(hParams, IDC_PALETTE_7); int i; for (i=0; i<NUMPALETTES; i++) { colorSwatchOriginalWndProc = (WNDPROC) SetWindowLongPtr(hPaletteWnd[i], GWLP_WNDPROC, (LONG_PTR) colorSwatchSubclassWndProc); } SendMessage(hParams, WM_POSTINIT, 0, 0); } else { SetWindowLongPtr(hParams,GWLP_USERDATA,(LONG_PTR)this); } iTint = SetupIntSpinner (hParams, IDC_TINT_SPIN, IDC_TINT, 0, 100, (int) (fTint*100.0f)); // Init Gradient Bend spinner iGradientBend = SetupIntSpinner (hParams, IDC_BEND_SPIN, IDC_BEND, 0, 100, (int) (fGradientBend*100.0f)); // Set show end result. oldShowEnd = ip->GetShowEndResult() ? TRUE : FALSE; ip->SetShowEndResult (GetFlag (VP_DISP_END_RESULT)); // Force an eval to update caches. NotifyDependents(FOREVER, PART_VERTCOLOR, REFMSG_CHANGE); }
INT_PTR CALLBACK UnwrapRelaxFloaterDlgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { UnwrapMod *mod = DLGetWindowLongPtr<UnwrapMod*>(hWnd); //POINTS p = MAKEPOINTS(lParam); commented out by sca 10/7/98 -- causing warning since unused. static ISpinnerControl *iAmount = NULL; static ISpinnerControl *iIterations = NULL; static ISpinnerControl *iStretch = NULL; static BOOL bBoundary = TRUE; static BOOL bCorner = FALSE; static float amount = 1.0f; static int iterations = 1; switch (msg) { case WM_INITDIALOG: { mod = (UnwrapMod*)lParam; mod->relaxHWND = hWnd; DLSetWindowLongPtr(hWnd, lParam); ::SetWindowContextHelpId(hWnd, idh_unwrap_relax); ICustButton *iButton = GetICustButton(GetDlgItem(hWnd, IDC_RUN_BUTTON)); if (iButton) { iButton->SetType(CBT_CHECK); iButton->SetCheck(FALSE); iButton->SetHighlightColor(GREEN_WASH); ReleaseICustButton(iButton); } //create relax amount spinner and set value iAmount = SetupFloatSpinner( hWnd,IDC_RELAX_AMOUNTSPIN,IDC_RELAX_AMOUNT, 0.0f,1.0f,mod->relaxAmount); iAmount->SetScale(0.01f); amount = mod->relaxAmount; iIterations = SetupIntSpinner( hWnd,IDC_RELAX_ITERATIONSSPIN,IDC_RELAX_ITERATIONS, 0,100000,mod->relaxIteration); iIterations->SetScale(1.f); iterations = mod->relaxIteration; iStretch = SetupFloatSpinner( hWnd,IDC_RELAX_STRETCHSPIN,IDC_RELAX_STRETCH, 0.0f,1.0f,mod->relaxStretch); iStretch->SetScale(0.001f); HWND hType = GetDlgItem(hWnd,IDC_RELAXTYPE_COMBO); SendMessage(hType, CB_RESETCONTENT, 0, 0); SendMessage(hType, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR) GetString(IDS_PW_RELAX_FACE)); SendMessage(hType, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR) GetString(IDS_PW_RELAX_EDGE)); SendMessage(hType, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR) GetString(IDS_PW_RELAX_CENTERS)); SendMessage(hType, CB_SETCURSEL, (mod->relaxType), 0L); //set align cluster bBoundary = mod->relaxBoundary; bCorner = mod->relaxSaddle; CheckDlgButton(hWnd,IDC_BOUNDARY_CHECK,bBoundary); CheckDlgButton(hWnd,IDC_CORNERS_CHECK,bCorner); //restore window pos mod->SetRelaxDialogPos(); //start the hold begin if (mod->relaxType == 2) { iStretch->Enable(FALSE); HWND hCheck = GetDlgItem(hWnd,IDC_BOUNDARY_CHECK); EnableWindow(hCheck,TRUE); hCheck = GetDlgItem(hWnd,IDC_CORNERS_CHECK); EnableWindow(hCheck,TRUE); } else { iStretch->Enable(TRUE); HWND hCheck = GetDlgItem(hWnd,IDC_BOUNDARY_CHECK); EnableWindow(hCheck,TRUE); hCheck = GetDlgItem(hWnd,IDC_CORNERS_CHECK); EnableWindow(hCheck,FALSE); } break; } case WM_SYSCOMMAND: if ((wParam & 0xfff0) == SC_CONTEXTHELP) { MaxSDK::IHelpSystem::GetInstance()->ShowProductHelpForTopic(idh_unwrap_relax); } return FALSE; break; case CC_SPINNER_BUTTONDOWN: if (LOWORD(wParam) == IDC_UNWRAP_BIASSPIN) { } break; case WM_CUSTEDIT_ENTER: case CC_SPINNER_BUTTONUP: mod->RelaxThreadOp(UnwrapMod::KThreadReStart,hWnd); break; case WM_CLOSE: mod->RelaxThreadOp(UnwrapMod::KThreadEnd,hWnd); if (iAmount) ReleaseISpinner(iAmount); if (iIterations) ReleaseISpinner(iIterations); if (iStretch) ReleaseISpinner(iStretch); iAmount = NULL; iIterations = NULL; iStretch = NULL; mod->hRelaxDialog = NULL; EndDialog(hWnd,0); break; case WM_ACTIVATE: mod->RelaxThreadOp(UnwrapMod::KThreadEnd,hWnd); break; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_BOUNDARY_CHECK: case IDC_CORNERS_CHECK: mod->RelaxThreadOp(UnwrapMod::KThreadReStart,hWnd); break; case IDC_RUN_BUTTON: { ICustButton *iButton = GetICustButton(GetDlgItem(hWnd, IDC_RUN_BUTTON)); if (iButton && iButton->IsChecked()) { theHold.Begin(); mod->HoldPoints(); theHold.Accept(GetString(IDS_PW_RELAX)); mod->RelaxThreadOp(UnwrapMod::KThreadStart,hWnd); } else mod->RelaxThreadOp(UnwrapMod::KThreadEnd,hWnd); mod->InvalidateView(); TimeValue t = GetCOREInterface()->GetTime(); mod->NotifyDependents(FOREVER, PART_TEXMAP, REFMSG_CHANGE); GetCOREInterface()->RedrawViews(t); break; } break; case IDC_APPLY: { //make sure when end any existing threads mod->RelaxThreadOp(UnwrapMod::KThreadEnd,hWnd); theHold.Begin(); mod->HoldPoints(); theHold.Accept(GetString(IDS_PW_RELAX)); bBoundary = IsDlgButtonChecked(hWnd,IDC_BOUNDARY_CHECK); bCorner = IsDlgButtonChecked(hWnd,IDC_CORNERS_CHECK); amount = iAmount->GetFVal(); float stretch = iStretch->GetFVal(); iterations = iIterations->GetIVal(); HWND hType = GetDlgItem(hWnd,IDC_RELAXTYPE_COMBO); int type = SendMessage(hType, CB_GETCURSEL, 0L, 0); HWND hStatus = GetDlgItem(hWnd,IDC_STATUSTEXT); if (type == 0) mod->fnRelaxByFaceAngle(iterations,stretch,amount,bBoundary,hStatus); else if (type == 1) mod->fnRelaxByEdgeAngle(iterations,stretch,amount,bBoundary,hStatus); else if (type == 2) mod->RelaxVerts2(amount,iterations,bBoundary,bCorner); mod->InvalidateView(); TimeValue t = GetCOREInterface()->GetTime(); mod->NotifyDependents(FOREVER, PART_TEXMAP, REFMSG_CHANGE); GetCOREInterface()->RedrawViews(t); mod->relaxAmount = amount; mod->relaxIteration = iterations; mod->relaxStretch = stretch; mod->relaxType = type; mod->relaxBoundary = bBoundary; mod->relaxSaddle = bCorner; break; } case IDC_REVERT: { mod->RelaxThreadOp(UnwrapMod::KThreadEnd,hWnd); mod->hRelaxDialog = NULL; EndDialog(hWnd,0); break; } case IDC_RELAXTYPE_COMBO: if (HIWORD(wParam)== CBN_SELCHANGE) { mod->RelaxThreadOp(UnwrapMod::KThreadReStart,hWnd); HWND hType = GetDlgItem(hWnd,IDC_RELAXTYPE_COMBO); int type = SendMessage(hType, CB_GETCURSEL, 0L, 0); if (type == 2) { iStretch->Enable(FALSE); HWND hCheck = GetDlgItem(hWnd,IDC_BOUNDARY_CHECK); EnableWindow(hCheck,TRUE); hCheck = GetDlgItem(hWnd,IDC_CORNERS_CHECK); EnableWindow(hCheck,TRUE); } else { iStretch->Enable(TRUE); HWND hCheck = GetDlgItem(hWnd,IDC_BOUNDARY_CHECK); EnableWindow(hCheck,TRUE); hCheck = GetDlgItem(hWnd,IDC_CORNERS_CHECK); EnableWindow(hCheck,FALSE); } } break; case IDC_DEFAULT: { mod->RelaxThreadOp(UnwrapMod::KThreadEnd,hWnd); //get bias amount = iAmount->GetFVal(); iterations = iIterations->GetIVal(); float stretch = iStretch->GetFVal(); HWND hType = GetDlgItem(hWnd,IDC_RELAXTYPE_COMBO); int type = SendMessage(hType, CB_GETCURSEL, 0L, 0); mod->relaxAmount = amount; mod->relaxIteration = iterations; mod->relaxStretch = stretch; mod->relaxType = type; //get align bCorner = IsDlgButtonChecked(hWnd,IDC_CORNERS_CHECK); bBoundary = IsDlgButtonChecked(hWnd,IDC_BOUNDARY_CHECK); mod->relaxBoundary = bBoundary; mod->relaxSaddle = bCorner; //set as defaults break; } } break; default: return FALSE; } return TRUE; }
BOOL OrenNayarShaderDlg::PanelProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam ) { int id = LOWORD(wParam); int code = HIWORD(wParam); switch (msg) { case WM_INITDIALOG: { int i; HDC theHDC = GetDC(hwndDlg); hOldPal = GetGPort()->PlugPalette(theHDC); ReleaseDC(hwndDlg,theHDC); for (i=0; i<NCOLBOX; i++) { cs[i] = GetIColorSwatch(GetDlgItem(hwndDlg, colID[i]), GetMtlColor(i, pShader), GetColorName(i)); } hwHilite = GetDlgItem(hwndDlg, IDC_HIGHLIGHT); SetWindowLongPtr( hwHilite, GWLP_WNDPROC, (LONG_PTR)HiliteWndProc); shSpin = SetupIntSpinner(hwndDlg, IDC_SH_SPIN, IDC_SH_EDIT, 0,100, 0); ssSpin = SetupIntSpinner(hwndDlg, IDC_SS_SPIN, IDC_SS_EDIT, 0,999, 0); softSpin = SetupFloatSpinner(hwndDlg, IDC_SOFT_SPIN, IDC_SOFT_EDIT, 0.0f,1.0f,0.0f,.01f); trSpin = SetupIntSpinner(hwndDlg, IDC_TR_SPIN, IDC_TR_EDIT, 0,100, 0); dlevSpin = SetupIntSpinner(hwndDlg, IDC_DIFFLEV_SPIN, IDC_DIFFLEV_EDIT, 0, 400, 0); roughSpin = SetupIntSpinner(hwndDlg, IDC_DIFFROUGH_SPIN, IDC_DIFFROUGH_EDIT, 0, 100, 0); for (int j=0; j<NMBUTS; j++) { texMBut[j] = GetICustButton(GetDlgItem(hwndDlg,texMButtonsIDC[j])); assert( texMBut[j] ); texMBut[j]->SetRightClickNotify(TRUE); texMBut[j]->SetDADMgr(&dadMgr); } SetupLockButton(hwndDlg,IDC_LOCK_AD,FALSE); SetupLockButton(hwndDlg,IDC_LOCK_DS,FALSE); SetupPadLockButton(hwndDlg,IDC_LOCK_ADTEX, TRUE); /* // mjm - 5.10.99 - isn't this already created above when i == N_SI_CLR? // create both a self-illum color as well as a spinner cs[N_SI_CLR] = GetIColorSwatch(GetDlgItem(hwndDlg, colID[N_SI_CLR] ), GetMtlColor(N_SI_CLR, pShader), GetColorName(N_SI_CLR)); */ siSpin = SetupIntSpinner(hwndDlg, IDC_SI_SPIN, IDC_SI_EDIT, 0,100, 0); if( pShader->IsSelfIllumClrOn() ) { // enable the color swatch, disable the spinner ShowWindow( GetDlgItem(hwndDlg, IDC_SI_EDIT), SW_HIDE ); ShowWindow( GetDlgItem(hwndDlg, IDC_SI_SPIN), SW_HIDE ); } else { // disable the color swatch ShowWindow( cs[N_SI_CLR]->GetHwnd(), SW_HIDE ); } LoadDialog(TRUE); } break; case WM_COMMAND: { for ( int i=0; i<NMBUTS; i++) { if (id == texMButtonsIDC[i]) { PostMessage(hwmEdit,WM_TEXMAP_BUTTON, texmapFromMBut[i],(LPARAM)pMtl ); UpdateMapButtons(); goto exit; } } } switch (id) { case IDC_LOCK_AD: SetLockAD(IsButtonChecked(hwndDlg, IDC_LOCK_AD)); UpdateMtlDisplay(); break; case IDC_LOCK_DS: SetLockDS(IsButtonChecked(hwndDlg, IDC_LOCK_DS)); UpdateMtlDisplay(); break; case IDC_LOCK_ADTEX:{ BOOL on = IsButtonChecked(hwndDlg, IDC_LOCK_ADTEX); SetLockADTex(on); UpdateMtlDisplay(); } break; case IDC_SI_COLORON:{ int isOn = GetCheckBox(hwndDlg, IDC_SI_COLORON ); pShader->SetSelfIllumClrOn( isOn ); if ( isOn ) { // enable the color swatch, disable the spinner ShowWindow( GetDlgItem(hwndDlg, IDC_SI_EDIT), SW_HIDE ); ShowWindow( GetDlgItem(hwndDlg, IDC_SI_SPIN), SW_HIDE ); ShowWindow( cs[N_SI_CLR]->GetHwnd(), SW_SHOW ); } else { // disable the color swatch ShowWindow( cs[N_SI_CLR]->GetHwnd(), SW_HIDE ); ShowWindow( GetDlgItem(hwndDlg, IDC_SI_EDIT), SW_SHOW ); ShowWindow( GetDlgItem(hwndDlg, IDC_SI_SPIN), SW_SHOW ); } NotifyChanged(); // UpdateMtlDisplay(); } break; } break; case CC_COLOR_SEL: { int id = LOWORD(wParam); SelectEditColor(ColorIDCToIndex(id)); } break; case CC_COLOR_DROP: { int id = LOWORD(wParam); SelectEditColor(ColorIDCToIndex(id)); UpdateMtlDisplay(); } break; case CC_COLOR_BUTTONDOWN: theHold.Begin(); break; case CC_COLOR_BUTTONUP: if (HIWORD(wParam)) theHold.Accept(GetString(IDS_DS_PARAMCHG)); else theHold.Cancel(); UpdateMtlDisplay(); break; case CC_COLOR_CHANGE: { int id = LOWORD(wParam); int buttonUp = HIWORD(wParam); int n = ColorIDCToIndex(id); if (buttonUp) theHold.Begin(); Color curColor(cs[n]->GetColor()); SetMtlColor(n, curColor, pShader, cs, curTime); if (buttonUp) { theHold.Accept(GetString(IDS_DS_PARAMCHG)); // DS: 5/11/99- this was commented out. I put it back in, because // it is necessary for the Reset button in the color picker to // update the viewport. UpdateMtlDisplay(); } } break; case WM_PAINT: if (!valid) { valid = TRUE; ReloadDialog(); } return FALSE; case WM_CLOSE: case WM_DESTROY: break; case CC_SPINNER_CHANGE: if (!theHold.Holding()) theHold.Begin(); switch (id) { case IDC_SH_SPIN: pShader->SetGlossiness(PcToFrac(shSpin->GetIVal()), curTime); UpdateHilite(); break; case IDC_SS_SPIN: pShader->SetSpecularLevel(PcToFrac(ssSpin->GetIVal()),curTime); UpdateHilite(); break; case IDC_SOFT_SPIN: pShader->SetSoftenLevel(softSpin->GetFVal(),curTime); break; case IDC_SI_SPIN: pShader->SetSelfIllum(PcToFrac(siSpin->GetIVal()),curTime); break; case IDC_DIFFLEV_SPIN: pShader->SetDiffuseLevel(PcToFrac(dlevSpin->GetIVal()),curTime); break; case IDC_DIFFROUGH_SPIN: pShader->SetDiffuseRoughness(PcToFrac(roughSpin->GetIVal()),curTime); break; //******** >>>><<<< required handling for opacity....must be present in all dialogs case IDC_TR_SPIN: pMtl->SetOpacity(PcToFrac( trSpin->GetIVal()),curTime); break; } // UpdateMtlDisplay(); break; case CC_SPINNER_BUTTONDOWN: theHold.Begin(); break; case WM_CUSTEDIT_ENTER: case CC_SPINNER_BUTTONUP: if (HIWORD(wParam) || msg==WM_CUSTEDIT_ENTER) theHold.Accept(GetString(IDS_DS_PARAMCHG)); else theHold.Cancel(); UpdateMtlDisplay(); break; } exit: return FALSE; }
INT_PTR StraussShaderDlg::PanelProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam ) { int id = LOWORD(wParam); int code = HIWORD(wParam); switch (msg) { case WM_INITDIALOG: { HDC theHDC = GetDC(hwndDlg); hOldPal = GetGPort()->PlugPalette(theHDC); ReleaseDC(hwndDlg,theHDC); HWND hwndCS = GetDlgItem(hwndDlg, IDC_COLOR); cs[0] = GetIColorSwatch( hwndCS, pShader->GetDiffuseClr(), GetString(IDS_KE_COLOR) ); hwHilite = GetDlgItem(hwndDlg, IDC_HIGHLIGHT); DLSetWindowLongPtr( hwHilite, HiliteWndProc); glSpin = SetupIntSpinner(hwndDlg, IDC_GL_SPIN, IDC_GL_EDIT, 0,100, 0); mtSpin = SetupIntSpinner(hwndDlg, IDC_MT_SPIN, IDC_MT_EDIT, 0,100, 0); trSpin = SetupIntSpinner(hwndDlg, IDC_TR_SPIN, IDC_TR_EDIT, 0,100, 0); for (int j=0; j<NMBUTS; j++) { texMBut[j] = GetICustButton(GetDlgItem(hwndDlg,texMButtonsIDC[j])); assert( texMBut[j] ); texMBut[j]->SetRightClickNotify(TRUE); texMBut[j]->SetDADMgr(&dadMgr); } LoadDialog(TRUE); } break; case WM_COMMAND: { for ( int i=0; i<NMBUTS; i++) { if (id == texMButtonsIDC[i]) { PostMessage(hwmEdit,WM_TEXMAP_BUTTON, texmapFromMBut[i],(LPARAM)pMtl ); UpdateMapButtons(); goto exit; } } } break; // WM_COMMAND case CC_COLOR_SEL: { int id = LOWORD(wParam); SelectEditColor(ColorIDCToIndex(id)); } break; case CC_COLOR_DROP: { int id = LOWORD(wParam); SelectEditColor(ColorIDCToIndex(id)); UpdateMtlDisplay(); } break; case CC_COLOR_BUTTONDOWN: theHold.Begin(); break; case CC_COLOR_BUTTONUP: if (HIWORD(wParam)) theHold.Accept(GetString(IDS_DS_PARAMCHG)); else theHold.Cancel(); UpdateMtlDisplay(); break; case CC_COLOR_CHANGE: { int id = LOWORD(wParam); int buttonUp = HIWORD(wParam); int n = ColorIDCToIndex(id); if (buttonUp) theHold.Begin(); Color curColor(cs[n]->GetColor()); pShader->SetDiffuseClr(curColor, curTime); if (buttonUp) { theHold.Accept(GetString(IDS_DS_PARAMCHG)); // DS: 5/11/99- this was commented out. I put it back in, because // it is necessary for the Reset button in the color picker to // update the viewport. UpdateMtlDisplay(); } } break; case WM_PAINT: if (!valid) { valid = TRUE; ReloadDialog(); } return FALSE; case WM_CLOSE: case WM_DESTROY: break; case CC_SPINNER_CHANGE: if (!theHold.Holding()) theHold.Begin(); switch (id) { case IDC_GL_SPIN: pShader->SetGlossiness(PcToFrac( glSpin->GetIVal() ), curTime); UpdateHilite(); break; case IDC_MT_SPIN: pShader->SetMetalness(PcToFrac(mtSpin->GetIVal()), curTime); break; //******** >>>><<<< required handling for opacity....must be present in all dialogs case IDC_TR_SPIN: pMtl->SetOpacity(PcToFrac( trSpin->GetIVal()),curTime); break; } // UpdateMtlDisplay(); break; case CC_SPINNER_BUTTONDOWN: theHold.Begin(); break; case WM_CUSTEDIT_ENTER: case CC_SPINNER_BUTTONUP: if (HIWORD(wParam) || msg==WM_CUSTEDIT_ENTER) theHold.Accept(GetString(IDS_DS_PARAMCHG)); else theHold.Cancel(); UpdateMtlDisplay(); break; } exit: return FALSE; }
BOOL WardShaderDlg::PanelProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam ) { int id = LOWORD(wParam); int code = HIWORD(wParam); switch (msg) { case WM_INITDIALOG: { int i; HDC theHDC = GetDC(hwndDlg); hOldPal = GetGPort()->PlugPalette(theHDC); ReleaseDC(hwndDlg,theHDC); for (i=0; i<WARD_NCOLBOX; i++) { cs[i] = GetIColorSwatch(GetDlgItem(hwndDlg, colID[i]), GetMtlColor(i, pShader), GetColorName(i)); } hwHilite = GetDlgItem(hwndDlg, IDC_HIGHLIGHT); SetWindowLongPtr( hwHilite, GWLP_WNDPROC, (LONG_PTR)Hilite2WndProc); slevSpin = SetupIntSpinner(hwndDlg, IDC_SLEV_SPIN, IDC_SLEV_EDIT, 0,400, 0); dlevSpin = SetupIntSpinner(hwndDlg, IDC_DLEV_SPIN, IDC_DLEV_EDIT, 0, 400, 0); glxSpin = SetupIntSpinner(hwndDlg, IDC_GLX_SPIN, IDC_GLX_EDIT, 0,100, 0); glySpin = SetupIntSpinner(hwndDlg, IDC_GLY_SPIN, IDC_GLY_EDIT, 0,100, 0); trSpin = SetupIntSpinner(hwndDlg, IDC_TR_SPIN, IDC_TR_EDIT, 0,100, 0); for (int j=0; j<NMBUTS; j++) { texMBut[j] = GetICustButton(GetDlgItem(hwndDlg,texMButtonsIDC[j])); assert( texMBut[j] ); texMBut[j]->SetRightClickNotify(TRUE); texMBut[j]->SetDADMgr(&dadMgr); } SetupLockButton(hwndDlg,IDC_LOCK_AD,FALSE); SetupLockButton(hwndDlg,IDC_LOCK_DS,FALSE); SetupPadLockButton(hwndDlg,IDC_LOCK_ADTEX, TRUE); LoadDialog(TRUE); } break; case WM_COMMAND: { for ( int i=0; i<NMBUTS; i++) { if (id == texMButtonsIDC[i]) { PostMessage(hwmEdit,WM_TEXMAP_BUTTON, texmapFromMBut[i],(LPARAM)pMtl ); UpdateMapButtons(); goto exit; } } } switch (id) { case IDC_NORMALIZE_CHECK: pShader->SetNormalizeOn( ! GetCheckBox(hwndDlg, IDC_NORMALIZE_CHECK) ); UpdateHilite(); NotifyChanged(); UpdateMtlDisplay(); break; case IDC_LOCK_AD: SetLockAD(IsButtonChecked(hwndDlg, IDC_LOCK_AD)); UpdateMtlDisplay(); break; case IDC_LOCK_DS: SetLockDS(IsButtonChecked(hwndDlg, IDC_LOCK_DS)); UpdateMtlDisplay(); break; case IDC_LOCK_ADTEX:{ BOOL on = IsButtonChecked(hwndDlg, IDC_LOCK_ADTEX); SetLockADTex(on); UpdateMtlDisplay(); } break; } break; case CC_COLOR_SEL: { int id = LOWORD(wParam); SelectEditColor(ColorIDCToIndex(id)); } break; case CC_COLOR_DROP: { int id = LOWORD(wParam); SelectEditColor(ColorIDCToIndex(id)); UpdateMtlDisplay(); } break; case CC_COLOR_BUTTONDOWN: theHold.Begin(); break; case CC_COLOR_BUTTONUP: if (HIWORD(wParam)) theHold.Accept(GetString(IDS_DS_PARAMCHG)); else theHold.Cancel(); UpdateMtlDisplay(); break; case CC_COLOR_CHANGE: { int id = LOWORD(wParam); int buttonUp = HIWORD(wParam); int n = ColorIDCToIndex(id); if (buttonUp) theHold.Begin(); Color curColor(cs[n]->GetColor()); SetMtlColor(n, curColor, pShader, cs, curTime); if (buttonUp) { theHold.Accept(GetString(IDS_DS_PARAMCHG)); // DS: 5/11/99- this was commented out. I put it back in, because // it is necessary for the Reset button in the color picker to // update the viewport. UpdateMtlDisplay(); } } break; case WM_PAINT: if (!valid) { valid = TRUE; ReloadDialog(); } return FALSE; case WM_CLOSE: case WM_DESTROY: break; case CC_SPINNER_CHANGE: if (!theHold.Holding()) theHold.Begin(); switch (id) { case IDC_GLX_SPIN: pShader->SetGlossiness(ALPHA_MAX - PcToFrac( glxSpin->GetIVal() ) * ALPHA_SZ, curTime); UpdateHilite(); break; case IDC_GLY_SPIN: pShader->SetGlossinessY(ALPHA_MAX - PcToFrac(glySpin->GetIVal()) * ALPHA_SZ, curTime); UpdateHilite(); break; case IDC_SLEV_SPIN: pShader->SetSpecularLevel(SPEC_MAX * PcToFrac(slevSpin->GetIVal()),curTime); UpdateHilite(); break; case IDC_DLEV_SPIN: pShader->SetDiffuseLevel(PcToFrac(dlevSpin->GetIVal()),curTime); break; //******** >>>><<<< required handling for opacity....must be present in all dialogs case IDC_TR_SPIN: pMtl->SetOpacity(PcToFrac( trSpin->GetIVal()),curTime); break; } // UpdateMtlDisplay(); break; case CC_SPINNER_BUTTONDOWN: theHold.Begin(); break; case WM_CUSTEDIT_ENTER: case CC_SPINNER_BUTTONUP: if (HIWORD(wParam) || msg==WM_CUSTEDIT_ENTER) theHold.Accept(GetString(IDS_DS_PARAMCHG)); else theHold.Cancel(); UpdateMtlDisplay(); break; } exit: return FALSE; }
//---------------------------------------------------------------------------- // Layer panel processor //---------------------------------------------------------------------------- BOOL plMultipassMtlDlg::LayerPanelProc(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) { int id = LOWORD(wParam); int code = HIWORD(wParam); int i; switch (msg) { case WM_INITDIALOG: { int nLayers = fPBlock->GetInt(kMultCount); for (i = 0; i < NSUBMTLS; i++) { fLayerBtns[i] = GetICustButton(GetDlgItem(hDlg, kLayerID[i].layerID)); fLayerBtns[i]->SetDADMgr(&fDADMgr); /* if (i < nLayers) { SetCheckBox(hDlg, kLayerID[i].activeID, fPBlock->GetInt(kMtlLayerOn, curTime, i)); } */ fNumTexSpin = SetupIntSpinner(hDlg, IDC_LAYER_SPIN, IDC_LAYER_EDIT, 1, 10, nLayers); } // TEMP testing UpdateLayerDisplay(); IUpdateMtlDisplay(); } return TRUE; case WM_DESTROY: for (i = 0; i < NSUBMTLS; i++) { ReleaseICustButton(fLayerBtns[i]); fLayerBtns[i] = NULL; } ReleaseISpinner(fNumTexSpin); fNumTexSpin = NULL; break; case CC_SPINNER_CHANGE: if (id == IDC_LAYER_SPIN && !code) { IGetSpinnerVal(); return TRUE; } break; case CC_SPINNER_BUTTONUP: if (id == IDC_LAYER_SPIN && code) { IGetSpinnerVal(); return TRUE; } break; case WM_COMMAND: { for (i = 0; i < NSUBMTLS; i++) { if (id == kLayerID[i].activeID) { // fMtl->EnableMap(i,GetCheckBox(hwndDlg, id)); bool checked = SendMessage(GetDlgItem(hDlg, id), BM_GETCHECK, 0, 0) == BST_CHECKED; fPBlock->SetValue(kMultOn, curTime, checked, i); return TRUE; } if (id == kLayerID[i].layerID) { PostMessage(fhMtlEdit, WM_SUB_MTL_BUTTON, i, (LPARAM)fMtl); return TRUE; } } } // IUpdateMtlDisplay(); break; } return FALSE; }
INT_PTR SurfaceDlgProc::DlgProc (TimeValue t, IParamMap2 *map, HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { ISpinnerControl* spin = NULL; int buttonID(0); switch (msg) { case WM_INITDIALOG: { ISpinnerControl* temp = SetupIntSpinner (hWnd, IDC_MAT_IDSPIN, IDC_MAT_ID, 1, MAX_MATID, 0); ReleaseISpinner(temp); temp = SetupIntSpinner (hWnd, IDC_MAT_IDSPIN_SEL, IDC_MAT_ID_SEL, 1, MAX_MATID, 0); ReleaseISpinner(temp); CheckDlgButton(hWnd, IDC_CLEARSELECTION, 1); mMaterialUIHandler.SetupMtlSubNameCombo (hWnd, mpMod); // Cue an update based on the current face selection. uiValid.SetEmpty(); klugeToFixWM_CUSTEDIT_ENTEROnEnterFaceLevel = true; mSpinningMaterial = false; mTimeChangeHandle = NULL; break; } case WM_PAINT: uiValid = FOREVER; // Display the correct material index: mMaterialUIHandler.UpdateCurrentMaterial (hWnd, mpMod, t, uiValid); if (!(uiValid == FOREVER) && !(uiValid == NEVER)) AddTimeChangeInvalidate (hWnd); else RemoveTimeChangeInvalidate (); klugeToFixWM_CUSTEDIT_ENTEROnEnterFaceLevel = false; return FALSE; case CC_SPINNER_BUTTONDOWN: switch (LOWORD(wParam)) { case IDC_MAT_IDSPIN: if (!mSpinningMaterial) { theHold.Begin (); mpMod->EpModSetOperation (ep_op_set_material); mSpinningMaterial = true; } break; } break; case WM_CUSTEDIT_ENTER: case CC_SPINNER_BUTTONUP: switch (LOWORD(wParam)) { case IDC_MAT_ID: case IDC_MAT_IDSPIN: if (!mSpinningMaterial) break; // For some reason, there's a WM_CUSTEDIT_ENTER sent on IDC_MAT_ID // when we start this dialog up. Use this variable to suppress its activity. if (klugeToFixWM_CUSTEDIT_ENTEROnEnterFaceLevel) break; if (HIWORD(wParam) || msg==WM_CUSTEDIT_ENTER) { mpMod->EpModCommitUnlessAnimating (t); theHold.Accept(GetString(IDS_ASSIGN_MATID)); } else theHold.Cancel(); mpMod->EpModRefreshScreen (); mSpinningMaterial = false; break; } break; case CC_SPINNER_CHANGE: spin = (ISpinnerControl*)lParam; switch (LOWORD(wParam)) { case IDC_MAT_IDSPIN: if (!mSpinningMaterial) { theHold.Begin(); mpMod->EpModSetOperation (ep_op_set_material); mSpinningMaterial = true; } mpMod->getParamBlock()->SetValue (epm_material, t, spin->GetIVal()-1); break; } break; case WM_COMMAND: if (HIWORD(wParam) == 1) return FALSE; // not handling keyboard shortcuts here. buttonID = LOWORD(wParam); switch (buttonID) { case IDC_SELECT_BYID: int selBy; spin = GetISpinner (GetDlgItem (hWnd, IDC_MAT_IDSPIN_SEL)); if (!spin) break; selBy = spin->GetIVal()-1; ReleaseISpinner (spin); mpMod->getParamBlock()->SetValue (epm_material_selby, t, selBy); mpMod->EpModButtonOp (ep_op_select_by_material); break; case IDC_MTLID_NAMES_COMBO: switch(HIWORD(wParam)){ case CBN_SELENDOK: mMaterialUIHandler.SelectByName (hWnd, mpMod); break; } break; } break; case WM_CLOSE: { if (hWnd == mpMod->MatIDFloaterHWND()) { EndDialog(hWnd,1); mpMod->CloseMatIDFloater(); return TRUE; } return FALSE; break; } case WM_DESTROY: RemoveTimeChangeInvalidate(); return FALSE; default: return FALSE; } return TRUE; }
void AppDataTest::Init(HWND hWnd) { spin = SetupIntSpinner(hWnd,IDC_APPDATA_SLOTSPIN,IDC_APPDATA_SLOT,0,99999999,0); }