//--------------------------------------------------------------------- #include "all.h" #include "BrowseFileDlg.h" //--------------------------------------------------------------------- #pragma resource "*.dfm" //--------------------------------------------------------------------- __fastcall TMDIChild::TMDIChild(TComponent *Owner): TForm(Owner) { m_nAutoPalette = 0; m_nOrderedDither = 0; m_nBitonalScaling = 0; m_bWaitCursor = FALSE; } //--------------------------------------------------------------------- void __fastcall TMDIChild::FormClose(TObject *Sender, TCloseAction &Action) { Action = caFree; } //--------------------------------------------------------------------- void __fastcall TMDIChild::OnCreate(TObject *Sender) { OPENDLGPARAMS FOParm; FILEINFO fInfo; LOADFILEOPTION LoadFileOption; m_LAniWnd.SetWndHandle(CreateNewWindow()); m_LAniWnd.FitToParent(TRUE); m_LAniWnd.DialogFile()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogFile()->EnableAutoProcess(TRUE); Caption = MainForm->m_szFileName; m_bPictrezeCallback = FALSE; switch(MainForm->m_nCreateWindowMode) { case OPEN_MODE: m_LAniWnd.SetFileName(MainForm->m_szFileName); m_LAniWnd.EnableLoop(); m_LAniWnd.EnableAutoAnimate(); MainForm->m_LUserBitmap.DialogFile()->GetOpenParams(&FOParm,sizeof(FOParm)); LBaseFile::GetDefaultLoadFileOption(&LoadFileOption,sizeof(LoadFileOption)); LoadFileOption.PageNumber = FOParm.pFileData[0].nPageNumber; LoadFileOption.Flags |= (FOParm.pFileData[0].bLoadRotated * ELO_ROTATED); m_LAniWnd.File()->GetInfo(&fInfo, sizeof(fInfo),FILEINFO_TOTALPAGES, &LoadFileOption); if(m_LAniWnd.Load(fInfo.BitsPerPixel,ORDER_BGRORGRAY,&LoadFileOption)!=SUCCESS) { Close(); return; } break; case NORMAL_MODE: case BITMAP_MODE: m_LAniWnd.SetHandle(MainForm->m_LUserBitmap.GetHandle()); break; case BITMAPLIST_MODE: ; m_LAniWnd.SetBitmapList(&MainForm->m_LBitmapList, NULL); break; } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnSize(TObject *Sender) { m_LAniWnd.FitToParent(TRUE); m_LAniWnd.Repaint(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnActivate(TObject *Sender) { MainForm->ShowHint(0); ::SetFocus(m_LAniWnd.GetBitmapWnd()); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnEditCopy(TObject *Sender) { m_LAniWnd.CopyToClipboard(Handle,COPY2CB_EMPTY|COPY2CB_DIB|COPY2CB_DDB|COPY2CB_PALETTE); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnEditPaste(TObject *Sender) { MainForm->OnEditPaste(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnEditCopyFloater(TObject *Sender) { m_LAniWnd.CopyToClipboard(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnEditPasteFloater(TObject *Sender) { m_LAniWnd.CopyFromClipboard(Handle); } //--------------------------------------------------------------------------- HWND TMDIChild::CreateNewWindow() { HINSTANCE hInst = (HINSTANCE)GetWindowLong(Handle,GWL_HINSTANCE); if(MainForm->MDIChildCount==1) { WNDCLASS WndClass; WndClass.style = CS_DBLCLKS; WndClass.lpfnWndProc = DefWindowProc; WndClass.cbClsExtra = 0; WndClass.cbWndExtra = 0; WndClass.hInstance = hInst; WndClass.hIcon = 0; WndClass.hCursor = NULL; WndClass.hbrBackground = NULL; WndClass.lpszMenuName = 0; WndClass.lpszClassName = "NEW_WINDOW"; ::RegisterClass(&WndClass); } return CreateWindow("NEW_WINDOW",NULL,WS_CHILD|WS_VISIBLE,0,0,0,0,Handle,NULL,hInst,0); } void __fastcall TMDIChild::OnToolNone(TObject *Sender) { m_LAniWnd.SetToolType(TOOL_USERMODE); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnToolPanimage(TObject *Sender) { m_LAniWnd.SetToolType(TOOL_PANIMAGE); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnToolZoomrect(TObject *Sender) { m_LAniWnd.SetToolType(TOOL_ZOOMRECT); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnToolZoomInMouse(TObject *Sender) { m_LAniWnd.SetToolType(TOOL_ZOOM_ON_MOUSECLICK); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnRgnTriangle(TObject *Sender) { m_LAniWnd.SetToolType(TOOL_REGION); m_LAniWnd.SetRegionType(REGION_TYPE_TRIANGLE); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnRgnRectangle(TObject *Sender) { m_LAniWnd.SetToolType(TOOL_REGION); m_LAniWnd.SetRegionType(REGION_TYPE_RECT); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnRgnRndrect(TObject *Sender) { m_LAniWnd.SetToolType(TOOL_REGION); m_LAniWnd.SetRegionType(REGION_TYPE_ROUNDRECT); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnRgnEllipse(TObject *Sender) { m_LAniWnd.SetToolType(TOOL_REGION); m_LAniWnd.SetRegionType(REGION_TYPE_ELIPSE); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnRgnFreehand(TObject *Sender) { m_LAniWnd.SetToolType(TOOL_REGION); m_LAniWnd.SetRegionType(REGION_TYPE_FREE_HAND); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnRgnPolygon(TObject *Sender) { m_LAniWnd.SetToolType(TOOL_REGION); m_LAniWnd.SetRegionType(REGION_TYPE_POLYGON); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnRgnCancel(TObject *Sender) { m_LAniWnd.CancelRgn(); m_LAniWnd.SetToolType(TOOL_USERMODE); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnRgnAnimframe(TObject *Sender) { m_LAniWnd.SetRgnFrameType(RGNFRAME_ANIMATED); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnRgnStaticframe(TObject *Sender) { m_LAniWnd.SetRgnFrameType(RGNFRAME_STATIC); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnRgnNoneframe(TObject *Sender) { m_LAniWnd.SetRgnFrameType(RGNFRAME_NONE); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnViewNormal(TObject *Sender) { m_LAniWnd.SetZoomMode(ZOOM_NORMAL); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnFitFitwin(TObject *Sender) { m_LAniWnd.SetZoomMode(ZOOM_FIT); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnFitStretch(TObject *Sender) { m_LAniWnd.SetZoomMode(ZOOM_STRETCH); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnFitHeight(TObject *Sender) { m_LAniWnd.SetZoomMode(ZOOM_FITHEIGHT); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnFitWidth(TObject *Sender) { m_LAniWnd.SetZoomMode(ZOOM_FITWIDTH); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnViewZoom(TObject *Sender) { RangeDlg->Caption = "Zoom"; RangeDlg->Label->Caption = "&Amount"; RangeDlg->ScrollBarRange->Position = m_LAniWnd.GetZoomPercent(); RangeDlg->ScrollBarRange->Min = 1; RangeDlg->ScrollBarRange->Max = 800; RangeDlg->ScrollBarRange->LargeChange = 100; if(RangeDlg->ShowModal()==mrOk) m_LAniWnd.SetZoomPercent((L_UINT)RangeDlg->ScrollBarRange->Position); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnViewZoomin(TObject *Sender) { m_LAniWnd.ZoomIn(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnViewZoomout(TObject *Sender) { m_LAniWnd.ZoomOut(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnViewZoomCenter(TObject *Sender) { m_LAniWnd.EnableCenterOnZoom(!m_LAniWnd.IsCenterOnZoomEnabled()); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnViewEffects(TObject *Sender) { EFFECTDLGPARAMS EfxDlgParm; L_BOOL bPaintEffect = m_LAniWnd.EnablePaintEffect(FALSE); L_BOOL bPaintTransition = m_LAniWnd.EnablePaintTransition(FALSE); L_INT nRetCode = m_LAniWnd.DialogEffect()->DoModalGetEffect(Handle); m_LAniWnd.EnablePaintEffect(bPaintEffect); m_LAniWnd.EnablePaintTransition(bPaintTransition); if(nRetCode==SUCCESS) { m_LAniWnd.DialogEffect()->GetEffectParams(&EfxDlgParm,sizeof(EfxDlgParm)); m_LAniWnd.SetEffectParameters(&EfxDlgParm); if(bPaintEffect||bPaintTransition) m_LAniWnd.Repaint(); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnViewPaintTransition(TObject *Sender) { TRANSITIONDLGPARAMS TransDlgParm; L_BOOL bPaintEffect = m_LAniWnd.EnablePaintEffect(FALSE); L_BOOL bPaintTransition = m_LAniWnd.EnablePaintTransition(FALSE); L_INT nRetCode = m_LAniWnd.DialogEffect()->DoModalGetTransition(Handle); m_LAniWnd.EnablePaintEffect(bPaintEffect); m_LAniWnd.EnablePaintTransition(bPaintTransition); if(nRetCode==SUCCESS) { m_LAniWnd.DialogEffect()->GetTransitionParams(&TransDlgParm,sizeof(TransDlgParm)); m_LAniWnd.SetTransitionParameters(&TransDlgParm); if(bPaintEffect||bPaintTransition) m_LAniWnd.Repaint(); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnViewPaintGradient(TObject *Sender) { GRADIENTDLGPARAMS GradDlgParm; if(m_LAniWnd.DialogEffect()->DoModalGetGradient(Handle)==SUCCESS) { m_LAniWnd.DialogEffect()->GetGradientParams(&GradDlgParm,sizeof(GradDlgParm)); m_LAniWnd.SetGradientParameters(&GradDlgParm); m_LAniWnd.Repaint(); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnViewPaintPattern(TObject *Sender) { PatternDlg->m_uStyle = m_LAniWnd.GetPatternStyle(); PatternDlg->Foreground->Color = (TColor)m_LAniWnd.GetPatternForeColor(); PatternDlg->Background->Color = (TColor)m_LAniWnd.GetPatternBackColor(); if (PatternDlg->ShowModal()==mrOk) { m_LAniWnd.SetPatternStyle(PatternDlg->m_uStyle); m_LAniWnd.SetPatternForeColor(PatternDlg->Foreground->Color); m_LAniWnd.SetPatternBackColor(PatternDlg->Background->Color); m_LAniWnd.Repaint(); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnViewEnablePaintEffects(TObject *Sender) { m_LAniWnd.EnablePaintEffect(!m_LAniWnd.IsPaintEffectEnabled()); m_LAniWnd.Repaint(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnViewEnableTransition(TObject *Sender) { m_LAniWnd.EnablePaintTransition(!m_LAniWnd.IsPaintTransitionEnabled()); m_LAniWnd.Repaint(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnViewEnableGradint(TObject *Sender) { m_LAniWnd.EnableDrawGradient(!m_LAniWnd.IsDrawGradientEnabled()); m_LAniWnd.Repaint(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnViewEnablePattern(TObject *Sender) { m_LAniWnd.EnableDrawPattern(!m_LAniWnd.IsDrawPatternEnabled()); m_LAniWnd.Repaint(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnViewPaintusedpi(TObject *Sender) { m_LAniWnd.EnablePaintSizeUseDPI(!m_LAniWnd.IsPaintSizeUseDPIEnabled()); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnViewPanwindow(TObject *Sender) { if(!m_LAniWnd.IsPanWndCreated()) { m_LAniWnd.CreatePanWnd(DISPLAYMODE_SCALETOGRAY,0,0,150,150,"PAN_WIN",NULL,NULL,TRUE); m_LAniWnd.UpdatePanWnd(DISPLAYMODE_SCALETOGRAY,RGB(255,0,0)," Test Pan Window "); } else m_LAniWnd.DestroyPanWnd(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageFlip(TObject *Sender) { BeginWaitCursor() ; m_LAniWnd.Flip(); EndWaitCursor() ; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageReverce(TObject *Sender) { BeginWaitCursor() ; m_LAniWnd.Reverse(); EndWaitCursor() ; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageFast90(TObject *Sender) { BeginWaitCursor() ; m_LAniWnd.RotateViewPerspective(90); EndWaitCursor() ; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageFast180(TObject *Sender) { BeginWaitCursor() ; m_LAniWnd.RotateViewPerspective(180); EndWaitCursor() ; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageFast270(TObject *Sender) { BeginWaitCursor() ; m_LAniWnd.RotateViewPerspective(270); EndWaitCursor() ; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageRot90(TObject *Sender) { BeginWaitCursor() ; m_LAniWnd.Rotate(90,TRUE); EndWaitCursor() ; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageRot270(TObject *Sender) { BeginWaitCursor() ; m_LAniWnd.Rotate(270,TRUE); EndWaitCursor() ; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageRot180(TObject *Sender) { BeginWaitCursor() ; m_LAniWnd.Rotate(180,TRUE); EndWaitCursor() ; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageRotanyangle(TObject *Sender) { ROTATEDLGPARAMS DlgParams ; memset ( &DlgParams, 0, sizeof ( ROTATEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( ROTATEDLGPARAMS ) ; DlgParams.uDlgFlags = (m_LAniWnd.HasRgn()?0:DLG_ROTATE_SHOW_RESIZE) | (m_LAniWnd.HasRgn()?0:DLG_ROTATE_SHOW_BACKCOLOR); m_LAniWnd.DialogImage()->EnableCallBack(FALSE); m_LAniWnd.DialogImage()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImage()->EnableAutoProcess(true); m_LAniWnd.DialogImage()->EnableToolbar(true); m_LAniWnd.DialogImage()->SetRotateParams(&DlgParams) ; m_LAniWnd.DialogImage()->DoModalRotate(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageShear(TObject *Sender) { SHEARDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( SHEARDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( SHEARDLGPARAMS ) ; DlgParams.uDlgFlags = (m_LAniWnd.HasRgn()?0:DLG_SHEAR_SHOW_HORIZONTAL) | (m_LAniWnd.HasRgn()?0:DLG_SHEAR_SHOW_BACKCOLOR); m_LAniWnd.DialogImage()->EnableCallBack(FALSE); m_LAniWnd.DialogImage()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImage()->EnableAutoProcess(true); m_LAniWnd.DialogImage()->EnableToolbar(true); m_LAniWnd.DialogImage()->SetShearParams(&DlgParams) ; m_LAniWnd.DialogImage()->DoModalShear(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageDeskew(TObject *Sender) { BeginWaitCursor() ; m_LAniWnd.Deskew(NULL,RGB(0,0,0), DSKW_PROCESS); EndWaitCursor() ; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageAutotrim(TObject *Sender) { RangeDlg->Caption = "Autotrim"; RangeDlg->Label->Caption = "&Amount"; RangeDlg->ScrollBarRange->Position = 30; RangeDlg->ScrollBarRange->Min = 0; RangeDlg->ScrollBarRange->Max = 244; RangeDlg->ScrollBarRange->LargeChange = 30; if(RangeDlg->ShowModal()==mrOk) { BeginWaitCursor() ; m_LAniWnd.AutoTrim((L_UINT)RangeDlg->ScrollBarRange->Position); EndWaitCursor() ; } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageResize(TObject *Sender) { RESIZEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( RESIZEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( RESIZEDLGPARAMS ) ; DlgParams.uOriginalWidth = m_LAniWnd.GetWidth(); DlgParams.uOriginalHeight = m_LAniWnd.GetHeight(); DlgParams.uOriginalResolutionX = m_LAniWnd.GetXResolution(); DlgParams.uOriginalResolutionY = m_LAniWnd.GetYResolution(); DlgParams.uOriginalBitsPerPixel = m_LAniWnd.GetBitsPerPixel(); DlgParams.uNewWidth = m_LAniWnd.GetWidth(); DlgParams.uNewHeight = m_LAniWnd.GetHeight(); DlgParams.uNewResolutionX = m_LAniWnd.GetXResolution(); DlgParams.uNewResolutionY = m_LAniWnd.GetYResolution(); DlgParams.uResize = SIZE_NORMAL ; DlgParams.uDlgFlags = DLG_RESIZE_SHOW_PERCENTAGE | DLG_RESIZE_SHOW_IDENTICALVALUE | DLG_RESIZE_SHOW_MAINTAINASPECT | DLG_RESIZE_SHOW_RESOLUTIONGRP; m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogImage()->EnableCallBack(FALSE); m_LAniWnd.DialogImage()->SetResizeParams(&DlgParams) ; m_LAniWnd.DialogImage()->DoModalResize(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImagePostarize(TObject *Sender) { POSTERIZEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( POSTERIZEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( POSTERIZEDLGPARAMS ) ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogColor()->EnableToolbar(true); m_LAniWnd.DialogColor()->SetPosterizeParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalPosterize(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageMosaic(TObject *Sender) { MOSAICDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( MOSAICDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( MOSAICDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetMosaicParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalMosaic(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageAverage(TObject *Sender) { AVERAGEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( AVERAGEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( AVERAGEDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetAverageParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalAverage(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageMedian(TObject *Sender) { MEDIANDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( MEDIANDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( MEDIANDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetMedianParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalMedian(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageSharpen(TObject *Sender) { UNSHARPMASKDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( UNSHARPMASKDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( UNSHARPMASKDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetUnsharpMaskParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalUnsharpMask(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageAddnoise(TObject *Sender) { ADDNOISEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( ADDNOISEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( ADDNOISEDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetAddNoiseParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalAddNoise(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageEmboss(TObject *Sender) { EMBOSSDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( EMBOSSDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( EMBOSSDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetEmbossParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalEmboss(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageOilify(TObject *Sender) { OILIFYDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( OILIFYDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( OILIFYDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetOilifyParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalOilify(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageGradient(TObject *Sender) { GRADIENTFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( GRADIENTFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( GRADIENTFILTERDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetGradientFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalGradientFilter(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageLaplacian(TObject *Sender) { LAPLACIANFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( LAPLACIANFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( LAPLACIANFILTERDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetLaplacianFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalLaplacianFilter(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageSobel(TObject *Sender) { SOBELFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( SOBELFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( SOBELFILTERDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetSobelFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalSobelFilter(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImagePrewit(TObject *Sender) { PREWITTFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( PREWITTFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( PREWITTFILTERDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetPrewittFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalPrewittFilter(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageShitdiff(TObject *Sender) { SHIFTDIFFERENCEFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( SHIFTDIFFERENCEFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( SHIFTDIFFERENCEFILTERDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetShiftDifferenceFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalShiftDifferenceFilter(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageLinesegment(TObject *Sender) { LINESEGMENTFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( LINESEGMENTFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( LINESEGMENTFILTERDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetLineSegmentFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalLineSegmentFilter(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageErosion(TObject *Sender) { EROSIONFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( EROSIONFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( EROSIONFILTERDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetErosionFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalErosionFilter(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageDilation(TObject *Sender) { DILATIONFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( DILATIONFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( DILATIONFILTERDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetDilationFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalDilationFilter(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageFiltermax(TObject *Sender) { MAXFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( MAXFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( MAXFILTERDLGPARAMS ) ; DlgParams.uDim = 10 ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetMaxFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalMaxFilter(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnImageFiltermin(TObject *Sender) { MINFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( MINFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( MINFILTERDLGPARAMS ) ; DlgParams.uDim = 10 ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetMinFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalMinFilter(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorGray8(TObject *Sender) { BeginWaitCursor() ; m_LAniWnd.GrayScale(8); EndWaitCursor() ; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorGray16(TObject *Sender) { BeginWaitCursor() ; m_LAniWnd.GrayScale(16); EndWaitCursor() ; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorGray12(TObject *Sender) { BeginWaitCursor() ; m_LAniWnd.GrayScale(12); EndWaitCursor() ; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorResolution(TObject *Sender) { COLORRESDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( COLORRESDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( COLORRESDLGPARAMS ) ; DlgParams.uDlgFlagsEx = DLG_COLORRES_SHOW_BITALL | DLG_COLORRES_SHOW_DITHER_ALL | DLG_COLORRES_SHOW_PAL_ALL ; DlgParams.uDlgFlags = DLG_COLORRES_SHOW_OPENPALFILE | DLG_COLORRES_SHOW_ORDER; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogColor()->EnableToolbar(true); m_LAniWnd.DialogColor()->SetColorResParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalColorRes(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorWinlevel(TObject *Sender) { /* L_UINT uHigh, uLow, uMid ; L_INT nHighBits, nLowBits ; m_LAniWnd.GetMinMaxBits(&nLowBits, &nHighBits); m_LAniWnd.GetMinMaxVal( &uLow, &uHigh); uMid = (uLow/2) + (uHigh/2); uHigh = uMid + (L_UINT)(uMid * 0.10) ; uLow = (L_UINT)(uMid * 0.90) ; m_LAniWnd.Dialog()->SetStartColor(RGB(255,0,0)); m_LAniWnd.Dialog()->SetEndColor(RGB(0,0,255)); m_LAniWnd.Dialog()->SetHighLevel(uHigh); m_LAniWnd.Dialog()->SetLowLevel(uLow); m_LAniWnd.Dialog()->SetHighBit(nHighBits); m_LAniWnd.Dialog()->SetLowBit(nLowBits); m_LAniWnd.Dialog()->DoModalWindowLevel(Handle); */ } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorBrightness(TObject *Sender) { BRIGHTNESSDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( BRIGHTNESSDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( BRIGHTNESSDLGPARAMS ) ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogColor()->EnableToolbar(true); m_LAniWnd.DialogColor()->SetBrightnessParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalBrightness(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorContrast(TObject *Sender) { CONTRASTDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( CONTRASTDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( CONTRASTDLGPARAMS ) ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogColor()->EnableToolbar(true); m_LAniWnd.DialogColor()->SetContrastParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalContrast(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorHue(TObject *Sender) { REMAPHUEDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(REMAPHUEDLGPARAMS)); DlgParams.uStructSize = sizeof ( REMAPHUEDLGPARAMS ) ; m_LAniWnd.DialogColor()->EnableToolbar(true); m_LAniWnd.DialogColor()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogColor()->SetRemapHueParams(&DlgParams); m_LAniWnd.DialogColor()->DoModalRemapHue(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorSaturation(TObject *Sender) { SATURATIONDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( SATURATIONDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( SATURATIONDLGPARAMS ) ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogColor()->EnableToolbar(true); m_LAniWnd.DialogColor()->SetSaturationParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalSaturation(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorGamma(TObject *Sender) { GAMMAADJUSTMENTDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( GAMMAADJUSTMENTDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( GAMMAADJUSTMENTDLGPARAMS ) ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogColor()->EnableToolbar(true); m_LAniWnd.DialogColor()->SetGammaAdjustmentParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalGammaAdjustment(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorIntensitydetect(TObject *Sender) { INTENSITYDETECTDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( INTENSITYDETECTDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( INTENSITYDETECTDLGPARAMS ) ; DlgParams.uChannel = IDB_CHANNEL_MASTER ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogColor()->EnableToolbar(true); m_LAniWnd.DialogColor()->SetIntensityDetectdParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalIntensityDetect(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorSeprgb(TObject *Sender) { LBitmap LBitmapColorPlanes[3]; m_LAniWnd.ColorSeparate(LBitmapColorPlanes,sizeof(BITMAPHANDLE),COLORSEP_RGB); MainForm->CreateNewWindow("Blue Plane",BITMAP_MODE,&LBitmapColorPlanes[0]); MainForm->CreateNewWindow("Green Plane",BITMAP_MODE,&LBitmapColorPlanes[1]); MainForm->CreateNewWindow("Red Plane",BITMAP_MODE,&LBitmapColorPlanes[2]); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorSepcmyk(TObject *Sender) { LBitmap LBitmapColorPlanes[4]; if(m_LAniWnd.ColorSeparate(LBitmapColorPlanes,sizeof(BITMAPHANDLE),COLORSEP_CMYK)==SUCCESS) { MainForm->CreateNewWindow("Cyan Plane",BITMAP_MODE,&LBitmapColorPlanes[0]); MainForm->CreateNewWindow("Magenta Plane",BITMAP_MODE,&LBitmapColorPlanes[1]); MainForm->CreateNewWindow("Yellow Plane",BITMAP_MODE,&LBitmapColorPlanes[2]); MainForm->CreateNewWindow("Black Plane",BITMAP_MODE,&LBitmapColorPlanes[3]); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorSephsv(TObject *Sender) { LBitmap LBitmapColorPlanes[3]; if(m_LAniWnd.ColorSeparate(LBitmapColorPlanes,sizeof(BITMAPHANDLE),COLORSEP_HSV)==SUCCESS) { MainForm->CreateNewWindow("Hue Plane",BITMAP_MODE,&LBitmapColorPlanes[0]); MainForm->CreateNewWindow("Saturation Plane",BITMAP_MODE,&LBitmapColorPlanes[1]); MainForm->CreateNewWindow("Value Plane",BITMAP_MODE,&LBitmapColorPlanes[2]); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorSephls(TObject *Sender) { LBitmap LBitmapColorPlanes[3]; if(m_LAniWnd.ColorSeparate(LBitmapColorPlanes,sizeof(BITMAPHANDLE),COLORSEP_HLS)==SUCCESS) { MainForm->CreateNewWindow("Hue Plane",BITMAP_MODE,&LBitmapColorPlanes[0]); MainForm->CreateNewWindow("Lightness Plane",BITMAP_MODE,&LBitmapColorPlanes[1]); MainForm->CreateNewWindow("Saturation Plane",BITMAP_MODE,&LBitmapColorPlanes[2]); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorSepcmy(TObject *Sender) { LBitmap LBitmapColorPlanes[3]; if(m_LAniWnd.ColorSeparate(LBitmapColorPlanes,sizeof(BITMAPHANDLE),COLORSEP_CMY)==SUCCESS) { MainForm->CreateNewWindow("Cyan Plane",BITMAP_MODE,&LBitmapColorPlanes[0]); MainForm->CreateNewWindow("Magenta Plane",BITMAP_MODE,&LBitmapColorPlanes[1]); MainForm->CreateNewWindow("Yellow Plane",BITMAP_MODE,&LBitmapColorPlanes[2]); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorSepalpha(TObject *Sender) { LBitmap Bitmap; BeginWaitCursor() ; Bitmap.CreateAlphaBitmap(m_LAniWnd); MainForm->CreateNewWindow("Alpha Bitmap",BITMAP_MODE,&Bitmap); EndWaitCursor() ; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorInvert(TObject *Sender) { BeginWaitCursor() ; m_LAniWnd.Invert(); EndWaitCursor() ; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorFill(TObject *Sender) { if(MainForm->ColorDialog->Execute()) { BeginWaitCursor() ; m_LAniWnd.Fill(MainForm->ColorDialog->Color); EndWaitCursor() ; } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorSolarize(TObject *Sender) { SOLARIZEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( SOLARIZEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( SOLARIZEDLGPARAMS ) ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogColor()->EnableToolbar(true); m_LAniWnd.DialogColor()->SetSolarizeParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalSolarize(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnColorUnique(TObject *Sender) { L_UINT32 ulColors; if(m_LAniWnd.GetColorCount(&ulColors)==SUCCESS) { char szText[40]; wsprintf(szText,"Bitmap contains %lu unique colors", ulColors); ::MessageBox(Handle,szText,"color count",MB_OK); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnOpen(TObject *Sender) { MainForm->OnOpen(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnFileAllError(TObject *Sender) { MainForm->OnFileAllError(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnFileLastError(TObject *Sender) { MainForm->OnFileLastError(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnTwainSelsource(TObject *Sender) { MainForm->OnTwainSelsource(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnTwainAcquire(TObject *Sender) { MainForm->OnTwainAcquire(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnIsisSelsource(TObject *Sender) { MainForm->OnIsisSelsource(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnIsisAcquire(TObject *Sender) { MainForm->OnIsisAcquire(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnIsisAcquiremulti(TObject *Sender) { MainForm->OnIsisAcquiremulti(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::FileExitItemClick(TObject *Sender) { MainForm->FileExitItemClick(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnCaptureScreen(TObject *Sender) { MainForm->OnCaptureScreen(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnCaptureActiveclient(TObject *Sender) { MainForm->OnCaptureActiveclient(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnCaptureActivewin(TObject *Sender) { MainForm->OnCaptureActivewin(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnCaptureWinundercursor(TObject *Sender) { MainForm->OnCaptureWinundercursor(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnCaptureMenu(TObject *Sender) { MainForm->OnCaptureMenu(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnCaptureObject(TObject *Sender) { MainForm->OnCaptureObject(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnCaptureArea(TObject *Sender) { MainForm->OnCaptureArea(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnCaptureMousecursor(TObject *Sender) { MainForm->OnCaptureMousecursor(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnCaptureWallpaper(TObject *Sender) { MainForm->OnCaptureWallpaper(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnCaptureExetree(TObject *Sender) { MainForm->OnCaptureExetree(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnCaptureExetabbed(TObject *Sender) { MainForm->OnCaptureExetabbed(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnCaptureImmediate(TObject *Sender) { MainForm->OnCaptureImmediate(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnCaptureCaptop(TObject *Sender) { MainForm->OnCaptureCaptop(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnCaptureAreaop(TObject *Sender) { MainForm->OnCaptureAreaop(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnCaptureObjectop(TObject *Sender) { MainForm->OnCaptureObjectop(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnCaptureStop(TObject *Sender) { MainForm->OnCaptureStop(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::WindowCascadeItemClick(TObject *Sender) { MainForm->Cascade(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::WindowTileItemClick(TObject *Sender) { MainForm->Tile(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::WindowArrangeItemClick(TObject *Sender) { MainForm->ArrangeIcons(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnClose(TObject *Sender) { Close(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnCloseAll(TObject *Sender) { int i; //---- Must be done backwards through the MDIChildren array ---- for (i=MainForm->MDIChildCount-1; i >= 0; i--) MainForm->MDIChildren[i]->Close(); } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefPalauto(TObject *Sender) { if(m_LAniWnd.IsLocalSettingsEnabled()) { m_nAutoPalette = 0; m_LAniWnd.SetDisplayMode(DISPLAYMODE_FIXEDPALETTE| DISPLAYMODE_NETSCAPEPALETTE,0); } else { MainForm->OnPrefPalauto(Sender); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefPalfixed(TObject *Sender) { if(m_LAniWnd.IsLocalSettingsEnabled()) { m_nAutoPalette = DISPLAYMODE_FIXEDPALETTE; m_LAniWnd.SetDisplayMode(DISPLAYMODE_FIXEDPALETTE|DISPLAYMODE_NETSCAPEPALETTE, DISPLAYMODE_FIXEDPALETTE); } else { MainForm->OnPrefPalfixed(Sender); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefPalnetscape(TObject *Sender) { if(m_LAniWnd.IsLocalSettingsEnabled()) { m_nAutoPalette = DISPLAYMODE_NETSCAPEPALETTE; m_LAniWnd.SetDisplayMode(DISPLAYMODE_FIXEDPALETTE|DISPLAYMODE_NETSCAPEPALETTE, DISPLAYMODE_FIXEDPALETTE|DISPLAYMODE_NETSCAPEPALETTE); } else { MainForm->OnPrefPalnetscape(Sender); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefDithrordered(TObject *Sender) { if(m_LAniWnd.IsLocalSettingsEnabled()) { m_nOrderedDither = DISPLAYMODE_ORDEREDDITHER; m_LAniWnd.SetDisplayMode(DISPLAYMODE_ORDEREDDITHER,DISPLAYMODE_ORDEREDDITHER); } else { MainForm->OnPrefDithrordered(Sender); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefDithrerrdiff(TObject *Sender) { if(m_LAniWnd.IsLocalSettingsEnabled()) { m_nOrderedDither = 0; m_LAniWnd.SetDisplayMode(DISPLAYMODE_ORDEREDDITHER,0); } else { MainForm->OnPrefDithrerrdiff(Sender); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefBitnormal(TObject *Sender) { if(m_LAniWnd.IsLocalSettingsEnabled()) { m_LAniWnd.SetDisplayMode(DISPLAYMODE_FAVORBLACK|DISPLAYMODE_SCALETOGRAY,0); m_nBitonalScaling = 0; } else { MainForm->OnPrefBitnormal(Sender); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefBitfavor(TObject *Sender) { if(m_LAniWnd.IsLocalSettingsEnabled()) { m_nBitonalScaling = DISPLAYMODE_FAVORBLACK; m_LAniWnd.SetDisplayMode(DISPLAYMODE_FAVORBLACK|DISPLAYMODE_SCALETOGRAY, DISPLAYMODE_FAVORBLACK); } else { MainForm->OnPrefBitfavor(Sender); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefBitscalegray(TObject *Sender) { if(m_LAniWnd.IsLocalSettingsEnabled()) { m_nBitonalScaling = DISPLAYMODE_SCALETOGRAY; m_LAniWnd.SetDisplayMode(DISPLAYMODE_SCALETOGRAY|DISPLAYMODE_FAVORBLACK, DISPLAYMODE_SCALETOGRAY); } else { MainForm->OnPrefBitscalegray(Sender); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefPaintwhileloadNew(TObject *Sender) { MainForm->OnPrefPaintwhileloadNew(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefPaintwhileloadForCur(TObject *Sender) { m_LAniWnd.EnablePaintWhileLoad(!m_LAniWnd.IsPaintWhileLoadEnabled()); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefLoadcompressed(TObject *Sender) { MainForm->OnPrefLoadcompressed(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefLoadrotated(TObject *Sender) { MainForm->OnPrefLoadrotated(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefPictloadall(TObject *Sender) { MainForm->OnPrefPictloadall(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefPictresize(TObject *Sender) { MainForm->OnPrefPictresize(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefPictresample(TObject *Sender) { MainForm->OnPrefPictresample(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefPreview(TObject *Sender) { MainForm->OnPrefPreview(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefEnablescroll(TObject *Sender) { m_LAniWnd.EnableAutoScroll(!m_LAniWnd.IsAutoScrollEnabled()); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefEnablekeyboard(TObject *Sender) { m_LAniWnd.EnableKeyBoard(!m_LAniWnd.IsKeyBoardEnabled()); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefLocalsettings(TObject *Sender) { m_LAniWnd.EnableLocalSettings(!m_LAniWnd.IsLocalSettingsEnabled()); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnPrefEnabledragfile(TObject *Sender) { m_LAniWnd.EnableDragAcceptFiles(!m_LAniWnd.IsDragAcceptFilesEnabled()); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnAniCreate(TObject *Sender) { if(CtrAnimationDlg->ShowModal()==mrOk) MainForm->CreateBitmapListWindow("Animation",&CtrAnimationDlg->m_BitmapList); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnAniFirst(TObject *Sender) { m_LAniWnd.MoveFirstFrame(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnAniPrevious(TObject *Sender) { m_LAniWnd.MovePreviousFrame(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnAniNext(TObject *Sender) { m_LAniWnd.MoveNextFrame(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnAniLast(TObject *Sender) { m_LAniWnd.MoveLastFrame(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnAniOptimize(TObject *Sender) { m_LAniWnd.DoModalColorResItems(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnAniPlay(TObject *Sender) { m_LAniWnd.PlayAnimation(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnAniStop(TObject *Sender) { m_LAniWnd.StopAnimation(); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnAniLoop(TObject *Sender) { m_LAniWnd.EnableLoop(!m_LAniWnd.IsLoopEnabled()); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnAniSettings(TObject *Sender) { L_INT nLeft,nTop; L_UINT uTransparent; L_UINT uIndex = m_LAniWnd.GetCurrentIndex(); m_LAniWnd.MoveToFrame(uIndex); AnimtionStng->DelayEdit->Text = m_LAniWnd.GetDelay(uIndex); AnimtionStng->m_nDisposalMethod = m_LAniWnd.GetDisposalMethod(uIndex); m_LAniWnd.GetPosition(&nLeft,&nTop,uIndex); AnimtionStng->LeftEdit->Text = nLeft; AnimtionStng->TopEdit->Text = nTop; AnimtionStng->WaitChk->Checked = m_LAniWnd.IsWaitingForUserInput(uIndex); AnimtionStng->ApplyChk->Checked = FALSE; m_LAniWnd.IsTransparencyEnabled(&uTransparent, &AnimtionStng->m_crTransparent, uIndex); AnimtionStng->TransparentChk->Checked = uTransparent; if(AnimtionStng->ShowModal()==mrOk) { if (AnimtionStng->ApplyChk->Checked) uIndex = -1; m_LAniWnd.SetDelay(AnimtionStng->DelayEdit->Text.ToInt(), uIndex); m_LAniWnd.SetDisposalMethod(AnimtionStng->m_nDisposalMethod, uIndex); m_LAniWnd.SetPosition(AnimtionStng->LeftEdit->Text.ToInt(), AnimtionStng->TopEdit->Text.ToInt(),uIndex); m_LAniWnd.WaitForUserInput(AnimtionStng->WaitChk->Checked, uIndex); m_LAniWnd.EnableTransparency(AnimtionStng->TransparentChk->Checked,AnimtionStng->m_crTransparent, uIndex); } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::HelpAboutItemClick(TObject *Sender) { MainForm->HelpAboutItemClick(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::onUpdateFileShow(TObject *Sender) { ChildMenu_ShowAllErrors->Enabled = LBase::GetErrorsNumber(); ChildMenu_ShowLastError->Enabled = LBase::GetErrorsNumber(); ChildMenu_TWAINSelectsource->Enabled = MainForm->m_bTwainAvailable; ChildMenu_TWAINAcquireMulti->Enabled = (MainForm->m_bTwainAvailable&&!MainForm->m_bTwainStarted); ChildMenu_ISISSelectSource->Enabled = MainForm->m_bIsisAvailable; ChildMenu_ISISAcquire->Enabled = (MainForm->m_bIsisAvailable&&!MainForm->m_bIsiStarted); ChildMenu_ISISAcquireMulti->Enabled = (MainForm->m_bIsisAvailable&&!MainForm->m_bIsiStarted); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::onUpdateEdit(TObject *Sender) { L_BOOL bIsAnimationPlaying = m_LAniWnd.IsPlaying(); L_BOOL bIsClipboardRedy = m_LAniWnd.IsClipboardReady(); ChildMenu_Paste->Enabled = bIsClipboardRedy; ChildMenu_Copy->Enabled = !bIsAnimationPlaying; ChildMenu_CopyaFloater->Enabled = !bIsAnimationPlaying; ChildMenu_PasteAsFloater->Enabled = (!bIsAnimationPlaying&&bIsClipboardRedy); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::onUpdateCapture(TObject *Sender) { LUserScrCapture* pLUserScreenCapture; pLUserScreenCapture = (LUserScrCapture*)MainForm->m_LUserBitmap.ScreenCapture(); L_BOOL bIsCaptureActive = pLUserScreenCapture->IsCaptureActive(); ChildMenu_FullScreen->Enabled = !bIsCaptureActive; ChildMenu_FullScreen->Checked = (pLUserScreenCapture->m_nCaptureType==CAPTURE_FULLSCREEN); ChildMenu_ActiveClient->Enabled = !bIsCaptureActive; ChildMenu_ActiveClient->Checked = (pLUserScreenCapture->m_nCaptureType==CAPTURE_ACTIVECLIENT); ChildMenu_ActiveWindow->Enabled = !bIsCaptureActive; ChildMenu_ActiveWindow->Checked = (pLUserScreenCapture->m_nCaptureType==CAPTURE_ACTIVEWINDOW); ChildMenu_WindowUnderCursor->Enabled = !bIsCaptureActive; ChildMenu_WindowUnderCursor->Checked = (pLUserScreenCapture->m_nCaptureType==CAPTURE_WINDOWUNDERCURSOR); ChildMenu_MenuUnderCursor->Enabled = !bIsCaptureActive; ChildMenu_MenuUnderCursor->Checked = (pLUserScreenCapture->m_nCaptureType==CAPTURE_MENUUNDERCURSOR); ChildMenu_SelectedObject->Enabled = !bIsCaptureActive; ChildMenu_SelectedObject->Checked = (pLUserScreenCapture->m_nCaptureType==CAPTURE_SELECTEDOBJECT); ChildMenu_SelectedArea->Enabled = !bIsCaptureActive; ChildMenu_SelectedArea->Checked = (pLUserScreenCapture->m_nCaptureType==CAPTURE_SELECTEDAREA); ChildMenu_MouseCursor->Enabled = !bIsCaptureActive; ChildMenu_MouseCursor->Checked = (pLUserScreenCapture->m_nCaptureType==CAPTURE_MOUSECURSOR); ChildMenu_Wallpaper->Enabled = !bIsCaptureActive; ChildMenu_Wallpaper->Checked = (pLUserScreenCapture->m_nCaptureType==CAPTURE_WALLPAPER); ChildMenu_FromExeDialogTree->Enabled = !bIsCaptureActive; ChildMenu_FromExeDialogTree->Checked = (pLUserScreenCapture->m_nCaptureType==CAPTURE_FROMEXEDLGTREE); ChildMenu_FromExeDialogTabbedView->Enabled = !bIsCaptureActive; ChildMenu_FromExeDialogTabbedView->Checked = (pLUserScreenCapture->m_nCaptureType==CAPTURE_FROMEXEDLGTABBEDVIEW); ChildMenu_ImmediateCapture->Checked = pLUserScreenCapture->m_bImmediateCapture; ChildMenu_CaptureOptions->Enabled = !bIsCaptureActive; ChildMenu_AreaOptions->Enabled = !bIsCaptureActive; ChildMenu_ObjectOptions->Enabled = !bIsCaptureActive; ChildMenu_StopCapture->Enabled = bIsCaptureActive; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::onUpdatePreferences(TObject *Sender) { L_BOOL bIsAnimationPlaying = m_LAniWnd.IsPlaying(); if(m_LAniWnd.IsLocalSettingsEnabled()) { ChildMenu_PrefAuto->Checked = (m_nAutoPalette==0); ChildMenu_Fixed->Checked = (m_nAutoPalette==DISPLAYMODE_FIXEDPALETTE); ChildMenu_UseNetscape->Checked = (m_nAutoPalette==DISPLAYMODE_NETSCAPEPALETTE); ChildMenu_Ordered->Checked = (m_nOrderedDither!=0); ChildMenu_ErrorDiffusion->Checked = (m_nOrderedDither==0); ChildMenu_PrefNormal->Checked = (m_nBitonalScaling==0); ChildMenu_FavorBlack->Checked = (m_nBitonalScaling==DISPLAYMODE_FAVORBLACK); ChildMenu_ScaleToGray->Checked = (m_nBitonalScaling==DISPLAYMODE_SCALETOGRAY); } else { ChildMenu_PrefAuto->Checked = (MainForm->m_nAutoPalette==0); ChildMenu_Fixed->Checked = (MainForm->m_nAutoPalette==DISPLAYMODE_FIXEDPALETTE); ChildMenu_UseNetscape->Checked = (MainForm->m_nAutoPalette==DISPLAYMODE_NETSCAPEPALETTE); ChildMenu_Ordered->Checked = (MainForm->m_nOrderedDither!=0); ChildMenu_ErrorDiffusion->Checked = (MainForm->m_nOrderedDither==0); ChildMenu_PrefNormal->Checked = (MainForm->m_nBitonalScaling==0); ChildMenu_FavorBlack->Checked = (MainForm->m_nBitonalScaling==DISPLAYMODE_FAVORBLACK); ChildMenu_ScaleToGray->Checked = (MainForm->m_nBitonalScaling==DISPLAYMODE_SCALETOGRAY); } ChildMenu_ForCurrentWindow->Checked = (m_LAniWnd.IsPaintWhileLoadEnabled()); ChildMenu_ForNewWindow->Checked = (MainForm->m_bPaintWhileLoad!=0); ChildMenu_1BitCompressed->Checked = (MainForm->m_bLoadCompressed!=0); ChildMenu_Rotated->Checked = (MainForm->m_bLoadRotated!=0); ChildMenu_LoadAll->Checked = (MainForm->m_bPrefPictLoadall!=0); ChildMenu_PrefResize->Checked = (MainForm->m_bPrefPictResize!=0); ChildMenu_PrefResample->Checked = (MainForm->m_bPrefPictResample!=0); ChildMenu_ShowOpenPreview->Checked = (MainForm->m_EnablePreview); ChildMenu_EnableScrollBar->Enabled = !bIsAnimationPlaying; ChildMenu_EnableScrollBar->Checked = (m_LAniWnd.IsAutoScrollEnabled()); ChildMenu_EnableKeyboard->Enabled = !bIsAnimationPlaying; ChildMenu_EnableKeyboard->Checked = (m_LAniWnd.IsKeyBoardEnabled()); ChildMenu_UseLocalSettings->Checked = (m_LAniWnd.IsLocalSettingsEnabled()); ChildMenu_EnableDragFile->Checked = (m_LAniWnd.IsDragAcceptFilesEnabled()); ChildMenu_PicturizeCallBack->Checked = (m_bPictrezeCallback!=0); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::onPicturizeCallBack(TObject *Sender) { m_bPictrezeCallback = !m_bPictrezeCallback; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::onUpdateColor(TObject *Sender) { L_BOOL bIsAnimationPlaying = m_LAniWnd.IsPlaying(); ChildMenu_8Bit->Enabled = !bIsAnimationPlaying; ChildMenu_12Bit->Enabled = !bIsAnimationPlaying; ChildMenu_16Bit->Enabled = !bIsAnimationPlaying; ChildMenu_ColorResolution->Enabled = !bIsAnimationPlaying; ChildMenu_Brightness->Enabled = !bIsAnimationPlaying; ChildMenu_Contrast->Enabled = !bIsAnimationPlaying; ChildMenu_Hue->Enabled = !bIsAnimationPlaying; ChildMenu_Saturation->Enabled = !bIsAnimationPlaying; ChildMenu_Gamma->Enabled = !bIsAnimationPlaying; ChildMenu_Detect->Enabled = !bIsAnimationPlaying; ChildMenu_RGB->Enabled = !bIsAnimationPlaying; ChildMenu_CMYK->Enabled = !bIsAnimationPlaying; ChildMenu_HSV->Enabled = !bIsAnimationPlaying; ChildMenu_HLS->Enabled = !bIsAnimationPlaying; ChildMenu_CMY->Enabled = !bIsAnimationPlaying; ChildMenu_Alpha->Enabled = !bIsAnimationPlaying; ChildMenu_Invert->Enabled = !bIsAnimationPlaying; ChildMenu_Fill->Enabled = !bIsAnimationPlaying; ChildMenu_Solarize->Enabled = !bIsAnimationPlaying; ChildMenu_UniqueColors->Enabled = !bIsAnimationPlaying; ChildMenu_WindowLevel->Enabled = ((!bIsAnimationPlaying)&& (((m_LAniWnd.IsGrayScale()!=GRAY_NO)&& ((m_LAniWnd.LBitmapBase::GetBitsPerPixel()==12)|| (m_LAniWnd.LBitmapBase::GetBitsPerPixel()==16))))); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::OnUpdateImage(TObject *Sender) { L_BOOL bIsAnimationPlaying = m_LAniWnd.IsPlaying(); L_BOOL bHasRgn = m_LAniWnd.HasRgn(); ChildMenu_Flip->Enabled = !bIsAnimationPlaying; ChildMenu_Reverse->Enabled = !bIsAnimationPlaying; ChildMenu_Fast90Clockwise->Enabled = (!bHasRgn&&!bIsAnimationPlaying); ChildMenu_Fast180Clockwise->Enabled = (!bHasRgn&&!bIsAnimationPlaying); ChildMenu_Fast270Clockwise->Enabled = (!bHasRgn&&!bIsAnimationPlaying); ChildMenu_90Clockwise->Enabled = !bIsAnimationPlaying; ChildMenu_180Clockwise->Enabled = !bIsAnimationPlaying; ChildMenu_270Clockwise->Enabled = !bIsAnimationPlaying; ChildMenu_AnyAngle->Enabled = !bIsAnimationPlaying; ChildMenu_Shear->Enabled = !bIsAnimationPlaying; ChildMenu_Deskew->Enabled = !bIsAnimationPlaying; ChildMenu_AutoTrim->Enabled = !bIsAnimationPlaying; ChildMenu_Resize->Enabled = !bIsAnimationPlaying; ChildMenu_Postarize->Enabled = !bIsAnimationPlaying; ChildMenu_Mosaic->Enabled = !bIsAnimationPlaying; ChildMenu_Average->Enabled = !bIsAnimationPlaying; ChildMenu_Median->Enabled = !bIsAnimationPlaying; ChildMenu_Sharpen->Enabled = !bIsAnimationPlaying; ChildMenu_AddNoise->Enabled = !bIsAnimationPlaying; ChildMenu_Emboss->Enabled = !bIsAnimationPlaying; ChildMenu_Underlay->Enabled = !bIsAnimationPlaying; ChildMenu_Oilify->Enabled = !bIsAnimationPlaying; ChildMenu_Gradient->Enabled = !bIsAnimationPlaying; ChildMenu_Laplacian->Enabled = !bIsAnimationPlaying; ChildMenu_Sobel->Enabled = !bIsAnimationPlaying; ChildMenu_Prewit->Enabled = !bIsAnimationPlaying; ChildMenu_ShiftDifference->Enabled = !bIsAnimationPlaying; ChildMenu_LineSegment->Enabled = !bIsAnimationPlaying; ChildMenu_Erosion->Enabled = !bIsAnimationPlaying; ChildMenu_Dilation->Enabled = !bIsAnimationPlaying; ChildMenu_Max->Enabled = !bIsAnimationPlaying; ChildMenu_Min->Enabled = !bIsAnimationPlaying; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::onUpdateTool(TObject *Sender) { L_BOOL bIsAnimationPlaying = m_LAniWnd.IsPlaying(); L_INT nToolType = m_LAniWnd.GetToolType(); L_INT nRegionType = m_LAniWnd.GetRegionType(); L_INT nFrameType = m_LAniWnd.GetRgnFrameType(); ChildMenu_None->Checked = (nToolType==TOOL_USERMODE); ChildMenu_PanImage->Checked = (nToolType==TOOL_PANIMAGE); ChildMenu_ZoomRect->Enabled = !bIsAnimationPlaying; ChildMenu_ZoomRect->Checked = (nToolType==TOOL_ZOOMRECT); ChildMenu_ZoomonMouseClick->Enabled = !bIsAnimationPlaying; ChildMenu_ZoomonMouseClick->Checked = (nToolType==TOOL_ZOOM_ON_MOUSECLICK); ChildMenu_Triangle->Enabled = !bIsAnimationPlaying; ChildMenu_Triangle->Checked = ((nToolType==TOOL_REGION)&&(nRegionType==REGION_TYPE_TRIANGLE)); ChildMenu_Rectangle->Enabled = !bIsAnimationPlaying; ChildMenu_Rectangle->Checked = ((nToolType==TOOL_REGION)&&(nRegionType==REGION_TYPE_RECT)); ChildMenu_RoundedRectangle->Enabled = !bIsAnimationPlaying; ChildMenu_RoundedRectangle->Checked = ((nToolType==TOOL_REGION)&&(nRegionType==REGION_TYPE_ROUNDRECT)); ChildMenu_Ellipse->Enabled = !bIsAnimationPlaying; ChildMenu_Ellipse->Checked = ((nToolType==TOOL_REGION)&&(nRegionType==REGION_TYPE_ELIPSE)); ChildMenu_FreeHand->Enabled = !bIsAnimationPlaying; ChildMenu_FreeHand->Checked = ((nToolType==TOOL_REGION)&&(nRegionType==REGION_TYPE_FREE_HAND)); ChildMenu_Polygon->Enabled = !bIsAnimationPlaying; ChildMenu_Polygon->Checked = ((nToolType==TOOL_REGION)&&(nRegionType==REGION_TYPE_POLYGON)); ChildMenu_CancelRegion->Enabled = (!bIsAnimationPlaying&&m_LAniWnd.HasRgn()); ChildMenu_AnimatedFrame->Enabled = !bIsAnimationPlaying; ChildMenu_AnimatedFrame->Checked = (nFrameType==RGNFRAME_ANIMATED); ChildMenu_StaticFrame->Enabled = !bIsAnimationPlaying; ChildMenu_StaticFrame->Checked = (nFrameType==RGNFRAME_STATIC); ChildMenu_WithoutFrame->Enabled = !bIsAnimationPlaying; ChildMenu_WithoutFrame->Checked = (nFrameType==RGNFRAME_NONE); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::onUpdateView(TObject *Sender) { L_BOOL bIsAnimationPlaying = m_LAniWnd.IsPlaying(); L_INT nZoomMode = m_LAniWnd.GetZoomMode(); ChildMenu_Normal->Checked = (nZoomMode==ZOOM_NORMAL); ChildMenu_StretchToWindow->Checked = (nZoomMode==ZOOM_STRETCH); ChildMenu_FitToWindow->Checked = (nZoomMode==ZOOM_FIT); ChildMenu_FitToHeight->Checked = (nZoomMode==ZOOM_FITHEIGHT); ChildMenu_FitToWidth->Checked = (nZoomMode==ZOOM_FITWIDTH); ChildMenu_Zoom->Enabled = !bIsAnimationPlaying; ChildMenu_CenterOnZoom->Checked = m_LAniWnd.IsCenterOnZoomEnabled(); ChildMenu_PaintEffect->Enabled = !bIsAnimationPlaying; ChildMenu_PaintTransition->Enabled = !bIsAnimationPlaying; ChildMenu_PaintGradient->Enabled = !bIsAnimationPlaying; ChildMenu_PaintPattern->Enabled = !bIsAnimationPlaying; ChildMenu_EnablePaintEffect->Enabled = !bIsAnimationPlaying; ChildMenu_EnablePaintEffect->Checked = (m_LAniWnd.IsPaintEffectEnabled()); ChildMenu_EnableTransition->Enabled = !bIsAnimationPlaying; ChildMenu_EnableTransition->Checked = (m_LAniWnd.IsPaintTransitionEnabled()); ChildMenu_EnableGradient->Checked = (m_LAniWnd.IsDrawGradientEnabled()); ChildMenu_EnablePattern->Enabled = (!m_LAniWnd.IsDrawGradientEnabled()); ChildMenu_EnablePattern->Checked = (m_LAniWnd.IsDrawPatternEnabled()); ChildMenu_PanWindow->Checked = (m_LAniWnd.IsPanWndCreated()); ChildMenu_Toolbar->Checked=MainForm->SpeedPanel->Visible; ChildMenu_StatusBar->Checked=MainForm->StatusBar->Visible; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::onUpdateAnimation(TObject *Sender) { L_BOOL bIsAnimationPlaying = m_LAniWnd.IsPlaying(); L_BOOL bIsValidAnimation = m_LAniWnd.IsValidAnimation(); ChildMenu_Create->Enabled = (!bIsAnimationPlaying); ChildMenu_FirstFrame->Enabled = (bIsValidAnimation&&!bIsAnimationPlaying&&!m_LAniWnd.IsFirstFrame()); ChildMenu_PreviousFrame->Enabled = (!bIsAnimationPlaying&&m_LAniWnd.IsPreviousFrameAvailable()); ChildMenu_NextFrame->Enabled = (bIsValidAnimation&&!bIsAnimationPlaying&&m_LAniWnd.IsNextFrameAvailable()); ChildMenu_LastFrame->Enabled = (bIsValidAnimation&&!bIsAnimationPlaying&&!m_LAniWnd.IsLastFrame()); ChildMenu_OptimizeColors->Enabled = (bIsValidAnimation&&!bIsAnimationPlaying&&(m_LAniWnd.GetCount()>1)); ChildMenu_Play->Enabled = (bIsValidAnimation&&!bIsAnimationPlaying); ChildMenu_Stopt->Enabled = (bIsAnimationPlaying); ChildMenu_Loop->Enabled = (bIsValidAnimation&&!bIsAnimationPlaying); ChildMenu_Loop->Checked = (bIsValidAnimation&&m_LAniWnd.IsLoopEnabled()); ChildMenu_Settings->Enabled = (bIsValidAnimation&&!bIsAnimationPlaying&&(m_LAniWnd.GetCount()>1)); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::WndProc(Messages::TMessage &Message) { switch(Message.Msg) { case LBW_ZOOM: MainForm->ShowHint(0); return; case WM_CHILDACTIVATE: case WM_SETFOCUS: if(m_LAniWnd.GetBitmapWnd()!=NULL) { ::SetFocus(m_LAniWnd.GetBitmapWnd()); if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } break; } TForm::WndProc(Message); } void __fastcall TMDIChild::OnFileColorMerge(TObject *Sender) { MainForm->OnFileColorMerge(Sender); } //--------------------------------------------------------------------------- void TMDIChild::BeginWaitCursor() { m_bWaitCursor = TRUE; MainForm->Cursor = crHourGlass; MainForm->Enabled = FALSE; Cursor = crHourGlass; Enabled = FALSE; } void TMDIChild::EndWaitCursor() { MainForm->Cursor = crArrow; MainForm->Enabled = TRUE; Cursor = crArrow; Enabled = TRUE; } bool __fastcall TMDIChild::PaletteChanged(bool Foreground) { if(Foreground) { if(m_LAniWnd.HandlePalette(WM_QUERYNEWPALETTE,0,0)==FALSE) m_LAniWnd.Repaint(); } else { if(m_LAniWnd.HandlePalette( WM_PALETTECHANGED, (MainForm->ActiveMDIChild) ?(WPARAM)((TMDIChild*)(MainForm->ActiveMDIChild))->m_LAniWnd.GetBitmapWnd() :0, 0 )==FALSE ) m_LAniWnd.Repaint(); } return TRUE; } void __fastcall TMDIChild::ToolbarClick(TObject *Sender) { MainForm->ToolbarClick(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::StatusBarClick(TObject *Sender) { MainForm->StatusBarClick(Sender); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::MotionBlur1Click(TObject *Sender) { MOTIONBLURDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( MOTIONBLURDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof(MOTIONBLURDLGPARAMS); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetMotionBlurParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalMotionBlur(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::JPEG1Click(TObject *Sender) { JPEGWEBTUNERDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(JPEGWEBTUNERDLGPARAMS)); DlgParams.uStructSize = sizeof ( JPEGWEBTUNERDLGPARAMS ) ; DlgParams.uDlgFlags = DLG_JPEGWEBTUNER_SHOW_EXPORT | DLG_JPEGWEBTUNER_SHOW_INFORMATION | DLG_JPEGWEBTUNER_SHOW_OPTIONS | DLG_JPEGWEBTUNER_SHOW_SAVETHUMBNAIL ; m_LAniWnd.DialogWeb()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogWeb()->EnableToolbar(true); m_LAniWnd.DialogWeb()->EnableAutoProcess(true); m_LAniWnd.DialogWeb()->SetJPEGWebTunerParams(&DlgParams); m_LAniWnd.DialogWeb()->DoModalJPEGWebTuner(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::PNG1Click(TObject *Sender) { PNGWEBTUNERDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(PNGWEBTUNERDLGPARAMS)); DlgParams.uStructSize = sizeof ( PNGWEBTUNERDLGPARAMS ) ; DlgParams.uDlgFlags = DLG_PNGWEBTUNER_SHOW_EXPORT| DLG_PNGWEBTUNER_SHOW_INFORMATION | DLG_PNGWEBTUNER_SHOW_TOOL_COLORPICKER | DLG_PNGWEBTUNER_SHOW_TRANSPARENCY | DLG_PNGWEBTUNER_SHOW_ADDWINDOWCOLOR ; m_LAniWnd.DialogWeb()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogWeb()->EnableToolbar(true); m_LAniWnd.DialogWeb()->EnableAutoProcess(true); m_LAniWnd.DialogWeb()->SetPNGWebTunerParams(&DlgParams); m_LAniWnd.DialogWeb()->DoModalPNGWebTuner(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::GIF1Click(TObject *Sender) { GIFWEBTUNERDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(GIFWEBTUNERDLGPARAMS )); DlgParams.uStructSize = sizeof ( GIFWEBTUNERDLGPARAMS ) ; DlgParams.uDlgFlags = DLG_GIFWEBTUNER_SHOW_EXPORT | DLG_GIFWEBTUNER_SHOW_INFORMATION | DLG_GIFWEBTUNER_SHOW_TOOL_COLORPICKER | DLG_GIFWEBTUNER_SHOW_TRANSPARENCY | DLG_GIFWEBTUNER_SHOW_OPTIONS | DLG_GIFWEBTUNER_SHOW_ADDWINDOWCOLOR ; m_LAniWnd.DialogWeb()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogWeb()->EnableToolbar(true); m_LAniWnd.DialogWeb()->EnableAutoProcess(true); m_LAniWnd.DialogWeb()->SetGIFWebTunerParams(&DlgParams); m_LAniWnd.DialogWeb()->DoModalGIFWebTuner(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::HTMLMapCreator1Click(TObject *Sender) { HTMLMAPPERDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(HTMLMAPPERDLGPARAMS)); DlgParams.uStructSize = sizeof ( HTMLMAPPERDLGPARAMS ) ; m_LAniWnd.DialogWeb()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogWeb()->EnableToolbar(true); m_LAniWnd.DialogWeb()->EnableAutoProcess(true); m_LAniWnd.DialogWeb()->SetHTMLMapperParams(&DlgParams); m_LAniWnd.DialogWeb()->DoModalHTMLMapper(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::FileFormatAssociations1Click(TObject *Sender) { FILESASSOCIATIONDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(FILESASSOCIATIONDLGPARAMS)); DlgParams.uStructSize = sizeof ( FILESASSOCIATIONDLGPARAMS ) ; DlgParams.pszFormats = NULL ; DlgParams.pszServerAppName = REGISTRYKEY_SERVER_NAME ; DlgParams.pszSelectedExt = NULL ; m_LAniWnd.DialogFile()->SetFilesAssociationParams(&DlgParams); m_LAniWnd.DialogFile()->DoModalFilesAssociation(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::PrintStitchedImages1Click(TObject *Sender) { L_INT nRet; PRINTSTITCHEDIMAGESDLGPARAMS DlgParams; ZeroMemory ( &DlgParams, sizeof (PRINTSTITCHEDIMAGESDLGPARAMS)) ; GETDIRECTORYDLGPARAMS DirectoryDlgParams ; ZeroMemory ( &DirectoryDlgParams, sizeof (GETDIRECTORYDLGPARAMS)) ; DirectoryDlgParams.uStructSize = sizeof (GETDIRECTORYDLGPARAMS); DirectoryDlgParams.pszDirectory = (L_TCHAR *)malloc ( L_MAXPATH * 2 ) ; DirectoryDlgParams.pszTitle = "Select Images Folder" ; DirectoryDlgParams.nBuffSize = L_MAXPATH ; DirectoryDlgParams.pszFilter = NULL ; DirectoryDlgParams.nFilterIndex = 1 ; m_LAniWnd.DialogFile()->SetDirectoryParams(&DirectoryDlgParams); nRet = m_LAniWnd.DialogFile()->DoModalGetDirectory(Handle) ; // Get the directory if ( nRet == SUCCESS_DLG_OK ) { DLGBITMAPLIST BitmapList ; L_INT i; BeginWaitCursor(); BitmapList.pBitmapList = (DLGBITMAPLISTITEM*)malloc ( sizeof ( DLGBITMAPLISTITEM ) * DLG_IMAGE_LIST_COUNT ) ; if ( NULL == BitmapList.pBitmapList ) { EndWaitCursor() ; return ; } else { for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { BitmapList.pBitmapList [ i ].pBitmap = (pBITMAPHANDLE) malloc ( sizeof ( BITMAPHANDLE ) ) ; memset(BitmapList.pBitmapList [ i ].pBitmap, 0 , sizeof(BITMAPHANDLE)); BitmapList.pBitmapList [ i ].pszFileName = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; memset(BitmapList.pBitmapList [ i ].pszFileName, 0 , sizeof ( L_TCHAR ) * L_MAXPATH ); BitmapList.pBitmapList [ i ].pszDescription = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; memset(BitmapList.pBitmapList [ i ].pszDescription, 0 , sizeof ( L_TCHAR ) * L_MAXPATH ); } } if ( SUCCESS == GenerateBitampList ( DirectoryDlgParams.pszDirectory, &BitmapList, FALSE ) ) { DlgParams.uStructSize = sizeof ( PRINTSTITCHEDIMAGESDLGPARAMS ) ; DlgParams.pBitmapList = &BitmapList ; DlgParams.nCmdShow = SW_SHOW ; m_LAniWnd.DialogFile()->SetPrintStitchedImagesParams(&DlgParams); BeginWaitCursor() ; m_LAniWnd.DialogFile()->DoModalPrintStitchedImages(Handle) ; } else EndWaitCursor() ; // clean up for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { if ( NULL != BitmapList.pBitmapList [ i ].pBitmap ) { if ( BitmapList.pBitmapList [ i ].pBitmap->Flags.Allocated ) { LBitmap MyTmpBtmp; MyTmpBtmp.SetHandle(BitmapList.pBitmapList [ i ].pBitmap); MyTmpBtmp.Free(); } free ( BitmapList.pBitmapList [ i ].pBitmap ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszFileName ) { free ( BitmapList.pBitmapList [ i ].pszFileName ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszDescription ) { free ( BitmapList.pBitmapList [ i ].pszDescription ) ; } } if ( NULL != BitmapList.pBitmapList ) { free ( BitmapList.pBitmapList ) ; } if ( NULL != DlgParams.hDevMode ) { GlobalFree ( DlgParams.hDevMode ) ; } if ( NULL != DlgParams.hDevNames ) { GlobalFree ( DlgParams.hDevNames ) ; } return ; } else { return ; } } L_INT TMDIChild::GenerateBitampList( L_TCHAR L_FAR * pszFolder, LPDLGBITMAPLIST pDlgBitmapList, L_BOOL fThumbnail ) { THUMBOPTIONS ThumbOptions ; ZeroMemory ( &ThumbOptions,sizeof ( THUMBOPTIONS ) ) ; ThumbOptions.uStructSize = sizeof ( THUMBOPTIONS ) ; ThumbOptions.nWidth = ( fThumbnail ? 250 : 0 ) ; ThumbOptions.nHeight = ( fThumbnail ? 250 : 0 ) ; ThumbOptions.nBits = 24 ; ThumbOptions.uCRFlags = CRF_BYTEORDERBGR ; ThumbOptions.bMaintainAspect = fThumbnail ; ThumbOptions.bForceSize = FALSE ; ThumbOptions.crBackColor = GetSysColor ( COLOR_BTNFACE ) ; ThumbOptions.bLoadStamp = FALSE ; ThumbOptions.bResample = TRUE ; m_nBitmapsCount = -1 ; MyFileBrowse BrowseDlg; BrowseDlg.m_pBitmapList = pDlgBitmapList; BrowseDlg.BrowseDir ( pszFolder, "*.*", &ThumbOptions, FALSE, // don't stop on error FALSE, // do not recurse subdirectories FALSE, // do not expand multipage files 0, // no limit on file size 4000 * 1024 ) ; m_nBitmapsCount = BrowseDlg.m_ImageCount; if ( m_nBitmapsCount < 0 ) { MessageBox (Handle,TEXT("There are file(s) cannot be loaded"), TEXT("Error"), 0 ) ; return FAILURE ; } else { pDlgBitmapList->nCount = m_nBitmapsCount + 1 ; } return SUCCESS ; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::RemoveRedeye1Click(TObject *Sender) { REMOVEREDEYEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( REMOVEREDEYEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( REMOVEREDEYEDLGPARAMS ) ; m_LAniWnd.DialogDocument()->EnableCallBack(FALSE); m_LAniWnd.DialogDocument()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogDocument()->EnableAutoProcess(true); m_LAniWnd.DialogDocument()->EnableToolbar(true); m_LAniWnd.DialogDocument()->SetRemoveRedEyeParams(&DlgParams) ; m_LAniWnd.DialogDocument()->DoModalRemoveRedEye(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Border1Click(TObject *Sender) { L_INT nRet; GETDIRECTORYDLGPARAMS DirectoryDlgParams ; ZeroMemory ( &DirectoryDlgParams, sizeof (GETDIRECTORYDLGPARAMS)) ; DirectoryDlgParams.uStructSize = sizeof (GETDIRECTORYDLGPARAMS); DirectoryDlgParams.pszDirectory = (L_TCHAR *) malloc ( L_MAXPATH * 2 ) ; DirectoryDlgParams.pszTitle = "Select Images Folder" ; DirectoryDlgParams.nBuffSize = L_MAXPATH ; DirectoryDlgParams.pszFilter = NULL ; DirectoryDlgParams.nFilterIndex = 1 ; m_LAniWnd.DialogFile()->SetDirectoryParams(&DirectoryDlgParams) ; nRet = m_LAniWnd.DialogFile()->DoModalGetDirectory (Handle) ; // Get the directory if ( nRet == SUCCESS_DLG_OK ) { DLGBITMAPLIST BitmapList ; L_INT i; BeginWaitCursor (); BitmapList.pBitmapList = (DLGBITMAPLISTITEM *) malloc ( sizeof ( DLGBITMAPLISTITEM ) * DLG_IMAGE_LIST_COUNT ) ; if ( NULL == BitmapList.pBitmapList ) { EndWaitCursor (); return ; } else { for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { BitmapList.pBitmapList [ i ].pBitmap = (BITMAPHANDLE *) malloc ( sizeof ( BITMAPHANDLE ) ) ; BitmapList.pBitmapList [ i ].pszFileName = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; BitmapList.pBitmapList [ i ].pszDescription = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; memset(BitmapList.pBitmapList [ i ].pBitmap,0, sizeof(BITMAPHANDLE)); memset(BitmapList.pBitmapList [ i ].pszFileName,0, sizeof ( L_TCHAR ) * L_MAXPATH ); memset(BitmapList.pBitmapList [ i ].pszDescription,0, sizeof ( L_TCHAR ) * L_MAXPATH ); } } if ( SUCCESS == GenerateBitampList ( DirectoryDlgParams.pszDirectory, &BitmapList, TRUE ) ) { ADDBORDERDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(ADDBORDERDLGPARAMS)); DlgParams.uStructSize = sizeof ( ADDBORDERDLGPARAMS ) ; DlgParams.pBitmapList = &BitmapList ; m_LAniWnd.DialogImage()->EnableToolbar(true); m_LAniWnd.DialogImage()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImage()->EnableAutoProcess(true); m_LAniWnd.DialogImage()->SetAddBorderParams(&DlgParams); BeginWaitCursor (); m_LAniWnd.DialogImage()->DoModalAddBorder(Handle); } else EndWaitCursor (); // clean up for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { if ( NULL != BitmapList.pBitmapList [ i ].pBitmap ) { if ( BitmapList.pBitmapList [ i ].pBitmap->Flags.Allocated ) { LBitmap MyTmpBtmp; MyTmpBtmp.SetHandle(BitmapList.pBitmapList [ i ].pBitmap); MyTmpBtmp.Free(); } free ( BitmapList.pBitmapList [ i ].pBitmap ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszFileName ) { free ( BitmapList.pBitmapList [ i ].pszFileName ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszDescription ) { free ( BitmapList.pBitmapList [ i ].pszDescription ) ; } } if ( NULL != BitmapList.pBitmapList ) { free ( BitmapList.pBitmapList ) ; } EndWaitCursor (); return ; } else { return ; } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Frame2Click(TObject *Sender) { L_INT nRet; GETDIRECTORYDLGPARAMS DirectoryDlgParams ; ZeroMemory ( &DirectoryDlgParams, sizeof (GETDIRECTORYDLGPARAMS)) ; DirectoryDlgParams.uStructSize = sizeof (GETDIRECTORYDLGPARAMS); DirectoryDlgParams.pszDirectory = (L_TCHAR *) malloc ( L_MAXPATH * 2 ) ; DirectoryDlgParams.pszTitle = "Select Images Folder" ; DirectoryDlgParams.nBuffSize = L_MAXPATH ; DirectoryDlgParams.pszFilter = NULL ; DirectoryDlgParams.nFilterIndex = 1 ; m_LAniWnd.DialogFile()->SetDirectoryParams(&DirectoryDlgParams) ; nRet = m_LAniWnd.DialogFile()->DoModalGetDirectory (Handle) ; // Get the directory if ( nRet == SUCCESS_DLG_OK ) { DLGBITMAPLIST BitmapList ; L_INT i; BeginWaitCursor (); BitmapList.pBitmapList = (DLGBITMAPLISTITEM *) malloc ( sizeof ( DLGBITMAPLISTITEM ) * DLG_IMAGE_LIST_COUNT ) ; if ( NULL == BitmapList.pBitmapList ) { BeginWaitCursor (); return ; } else { for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { BitmapList.pBitmapList [ i ].pBitmap = (BITMAPHANDLE *) malloc ( sizeof ( BITMAPHANDLE ) ) ; BitmapList.pBitmapList [ i ].pszFileName = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; BitmapList.pBitmapList [ i ].pszDescription = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; memset(BitmapList.pBitmapList [ i ].pBitmap,0, sizeof(BITMAPHANDLE)); memset(BitmapList.pBitmapList [ i ].pszFileName,0, sizeof ( L_TCHAR ) * L_MAXPATH ); memset(BitmapList.pBitmapList [ i ].pszDescription,0, sizeof ( L_TCHAR ) * L_MAXPATH ); } } if ( SUCCESS == GenerateBitampList ( DirectoryDlgParams.pszDirectory, &BitmapList, TRUE ) ) { ADDFRAMEDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(ADDFRAMEDLGPARAMS)); DlgParams.uStructSize = sizeof ( ADDFRAMEDLGPARAMS ) ; DlgParams.pBitmapList = &BitmapList ; m_LAniWnd.DialogImage()->EnableToolbar(true); m_LAniWnd.DialogImage()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImage()->EnableAutoProcess(true); m_LAniWnd.DialogImage()->SetAddFrameParams(&DlgParams); EndWaitCursor (); m_LAniWnd.DialogImage()->DoModalAddFrame(Handle); } else EndWaitCursor (); // clean up for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { if ( NULL != BitmapList.pBitmapList [ i ].pBitmap ) { if ( BitmapList.pBitmapList [ i ].pBitmap->Flags.Allocated ) { LBitmap MyTmpBtmp; MyTmpBtmp.SetHandle(BitmapList.pBitmapList [ i ].pBitmap); MyTmpBtmp.Free(); } free ( BitmapList.pBitmapList [ i ].pBitmap ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszFileName ) { free ( BitmapList.pBitmapList [ i ].pszFileName ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszDescription ) { free ( BitmapList.pBitmapList [ i ].pszDescription ) ; } } if ( NULL != BitmapList.pBitmapList ) { free ( BitmapList.pBitmapList ) ; } EndWaitCursor (); return ; } else { return ; } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Smooth1Click(TObject *Sender) { BITMAPHANDLE BitmapRegion ; SMOOTHDLGPARAMS DlgParams; memset ( &BitmapRegion, 0, sizeof ( BITMAPHANDLE ) ) ; memset ( &DlgParams, 0, sizeof ( SMOOTHDLGPARAMS ) ) ; memset ( &DlgParams.Smooth , 0, sizeof ( SMOOTH ) ) ; DlgParams.uStructSize = sizeof ( SMOOTHDLGPARAMS ) ; DlgParams.Smooth.uStructSize = sizeof ( SMOOTH ) ; DlgParams.Smooth.pBitmapRegion = &BitmapRegion ; DlgParams.Smooth.uBitmapStructSize = sizeof ( BITMAPHANDLE ); DlgParams.Smooth.uFlags = SMOOTH_ALLFLAGS ; DlgParams.Smooth.iLength = 10 ; m_LAniWnd.DialogDocument()->EnableCallBack(FALSE); m_LAniWnd.DialogDocument()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogDocument()->EnableAutoProcess(true); m_LAniWnd.DialogDocument()->EnableToolbar(true); m_LAniWnd.DialogDocument()->SetSmoothParams(&DlgParams) ; m_LAniWnd.DialogDocument()->DoModalSmooth(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::LineRemove1Click(TObject *Sender) { BITMAPHANDLE BitmapRegion ; LINEREMOVEDLGPARAMS DlgParams; memset ( &BitmapRegion, 0, sizeof ( BITMAPHANDLE ) ) ; memset ( &DlgParams, 0, sizeof ( LINEREMOVEDLGPARAMS ) ) ; memset ( &DlgParams.LineRemove , 0, sizeof ( LINEREMOVE ) ) ; DlgParams.uStructSize = sizeof ( LINEREMOVEDLGPARAMS ) ; DlgParams.LineRemove.uStructSize = sizeof ( LINEREMOVE ) ; DlgParams.LineRemove.iGapLength = 1 ; DlgParams.LineRemove.iMaxLineWidth = 2 ; DlgParams.LineRemove.iMaxWallPercent = 3 ; DlgParams.LineRemove.iMinLineLength = 4 ; DlgParams.LineRemove.iVariance = 5 ; DlgParams.LineRemove.iWall = 6 ; DlgParams.LineRemove.pBitmapRegion = &BitmapRegion ; DlgParams.LineRemove.uBitmapStructSize = sizeof ( BITMAPHANDLE ); DlgParams.LineRemove.uFlags = LINE_USE_DPI | LINE_USE_VARIANCE ; DlgParams.LineRemove.uRemoveFlags = LINEREMOVE_VERTICAL ; m_LAniWnd.DialogDocument()->EnableCallBack(FALSE); m_LAniWnd.DialogDocument()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogDocument()->EnableAutoProcess(true); m_LAniWnd.DialogDocument()->EnableToolbar(true); m_LAniWnd.DialogDocument()->SetLineRemoveParams(&DlgParams) ; m_LAniWnd.DialogDocument()->DoModalLineRemove(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::DotRemove1Click(TObject *Sender) { BITMAPHANDLE BitmapRegion ; DOTREMOVEDLGPARAMS DlgParams; memset ( &BitmapRegion, 0, sizeof ( BITMAPHANDLE ) ) ; memset ( &DlgParams, 0, sizeof ( DOTREMOVEDLGPARAMS ) ) ; memset ( &DlgParams.DotRemove , 0, sizeof ( DOTREMOVE ) ) ; DlgParams.uStructSize = sizeof ( DOTREMOVEDLGPARAMS ) ; DlgParams.DotRemove.uStructSize = sizeof ( DOTREMOVE ) ; DlgParams.DotRemove.pBitmapRegion = &BitmapRegion ; DlgParams.DotRemove.uBitmapStructSize = sizeof ( BITMAPHANDLE ) ; DlgParams.DotRemove.iMinDotWidth = 1000 ; DlgParams.DotRemove.iMinDotHeight = 1000 ; DlgParams.DotRemove.iMaxDotWidth = 1000 ; DlgParams.DotRemove.iMaxDotHeight = 1000 ; DlgParams.DotRemove.uFlags = DOT_USE_DIAGONALS | DOT_USE_DPI ; m_LAniWnd.DialogDocument()->EnableCallBack(FALSE); m_LAniWnd.DialogDocument()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogDocument()->EnableAutoProcess(true); m_LAniWnd.DialogDocument()->EnableToolbar(true); m_LAniWnd.DialogDocument()->SetDotRemoveParams(&DlgParams) ; m_LAniWnd.DialogDocument()->DoModalDotRemove(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::InvertedText1Click(TObject *Sender) { BITMAPHANDLE BitmapRegion ; INVERTEDTEXTDLGPARAMS DlgParams; memset ( &BitmapRegion, 0, sizeof ( BITMAPHANDLE ) ) ; memset ( &DlgParams, 0, sizeof ( INVERTEDTEXTDLGPARAMS ) ) ; memset ( &DlgParams.InvertedText , 0, sizeof ( INVERTEDTEXT ) ) ; DlgParams.uStructSize = sizeof ( INVERTEDTEXTDLGPARAMS ) ; DlgParams.InvertedText.uStructSize = sizeof ( INVERTEDTEXT ) ; DlgParams.InvertedText.pBitmapRegion = &BitmapRegion ; DlgParams.InvertedText.uBitmapStructSize = sizeof ( BITMAPHANDLE ) ; DlgParams.InvertedText.iMinInvertHeight = 1 ; DlgParams.InvertedText.iMinInvertWidth = 1 ; DlgParams.InvertedText.uFlags = INVERTEDTEXT_USE_DIAGONALS | INVERTEDTEXT_USE_DPI ; m_LAniWnd.DialogDocument()->EnableCallBack(FALSE); m_LAniWnd.DialogDocument()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogDocument()->EnableAutoProcess(true); m_LAniWnd.DialogDocument()->EnableToolbar(true); m_LAniWnd.DialogDocument()->SetInvertedTextParams(&DlgParams) ; m_LAniWnd.DialogDocument()->DoModalInvertedText(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::BorderRemove1Click(TObject *Sender) { BITMAPHANDLE BitmapRegion ; BORDERREMOVEDLGPARAMS DlgParams; memset ( &BitmapRegion, 0, sizeof ( BITMAPHANDLE ) ) ; memset ( &DlgParams, 0, sizeof ( BORDERREMOVEDLGPARAMS ) ) ; memset ( &DlgParams.BorderRemove , 0, sizeof ( BORDERREMOVE ) ) ; DlgParams.uStructSize = sizeof ( BORDERREMOVEDLGPARAMS ) ; DlgParams.BorderRemove.uStructSize = sizeof ( BORDERREMOVE ) ; DlgParams.BorderRemove.iBorderPercent = 1 ; DlgParams.BorderRemove.iVariance = 2 ; DlgParams.BorderRemove.pBitmapRegion = &BitmapRegion ; DlgParams.BorderRemove.uBitmapStructSize = sizeof ( BITMAPHANDLE ); DlgParams.BorderRemove.iWhiteNoiseLength = 3 ; DlgParams.BorderRemove.uBorderToRemove = BORDER_LEFT ; DlgParams.BorderRemove.uFlags = BORDER_USE_VARIANCE ; m_LAniWnd.DialogDocument()->EnableCallBack(true); m_LAniWnd.DialogDocument()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogDocument()->EnableAutoProcess(true); m_LAniWnd.DialogDocument()->EnableToolbar(true); m_LAniWnd.DialogDocument()->SetBorderRemoveParams(&DlgParams) ; m_LAniWnd.DialogDocument()->DoModalBorderRemove(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::HolePunchRemove1Click(TObject *Sender) { BITMAPHANDLE BitmapRegion ; HOLEPUNCHREMOVEDLGPARAMS DlgParams; memset ( &BitmapRegion, 0, sizeof ( BITMAPHANDLE ) ) ; memset ( &DlgParams, 0, sizeof ( HOLEPUNCHREMOVEDLGPARAMS ) ) ; memset ( &DlgParams.HolePunchRemove, 0, sizeof ( HOLEPUNCH) ) ; memset ( &DlgParams.HolePunchRemove , 0, sizeof ( HOLEPUNCH ) ) ; DlgParams.uStructSize = sizeof ( HOLEPUNCHREMOVEDLGPARAMS ) ; DlgParams.HolePunchRemove.uStructSize = sizeof ( HOLEPUNCH ) ; DlgParams.HolePunchRemove.pBitmapRegion = &BitmapRegion ; DlgParams.HolePunchRemove.uBitmapStructSize = sizeof ( BITMAPHANDLE ) ; DlgParams.HolePunchRemove.iMinHoleWidth = 1000 ; DlgParams.HolePunchRemove.iMinHoleHeight = 1000 ; DlgParams.HolePunchRemove.iMaxHoleWidth = 1000 ; DlgParams.HolePunchRemove.iMaxHoleHeight = 1000 ; DlgParams.HolePunchRemove.iMinHoleCount = 2 ; DlgParams.HolePunchRemove.iMaxHoleCount = 4 ; DlgParams.HolePunchRemove.uFlags = HOLEPUNCH_USE_DPI | HOLEPUNCH_USE_LOCATION ; DlgParams.HolePunchRemove.iLocation = HOLEPUNCH_RIGHT ; m_LAniWnd.DialogDocument()->EnableCallBack(FALSE); m_LAniWnd.DialogDocument()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogDocument()->EnableAutoProcess(true); m_LAniWnd.DialogDocument()->EnableToolbar(true); m_LAniWnd.DialogDocument()->SetHolePunchRemoveParams(&DlgParams) ; m_LAniWnd.DialogDocument()->DoModalHolePunchRemove(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Histogram1Click(TObject *Sender) { HISTOGRAMDLGPARAMS DlgParams; DlgParams.uStructSize = sizeof(HISTOGRAMDLGPARAMS); DlgParams.crRedChannelPen = RGB(255,0,0); DlgParams.crGreenChannelPen = RGB(0,255,0); DlgParams.crBlueChannelPen = RGB(0,0,255); DlgParams.crMasterPen = RGB(0,0,0 ) ; DlgParams.uDlgFlags = DLG_HISTOGRAM_SHOW_VIEWSTYLE | DLG_HISTOGRAM_USERPENCOLORS ; m_LAniWnd.DialogImage()->SetHistogramParams(&DlgParams); m_LAniWnd.DialogImage()->DoModalHistogram(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::RadialBlur1Click(TObject *Sender) { RADIALBLURDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( RADIALBLURDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof(RADIALBLURDLGPARAMS); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetRadialBlurParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalRadialBlur(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::ZoomBlur1Click(TObject *Sender) { ZOOMBLURDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( ZOOMBLURDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof(ZOOMBLURDLGPARAMS); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetZoomBlurParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalZoomBlur(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::GaussianBlur1Click(TObject *Sender) { GAUSSIANBLURDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( GAUSSIANBLURDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof(GAUSSIANBLURDLGPARAMS); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetGaussianBlurParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalGaussianBlur(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::AntiAlias1Click(TObject *Sender) { ANTIALIASDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( ANTIALIASDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof(ANTIALIASDLGPARAMS); m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetAntiAliasParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalAntiAlias(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::UnsharpMask1Click(TObject *Sender) { UNSHARPMASKDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( UNSHARPMASKDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( UNSHARPMASKDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetUnsharpMaskParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalUnsharpMask(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Multiply1Click(TObject *Sender) { MULTIPLYDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( MULTIPLYDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( MULTIPLYDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetMultiplyParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalMultiply(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::AddBitmaps1Click(TObject *Sender) { L_INT nRet; GETDIRECTORYDLGPARAMS DirectoryDlgParams ; ZeroMemory ( &DirectoryDlgParams, sizeof (GETDIRECTORYDLGPARAMS)) ; DirectoryDlgParams.uStructSize = sizeof (GETDIRECTORYDLGPARAMS); DirectoryDlgParams.pszDirectory = (L_TCHAR *) malloc ( L_MAXPATH * 2 ) ; DirectoryDlgParams.pszTitle = "Select Images Folder" ; DirectoryDlgParams.nBuffSize = L_MAXPATH ; DirectoryDlgParams.pszFilter = NULL ; DirectoryDlgParams.nFilterIndex = 1 ; m_LAniWnd.DialogFile()->SetDirectoryParams(&DirectoryDlgParams) ; nRet = m_LAniWnd.DialogFile()->DoModalGetDirectory (Handle) ; // Get the directory if ( nRet == SUCCESS_DLG_OK ) { DLGBITMAPLIST BitmapList ; L_INT i; BeginWaitCursor (); BitmapList.pBitmapList = (DLGBITMAPLISTITEM *) malloc ( sizeof ( DLGBITMAPLISTITEM ) * DLG_IMAGE_LIST_COUNT ) ; if ( NULL == BitmapList.pBitmapList ) { EndWaitCursor (); return ; } else { for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { BitmapList.pBitmapList [ i ].pBitmap = (BITMAPHANDLE *) malloc ( sizeof ( BITMAPHANDLE ) ) ; BitmapList.pBitmapList [ i ].pszFileName = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; BitmapList.pBitmapList [ i ].pszDescription = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; memset(BitmapList.pBitmapList [ i ].pBitmap,0, sizeof(BITMAPHANDLE)); memset(BitmapList.pBitmapList [ i ].pszFileName,0, sizeof ( L_TCHAR ) * L_MAXPATH ); memset(BitmapList.pBitmapList [ i ].pszDescription,0, sizeof ( L_TCHAR ) * L_MAXPATH ); } } if ( SUCCESS == GenerateBitampList ( DirectoryDlgParams.pszDirectory, &BitmapList, FALSE ) ) { ADDBITMAPSDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( ADDBITMAPSDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( ADDBITMAPSDLGPARAMS ) ; DlgParams.pBitmapList = &BitmapList ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetAddBitmapsParams(&DlgParams) ; EndWaitCursor (); m_LAniWnd.DialogImageEffect()->DoModalAddBitmaps(Handle); } else EndWaitCursor (); // clean up for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { if ( NULL != BitmapList.pBitmapList [ i ].pBitmap ) { if ( BitmapList.pBitmapList [ i ].pBitmap->Flags.Allocated ) { LBitmap MyTmpBtmp; MyTmpBtmp.SetHandle(BitmapList.pBitmapList [ i ].pBitmap); MyTmpBtmp.Free(); } free ( BitmapList.pBitmapList [ i ].pBitmap ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszFileName ) { free ( BitmapList.pBitmapList [ i ].pszFileName ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszDescription ) { free ( BitmapList.pBitmapList [ i ].pszDescription ) ; } } if ( NULL != BitmapList.pBitmapList ) { free ( BitmapList.pBitmapList ) ; } EndWaitCursor (); return ; } else { return ; } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Stitch1Click(TObject *Sender) { L_INT nRet; GETDIRECTORYDLGPARAMS DirectoryDlgParams ; ZeroMemory ( &DirectoryDlgParams, sizeof (GETDIRECTORYDLGPARAMS)) ; DirectoryDlgParams.uStructSize = sizeof (GETDIRECTORYDLGPARAMS); DirectoryDlgParams.pszDirectory = (L_TCHAR *) malloc ( L_MAXPATH * 2 ) ; DirectoryDlgParams.pszTitle = "Select Images Folder" ; DirectoryDlgParams.nBuffSize = L_MAXPATH ; DirectoryDlgParams.pszFilter = NULL ; DirectoryDlgParams.nFilterIndex = 1 ; m_LAniWnd.DialogFile()->SetDirectoryParams(&DirectoryDlgParams) ; nRet = m_LAniWnd.DialogFile()->DoModalGetDirectory (Handle) ; // Get the directory if ( nRet == SUCCESS_DLG_OK ) { DLGBITMAPLIST BitmapList ; L_INT i; BeginWaitCursor (); BitmapList.pBitmapList = (DLGBITMAPLISTITEM *) malloc ( sizeof ( DLGBITMAPLISTITEM ) * DLG_IMAGE_LIST_COUNT ) ; if ( NULL == BitmapList.pBitmapList ) { EndWaitCursor (); return ; } else { for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { BitmapList.pBitmapList [ i ].pBitmap = (BITMAPHANDLE *) malloc ( sizeof ( BITMAPHANDLE ) ) ; BitmapList.pBitmapList [ i ].pszFileName = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; BitmapList.pBitmapList [ i ].pszDescription = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; memset(BitmapList.pBitmapList [ i ].pBitmap,0, sizeof(BITMAPHANDLE)); memset(BitmapList.pBitmapList [ i ].pszFileName,0, sizeof ( L_TCHAR ) * L_MAXPATH ); memset(BitmapList.pBitmapList [ i ].pszDescription,0, sizeof ( L_TCHAR ) * L_MAXPATH ); } } if ( SUCCESS == GenerateBitampList ( DirectoryDlgParams.pszDirectory, &BitmapList, FALSE ) ) { STITCHDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( STITCHDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( STITCHDLGPARAMS ); DlgParams.nResultingBitmapWidth = 320 ; DlgParams.nResultingBitmapHeight = 200 ; DlgParams.nResultingBitmapBitsPerPixel = 24 ; DlgParams.nRes = 72 ; DlgParams.crBackGround = RGB ( 255, 255, 255 ) ; DlgParams.pBitmapList = &BitmapList ; DlgParams.uDlgFlags = 0 ; DlgParams.nCmdShow = SW_SHOW ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->SetStitchParams(&DlgParams) ; EndWaitCursor (); m_LAniWnd.DialogImageEffect()->DoModalStitch(Handle); } else EndWaitCursor (); // clean up for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { if ( NULL != BitmapList.pBitmapList [ i ].pBitmap ) { if ( BitmapList.pBitmapList [ i ].pBitmap->Flags.Allocated ) { LBitmap MyTmpBtmp; MyTmpBtmp.SetHandle(BitmapList.pBitmapList [ i ].pBitmap); MyTmpBtmp.Free(); } free ( BitmapList.pBitmapList [ i ].pBitmap ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszFileName ) { free ( BitmapList.pBitmapList [ i ].pszFileName ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszDescription ) { free ( BitmapList.pBitmapList [ i ].pszDescription ) ; } } if ( NULL != BitmapList.pBitmapList ) { free ( BitmapList.pBitmapList ) ; } EndWaitCursor (); return ; } else { return ; } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::FreehandWave1Click(TObject *Sender) { FREEHANDWAVEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( FREEHANDWAVEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( FREEHANDWAVEDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetFreeHandWaveParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalFreeHandWave(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Wind1Click(TObject *Sender) { WINDDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( WINDDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( WINDDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetWindParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalWind(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Polar1Click(TObject *Sender) { POLARDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( POLARDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( POLARDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetPolarParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalPolar(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::ZoomWave1Click(TObject *Sender) { ZOOMWAVEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( ZOOMWAVEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( ZOOMWAVEDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetZoomWaveParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalZoomWave(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::RadialWave1Click(TObject *Sender) { RADIALWAVEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( RADIALWAVEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( RADIALWAVEDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetRadialWaveParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalRadialWave(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Swirl1Click(TObject *Sender) { SWIRLDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( SWIRLDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( SWIRLDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetSwirlParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalSwirl(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Wave1Click(TObject *Sender) { WAVEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( WAVEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( WAVEDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetWaveParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalWave(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::WaveShear1Click(TObject *Sender) { WAVESHEARDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( WAVESHEARDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( WAVESHEARDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetWaveShearParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalWaveShear(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Punch1Click(TObject *Sender) { PUNCHDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( PUNCHDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( PUNCHDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetPunchParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalPunch(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Ripple1Click(TObject *Sender) { RIPPLEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( RIPPLEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( RIPPLEDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetRippleParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalRipple(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Bending1Click(TObject *Sender) { BENDINGDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( BENDINGDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( BENDINGDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetBendingParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalBending(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Cylindrical1Click(TObject *Sender) { CYLINDRICALDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( CYLINDRICALDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( CYLINDRICALDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetCylindricalParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalCylindrical(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Spherize1Click(TObject *Sender) { SPHERIZEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( SPHERIZEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( SPHERIZEDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetSpherizeParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalSpherize(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Impressionist1Click(TObject *Sender) { IMPRESSIONISTDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( IMPRESSIONISTDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( IMPRESSIONISTDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetImpressionistParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalImpressionist(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Pixelate2Click(TObject *Sender) { PIXELATEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( PIXELATEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( PIXELATEDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetPixelateParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalPixelate(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::ChildMenu_UnderlayClick(TObject *Sender) { L_INT nRet; GETDIRECTORYDLGPARAMS DirectoryDlgParams ; ZeroMemory ( &DirectoryDlgParams, sizeof (GETDIRECTORYDLGPARAMS)) ; DirectoryDlgParams.uStructSize = sizeof (GETDIRECTORYDLGPARAMS); DirectoryDlgParams.pszDirectory = (L_TCHAR *) malloc ( L_MAXPATH * 2 ) ; DirectoryDlgParams.pszTitle = "Select Images Folder" ; DirectoryDlgParams.nBuffSize = L_MAXPATH ; DirectoryDlgParams.pszFilter = NULL ; DirectoryDlgParams.nFilterIndex = 1 ; m_LAniWnd.DialogFile()->SetDirectoryParams(&DirectoryDlgParams) ; nRet = m_LAniWnd.DialogFile()->DoModalGetDirectory (Handle) ; // Get the directory if ( nRet == SUCCESS_DLG_OK ) { DLGBITMAPLIST BitmapList ; L_INT i; BeginWaitCursor (); BitmapList.pBitmapList = (DLGBITMAPLISTITEM *) malloc ( sizeof ( DLGBITMAPLISTITEM ) * DLG_IMAGE_LIST_COUNT ) ; if ( NULL == BitmapList.pBitmapList ) { EndWaitCursor (); return ; } else { for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { BitmapList.pBitmapList [ i ].pBitmap = (BITMAPHANDLE *) malloc ( sizeof ( BITMAPHANDLE ) ) ; BitmapList.pBitmapList [ i ].pszFileName = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; BitmapList.pBitmapList [ i ].pszDescription = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; memset(BitmapList.pBitmapList [ i ].pBitmap,0, sizeof(BITMAPHANDLE)); memset(BitmapList.pBitmapList [ i ].pszFileName,0, sizeof ( L_TCHAR ) * L_MAXPATH ); memset(BitmapList.pBitmapList [ i ].pszDescription,0, sizeof ( L_TCHAR ) * L_MAXPATH ); } } if ( SUCCESS == GenerateBitampList ( DirectoryDlgParams.pszDirectory, &BitmapList, TRUE ) ) { UNDERLAYDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( UNDERLAYDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( UNDERLAYDLGPARAMS ) ; DlgParams.pBitmapList = &BitmapList ; DlgParams.nUnderlayBitmapIndex = 0; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetUnderlayParams(&DlgParams) ; EndWaitCursor (); m_LAniWnd.DialogImageEffect()->DoModalUnderlay(Handle); } else EndWaitCursor (); // clean up for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { if ( NULL != BitmapList.pBitmapList [ i ].pBitmap ) { if ( BitmapList.pBitmapList [ i ].pBitmap->Flags.Allocated ) { LBitmap MyTmpBtmp; MyTmpBtmp.SetHandle(BitmapList.pBitmapList [ i ].pBitmap); MyTmpBtmp.Free(); } free ( BitmapList.pBitmapList [ i ].pBitmap ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszFileName ) { free ( BitmapList.pBitmapList [ i ].pszFileName ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszDescription ) { free ( BitmapList.pBitmapList [ i ].pszDescription ) ; } } if ( NULL != BitmapList.pBitmapList ) { free ( BitmapList.pBitmapList ) ; } EndWaitCursor (); return ; } else { return ; } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Picturize1Click(TObject *Sender) { PICTURIZEDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( PICTURIZEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( PICTURIZEDLGPARAMS ) ; DlgParams.nCellHeight = 8 ; DlgParams.nCellWidth = 10 ; DlgParams.nBitmapHeight = m_LAniWnd.GetHeight() ; DlgParams.nBitmapWidth = m_LAniWnd.GetWidth(); DlgParams.uResize = PICTURIZE_RESAMPLE ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetPicturizeParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalPicturize(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Detect1Click(TObject *Sender) { EDGEDETECTORDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( EDGEDETECTORDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( EDGEDETECTORDLGPARAMS ) ; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetEdgeDetectorParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalEdgeDetector(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Contour2Click(TObject *Sender) { CONTOURFILTERDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( CONTOURFILTERDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( CONTOURFILTERDLGPARAMS ) ; DlgParams.nMaxError = 5 ; DlgParams.nDeltaDirection = 5 ; DlgParams.nOption = CONTOUR_LINK_COLOR ; DlgParams.nThreshold = 5 ; DlgParams.uOptionFlags = DLG_CONTOURFILTER_SHOW_OPTION_ALL ; DlgParams.uDlgFlags = DLG_CONTOURFILTER_SHOW_DELTADIRECTION | DLG_CONTOURFILTER_SHOW_MAXIMUMERROR | DLG_CONTOURFILTER_SHOW_OPTION | DLG_CONTOURFILTER_SHOW_THRESHOLD; m_LAniWnd.DialogImageEffect()->EnableCallBack(FALSE); m_LAniWnd.DialogImageEffect()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogImageEffect()->EnableAutoProcess(true); m_LAniWnd.DialogImageEffect()->EnableToolbar(true); m_LAniWnd.DialogImageEffect()->SetContourFilterParams(&DlgParams) ; m_LAniWnd.DialogImageEffect()->DoModalContourFilter(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::BalanceColors1Click(TObject *Sender) { BALANCECOLORSDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(BALANCECOLORSDLGPARAMS)); DlgParams.uStructSize = sizeof ( BALANCECOLORSDLGPARAMS ) ; m_LAniWnd.DialogColor()->EnableToolbar(true); m_LAniWnd.DialogColor()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogColor()->SetBalanceColorParams(&DlgParams); m_LAniWnd.DialogColor()->DoModalBalanceColors(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::ChildMenu_HalftoneClick(TObject *Sender) { DLGBITMAPLIST BitmapList ; L_INT i; L_INT nRet; GETDIRECTORYDLGPARAMS DirectoryDlgParams ; HALFTONEDLGPARAMS DlgParams; LBitmapList LbitmapList; ZeroMemory ( &DirectoryDlgParams, sizeof (GETDIRECTORYDLGPARAMS)) ; memset ( &DlgParams, 0, sizeof ( HALFTONEDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( HALFTONEDLGPARAMS ); DirectoryDlgParams.uStructSize = sizeof (GETDIRECTORYDLGPARAMS); DirectoryDlgParams.pszDirectory = (L_TCHAR *) malloc ( L_MAXPATH * 2 ) ; DirectoryDlgParams.pszTitle = "Select Images Folder" ; DirectoryDlgParams.nBuffSize = L_MAXPATH ; DirectoryDlgParams.pszFilter = NULL ; DirectoryDlgParams.nFilterIndex = 1 ; m_LAniWnd.DialogFile()->SetDirectoryParams(&DirectoryDlgParams) ; nRet = m_LAniWnd.DialogFile()->DoModalGetDirectory (Handle) ; // Get the HalfTone directory if ( nRet == SUCCESS_DLG_OK ) { BeginWaitCursor (); BitmapList.pBitmapList = (DLGBITMAPLISTITEM *) malloc ( sizeof ( DLGBITMAPLISTITEM ) * DLG_IMAGE_LIST_COUNT ) ; if ( NULL == BitmapList.pBitmapList ) { BeginWaitCursor (); return ; } else { for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT ; i++ ) { BitmapList.pBitmapList [ i ].pBitmap = (BITMAPHANDLE *) malloc ( sizeof ( BITMAPHANDLE ) ) ; BitmapList.pBitmapList [ i ].pszFileName = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; BitmapList.pBitmapList [ i ].pszDescription = (L_TCHAR *) malloc ( sizeof ( L_TCHAR ) * L_MAXPATH ) ; memset(BitmapList.pBitmapList [ i ].pBitmap,0, sizeof(BITMAPHANDLE)); memset(BitmapList.pBitmapList [ i ].pszFileName,0, sizeof ( L_TCHAR ) * L_MAXPATH ); memset(BitmapList.pBitmapList [ i ].pszDescription,0, sizeof ( L_TCHAR ) * L_MAXPATH ); } BitmapList.nCount = DLG_IMAGE_LIST_COUNT ; } if ( SUCCESS == GenerateBitampList ( DirectoryDlgParams.pszDirectory, &BitmapList, TRUE ) ) { LbitmapList.Create(); DlgParams.pBitmapList = &BitmapList; DlgParams.hList = LbitmapList.GetHandle(); DlgParams.nAngle = 5; DlgParams.uDim = 5; DlgParams.uType = HT_RECT ; DlgParams.uDlgFlags = 0; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogColor()->EnableToolbar(true); m_LAniWnd.DialogColor()->SetHalfToneParams(&DlgParams) ; EndWaitCursor (); m_LAniWnd.DialogColor()->DoModalHalfTone(Handle); } else { EndWaitCursor (); DlgParams.pBitmapList = NULL; } } // clean up LbitmapList.Destroy(); for ( i = 0 ; i < DLG_IMAGE_LIST_COUNT; i++ ) { if ( NULL != BitmapList.pBitmapList [ i ].pBitmap ) { if ( BitmapList.pBitmapList [ i ].pBitmap->Flags.Allocated ) { LBitmap MyTmpBtmp; MyTmpBtmp.SetHandle(BitmapList.pBitmapList [ i ].pBitmap); MyTmpBtmp.Free(); } free ( BitmapList.pBitmapList [ i ].pBitmap ) ; } if ( NULL != BitmapList.pBitmapList [ i ].pszDescription ) { free ( BitmapList.pBitmapList [ i ].pszDescription ) ; } } if ( NULL != BitmapList.pBitmapList ) { free ( BitmapList.pBitmapList ) ; } } //--------------------------------------------------------------------------- void __fastcall TMDIChild::GrayScale1Click(TObject *Sender) { GRAYSCALEDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(GRAYSCALEDLGPARAMS)); DlgParams.uStructSize = sizeof ( GRAYSCALEDLGPARAMS ) ; DlgParams.nRedFactor = 333 ; DlgParams.nGreenFactor = 333 ; DlgParams.nBlueFactor = 334 ; m_LAniWnd.DialogColor()->EnableToolbar(true); m_LAniWnd.DialogColor()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogColor()->SetGrayScaleParams(&DlgParams); m_LAniWnd.DialogColor()->DoModalGrayScale(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::ColoredGray1Click(TObject *Sender) { COLOREDGRAYDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( COLOREDGRAYDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( COLOREDGRAYDLGPARAMS ) ; DlgParams.nRedFactor = 333 ; DlgParams.nGreenFactor = 333 ; DlgParams.nBlueFactor = 334 ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogColor()->EnableToolbar(true); m_LAniWnd.DialogColor()->SetColoredGrayParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalColoredGray(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Intensity2Click(TObject *Sender) { REMAPINTENSITYDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(REMAPINTENSITYDLGPARAMS)); DlgParams.uStructSize = sizeof ( REMAPINTENSITYDLGPARAMS ) ; m_LAniWnd.DialogColor()->EnableToolbar(true); m_LAniWnd.DialogColor()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogColor()->SetRemapIntensityParams(&DlgParams); m_LAniWnd.DialogColor()->DoModalRemapIntensity(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Hue1Click(TObject *Sender) { REMAPHUEDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(REMAPHUEDLGPARAMS)); DlgParams.uStructSize = sizeof ( REMAPHUEDLGPARAMS ) ; m_LAniWnd.DialogColor()->EnableToolbar(true); m_LAniWnd.DialogColor()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogColor()->SetRemapHueParams(&DlgParams); m_LAniWnd.DialogColor()->DoModalRemapHue(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Equalize1Click(TObject *Sender) { BeginWaitCursor() ; m_LAniWnd.HistoEqualize(YUV_SPACE); EndWaitCursor() ; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::StretchIntensity1Click(TObject *Sender) { BeginWaitCursor() ; m_LAniWnd.StretchIntensity(); EndWaitCursor() ; } //--------------------------------------------------------------------------- void __fastcall TMDIChild::LocalEqualize1Click(TObject *Sender) { LOCALHISTOEQUALIZEDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(LOCALHISTOEQUALIZEDLGPARAMS)); DlgParams.uStructSize = sizeof ( LOCALHISTOEQUALIZEDLGPARAMS ) ; if( SUCCESS == m_LAniWnd.HasRgn( )) { RECT rcRGN ; m_LAniWnd.Region()->GetRgnBounds(&rcRGN ) ; DlgParams.nHeight = rcRGN.bottom - rcRGN.top; DlgParams.nWidth = rcRGN.right - rcRGN.left ; } else { DlgParams.nHeight = m_LAniWnd.GetHeight(); DlgParams.nWidth = m_LAniWnd.GetWidth(); } m_LAniWnd.DialogColor()->EnableToolbar(true); m_LAniWnd.DialogColor()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogColor()->SetLocalHistoEqualizeParams(&DlgParams); m_LAniWnd.DialogColor()->DoModalLocalHistoEqualize(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::Contrast2Click(TObject *Sender) { HISTOCONTRASTDLGPARAMS DlgParams; memset ( &DlgParams, 0, sizeof ( HISTOCONTRASTDLGPARAMS ) ) ; DlgParams.uStructSize = sizeof ( HISTOCONTRASTDLGPARAMS ) ; m_LAniWnd.DialogColor()->EnableCallBack(FALSE); m_LAniWnd.DialogColor()->EnablePreview(MainForm->m_EnablePreview); m_LAniWnd.DialogColor()->EnableAutoProcess(true); m_LAniWnd.DialogColor()->EnableToolbar(true); m_LAniWnd.DialogColor()->SetHistoContrastParams(&DlgParams) ; m_LAniWnd.DialogColor()->DoModalHistoContrast(Handle); } //--------------------------------------------------------------------------- void __fastcall TMDIChild::CustomizePalette1Click(TObject *Sender) { CUSTOMIZEPALETTEDLGPARAMS DlgParams; memset(&DlgParams,0,sizeof(CUSTOMIZEPALETTEDLGPARAMS)); DlgParams.uStructSize = sizeof ( CUSTOMIZEPALETTEDLGPARAMS ) ; DlgParams.hpalUser = m_LAniWnd.DupPalette () ; DlgParams.uDlgFlags = DLG_CUSTOMIZEPALETTE_SHOW_SORT | DLG_CUSTOMIZEPALETTE_SHOW_FINDCLOSEST | DLG_CUSTOMIZEPALETTE_SHOW_ADDOPTION | DLG_CUSTOMIZEPALETTE_SHOW_REMOVEOPTION | DLG_CUSTOMIZEPALETTE_SHOW_COLORMODEL | DLG_CUSTOMIZEPALETTE_SHOW_RGBLEFTPAN | DLG_CUSTOMIZEPALETTE_SHOW_HTMLLEFTPAN | DLG_CUSTOMIZEPALETTE_SHOW_INDEXLEFTPAN | DLG_CUSTOMIZEPALETTE_SHOW_RGBRIGHTPAN | DLG_CUSTOMIZEPALETTE_SHOW_HTMLRIGHTPAN | DLG_CUSTOMIZEPALETTE_SHOW_INDEXRIGHTPAN | DLG_CUSTOMIZEPALETTE_SHOW_NEW | DLG_CUSTOMIZEPALETTE_SHOW_OPEN | DLG_CUSTOMIZEPALETTE_SHOW_SAVE | DLG_CUSTOMIZEPALETTE_SHOW_SAVEAS | DLG_CUSTOMIZEPALETTE_GENERATE_PALETTE ; m_LAniWnd.DialogColor()->SetCustomizePaletteParams(&DlgParams); m_LAniWnd.DialogColor()->DoModalCustomizePalette(Handle); m_LAniWnd.DialogColor()->GetCustomizePaletteParams(&DlgParams, sizeof(DlgParams)); if ( NULL != DlgParams.hpalUser ) { DeleteObject ( DlgParams.hpalUser ) ; } } //---------------------------------------------------------------------------