コード例 #1
0
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);
}
コード例 #2
0
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;
   }
}
コード例 #3
0
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;
   }
}
コード例 #4
0
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;
   }
}
コード例 #5
0
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;
   }
}