void CChromaMask::SetupChromaRange(int i) { int range; COLORINFO Color; BOOL On = Mask & (1 << i); if (!On) return; Color = MaskColor[i]; ChromaRange = TOGRAY(MaskRange[i]); range = ChromaRange / 2; if (ChromaColorMode == IDC_CHROMA_HSL || ChromaColorMode == IDC_CHROMA_LUMIN) { MinMaxH[0] = (int)Color.hsl.hue - range; MinMaxS[0] = (int)Color.hsl.sat - range; MinMaxL[0] = (int)Color.hsl.lum - range; MinMaxH[1] = (int)Color.hsl.hue + range; MinMaxS[1] = (int)Color.hsl.sat + range; MinMaxL[1] = (int)Color.hsl.lum + range; } else { MinMaxR[0] = (int)Color.rgb.red - range; MinMaxG[0] = (int)Color.rgb.green - range; MinMaxB[0] = (int)Color.rgb.blue - range; MinMaxR[1] = (int)Color.rgb.red + range; MinMaxG[1] = (int)Color.rgb.green + range; MinMaxB[1] = (int)Color.rgb.blue + range; MinMaxC[0] = (int)Color.cmyk.c - range; MinMaxM[0] = (int)Color.cmyk.m - range; MinMaxY[0] = (int)Color.cmyk.y - range; MinMaxK[0] = (int)Color.cmyk.k - range; MinMaxC[1] = (int)Color.cmyk.c + range; MinMaxM[1] = (int)Color.cmyk.m + range; MinMaxY[1] = (int)Color.cmyk.y + range; MinMaxK[1] = (int)Color.cmyk.k + range; } ComputeChromaMask(i); }
LOCAL void TintFill_OnCommand(HWND hDlg, int id, HWND hControl, UINT codeNotify) /************************************************************************/ { int i; BOOL Bool; MERGE_MODE MergeMode; switch (id) { case IDC_TINTFILL: if ( !SaveToolPreferences( id ) ) break; break; case IDC_MERGEMODE: if ((MergeMode = HandleMergeCombo( hDlg, id, FALSE, MM_NORMAL, codeNotify )) < 0) break; Fill.FillMergeMode = MergeMode; SetCommonMergeMode(Fill.FillMergeMode); break; case IDC_TRANSPARENT: if ( GetFocus() != GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; i = GetDlgItemSpin( hDlg, id, &Bool, NO ); Fill.FillOpacity = 255-TOGRAY(i); SetCommonOpacity(Fill.FillOpacity); break; case IDOK: // AstralDlgEnd( hDlg, TRUE ); break; case IDCANCEL: // AstralDlgEnd( hDlg, FALSE ); break; default: break; } }
LOCAL void Flood_OnCommand(HWND hDlg, int id, HWND hControl, UINT codeNotify) /************************************************************************/ { BOOL Bool; MERGE_MODE MergeMode; int i; switch (id) { case IDC_FLOOD: if ( !SaveToolPreferences( id ) ) break; break; case IDC_TRANSPARENT: if ( GetFocus() != GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; i = GetDlgItemSpin( hDlg, id, &Bool, NO ); Fill.FloodOpacity = 255-TOGRAY(i); SetCommonOpacity(Fill.FloodOpacity); break; case IDC_COLORMODEL: // case IDC_MODEL_RGB: // case IDC_MODEL_HSL: // case IDC_MODEL_LIGHTNESS: // case IDC_MODEL_HUE: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; Fill.idFillColorModel = id - IDC_FIRST_MODEL; SetCommonColorModel(Fill.idFillColorModel); break; case IDC_MERGEMODE: if ((MergeMode = HandleMergeCombo( hDlg, id, FALSE, MM_NORMAL, codeNotify )) < 0) break; Fill.FloodMergeMode = MergeMode; SetCommonMergeMode(Fill.FloodMergeMode); break; case IDOK: // AstralDlgEnd( hDlg, TRUE ); break; case IDCANCEL: // AstralDlgEnd( hDlg, FALSE ); break; case IDC_FLOODRANGE: Fill.FloodRange = GetDlgItemSpin( hDlg, id, &Bool, NO ); SetCommonRange(Fill.FloodRange); break; case IDC_FLOODFADE: Fill.FloodFade = GetDlgItemSpin( hDlg, id, &Bool, NO ); break; default: break; } }
LOCAL void TextureFill_OnCommand(HWND hDlg, int id, HWND hControl, UINT codeNotify) /************************************************************************/ { int i; BOOL Bool; MERGE_MODE MergeMode; switch (id) { case IDC_TEXTUREFILL: if ( !SaveToolPreferences( id ) ) break; break; case IDC_TEXTUREFLIPX: Texture.fHorzFlip = !Texture.fHorzFlip; CheckDlgButton( hDlg, IDC_TEXTUREFLIPX, Texture.fHorzFlip); break; case IDC_TEXTUREFLIPY: Texture.fVertFlip = !Texture.fVertFlip; CheckDlgButton( hDlg, IDC_TEXTUREFLIPY, Texture.fVertFlip); break; case IDC_EXTNAMES: GetExtName( hDlg, IDC_EXTNAMES, IDC_FILENAME, Texture.TextureName, IDN_TEXTURE, codeNotify ); break; case IDC_EXTMANAGE: PopupMenu( hDlg, id, IDC_FILENAME ); break; case IDC_ADDEXT: case IDC_DELETEEXT: case IDC_RENAMEEXT: ExtNameManager( hDlg, IDC_EXTNAMES, IDC_FILENAME, Texture.TextureName, IDN_TEXTURE, id, NO ); break; case IDC_MERGEMODE: if ((MergeMode = HandleMergeCombo( hDlg, id, FALSE, MM_NORMAL, codeNotify )) < 0) break; Texture.TextureMergeMode = MergeMode; SetCommonMergeMode(Texture.TextureMergeMode); break; case IDC_TRANSPARENT: if ( GetFocus() != GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; i = GetDlgItemSpin( hDlg, id, &Bool, NO ); Texture.TextureOpacity = 255-TOGRAY(i); SetCommonOpacity(Texture.TextureOpacity); break; default: break; } }
LOCAL void Vignette_OnCommand(HWND hDlg, int id, HWND hControl, UINT codeNotify) /************************************************************************/ { int i; BOOL Bool; MERGE_MODE MergeMode; switch (id) { case IDC_VIGNETTE: if ( !SaveToolPreferences( id ) ) break; break; case IDC_VIGNETTETYPE: // case IDC_VIGLINEAR: // case IDC_VIGRADIAL: // case IDC_VIGCIRCLE: // case IDC_VIGELLIPSE: // case IDC_VIGSQUARE: // case IDC_VIGRECTANGLE: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; Vignette.Gradient = id; break; case IDC_COLORMODEL: // case IDC_MODEL_RGB: // case IDC_MODEL_HL: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; Vignette.VigColorModel = id-IDC_FIRST_MODEL; SetCommonColorModel(Vignette.VigColorModel); break; case IDC_VIGREPEAT: if ( GetFocus() != GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; Vignette.RepeatCount = GetDlgItemSpin( hDlg, id, &Bool, NO); ControlEnable( hDlg, IDC_VIGTRANSITION, Vignette.RepeatCount > 1 ); break; case IDC_VIGTRANSITION: // case IDC_VIGSOFTTRANSITION: // case IDC_VIGHARDTRANSITION: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; Vignette.SoftTransition = id - IDC_VIGHARDTRANSITION; break; case IDC_MERGEMODE: if ((MergeMode = HandleMergeCombo( hDlg, id, FALSE, MM_NORMAL, codeNotify )) < 0) break; Vignette.VigMergeMode = MergeMode; SetCommonMergeMode(Vignette.VigMergeMode); break; case IDC_MIDPOINT: if ( GetFocus() != GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; i = GetDlgItemSpin( hDlg, id, &Bool, NO ); Vignette.Midpoint = (i * 255L) / 100L; break; case IDC_TRANSPARENT: if ( GetFocus() != GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; i = GetDlgItemSpin( hDlg, id, &Bool, NO ); Vignette.VigOpacity = 255-TOGRAY(i); SetCommonOpacity(Vignette.VigOpacity); break; case IDOK: // AstralDlgEnd( hDlg, TRUE ); break; case IDCANCEL: // AstralDlgEnd( hDlg, FALSE ); break; default: break; } }