void TextureFillProc( HWND hWindow, UINT msg, int x, int y, UINT32 Option ) /************************************************************************/ { FNAME szFileName; LPIMAGE lpImage; TEXTUREFILL_PARMS parms; switch (msg) { case WM_CREATE: // The first mouse down message // Load the texture if (!IsOnImage(hWindow, x, y)) break; if (!LookupExtFile(Texture.TextureName, szFileName, IDN_TEXTURE)) break; if (!FileExists(szFileName)) { Message(IDS_EOPEN, (LPSTR)szFileName); break; } lpImage = (LPIMAGE)GetImagePtr ( hWindow ); parms.TextureOpacity = Texture.TextureOpacity; parms.TextureMergeMode = Texture.TextureMergeMode; lstrcpy(parms.TextureName, Texture.TextureName); parms.fHorzFlip = Texture.fHorzFlip; parms.fVertFlip = Texture.fVertFlip; ProcessCommand(lpImage->lpCmdList, IDS_CMD_TEXTUREFILL, &parms); break; case WM_ACTIVATE: if (!Option) // a deactivate { FrameClose( lpTextureFrame ); lpTextureFrame = NULL; } return; case WM_LBUTTONDOWN: break; case WM_LBUTTONUP: Tool.bActive = NO; break; case WM_MOUSEMOVE: // sent when ToolActive is on break; case WM_LBUTTONDBLCLK: break; case WM_DESTROY: // The cancel operation message Tool.bActive = NO; break; } }
HANDLE LoadGrabberLibrary( LPSTR lpExtName ) { HMODULE hDLL; FNAME szDLL; static HMODULE hStaticDLL; static FNAME szStaticDLL; if ( !lpExtName ) { // A cleanup call if ( hStaticDLL ) { FreeLibrary( hStaticDLL ); hStaticDLL = NULL; szStaticDLL[0] = '\0'; } return( NULL ); } if ( !LookupExtFile( lpExtName, szDLL, IDN_SCANNER ) ) return( NULL ); if ( hStaticDLL ) { // If we have a DLL already loaded if ( !bKeepDLL || !StringsEqual( szStaticDLL, szDLL ) ) { // If we don't keep DLL's or its a new one... FreeLibrary( hStaticDLL ); hStaticDLL = NULL; szStaticDLL[0] = '\0'; } } if ( hStaticDLL ) return( hStaticDLL ); if ( !(hDLL = (HMODULE)AstralLoadLibrary(szDLL)) ) return( NULL ); hStaticDLL = hDLL; lstrcpy( szStaticDLL, szDLL ); return( hDLL ); }
BOOL TextureFillImage( LPIMAGE lpImage, LPTEXTUREFILL_PARMS lpParms) { ENGINE Engine; FNAME szFileName; LPFRAME lpTexture; FRMTYPEINFO TypeInfo; ImgGetTypeInfo(lpImage, &TypeInfo); if (!LookupExtFile(lpParms->TextureName, szFileName, IDN_TEXTURE)) { lpParms->Common.StatusCode = SC_FILENOTFOUND; return(FALSE); } ProgressBegin(2, lpParms->Common.idDirty-IDS_UNDOFIRST+IDS_PROGFIRST); CReadImage read(szFileName); if ( !(lpTexture = read.ReadFrame(TypeInfo) )) { ProgressEnd(); lpParms->Common.StatusCode = SC_READERROR; return(FALSE); } SetEngineOld(&Engine, NO, NULL, NULL, lpTexture, lpParms->fHorzFlip, lpParms->fVertFlip, NULL, NULL, lpParms->TextureOpacity, lpParms->TextureMergeMode); lpParms->Common.StatusCode = LineEngineSelObj(lpImage,&Engine,lpParms->Common.idDirty); if (!AstralIsRectEmpty(&Engine.rUpdate)) { lpParms->Common.UpdateType = UT_AREA; lpParms->Common.rUpdateArea = Engine.rUpdate; } ProgressEnd(); return(lpParms->Common.StatusCode == SC_SUCCESS); }
void PlayBatchMacro(LPLIST lpQueueList) /***********************************************************************/ { LPQUEUEITEM lpQueueItem = NULL; LPMACROITEM lpMacroItem; FNAME szFileName; LIST TempList; BOOL fError = TRUE; fPCDNotice = FALSE; while (TRUE) { if (lpQueueItem) lpQueueItem = (LPQUEUEITEM)ListGetNext(lpQueueItem); else lpQueueItem = (LPQUEUEITEM)ListGetHead(lpQueueList); if (!lpQueueItem) { fError = FALSE; break; } ListInit(&lpQueueItem->PacketList); // create a command list for the load command if (!CreateLoadFileParms(0, lpQueueItem->szFileName, TRUE, &lpQueueItem->cmsInfo, &lpQueueItem->PhotoCDResOverride, &lpQueueItem->parms)) continue; lpMacroItem = NULL; while (TRUE) { if (lpMacroItem) lpMacroItem = (LPMACROITEM)ListGetNext(lpMacroItem); else lpMacroItem = (LPMACROITEM)ListGetHead(&lpQueueItem->MacroList); if (!lpMacroItem) break; if ( !LookupExtFile( lpMacroItem->szMacro, szFileName, IDN_MACRO ) ) continue; // read in the entire macro file for faster processing if (!ReadMacro(szFileName, &TempList)) continue; if (MacroAnyLoadCommands(&TempList)) { Message(IDS_BADBATCHMACRO); DestroyPacketList(&TempList); continue; } ListAddTail(&lpQueueItem->PacketList, ListGetHead(&TempList)); } if (!SetupMacro(lpQueueItem)) break; } if (!fError) { if (EnableLogging(TRUE)) { lpQueueItem = NULL; while (!fError) { if (lpQueueItem) lpQueueItem = (LPQUEUEITEM)ListGetNext(lpQueueItem); else lpQueueItem = (LPQUEUEITEM)ListGetHead(lpQueueList); if (!lpQueueItem) break; if (!PlayMacro(NULL, NULL, 1, NO, &lpQueueItem->PacketList, NULL, lpQueueItem->PhotoCDResOverride)) break; } EnableLogging(FALSE); } } lpQueueItem = NULL; while (TRUE) { if (lpQueueItem) lpQueueItem = (LPQUEUEITEM)ListGetNext(lpQueueItem); else lpQueueItem = (LPQUEUEITEM)ListGetHead(lpQueueList); if (!lpQueueItem) break; DestroyPacketList(&lpQueueItem->PacketList); DestroyPtrList(&lpQueueItem->MacroList); } DestroyPtrList(lpQueueList); }
LOCAL void Convert_OnCommand(HWND hDlg, int id, HWND hControl, UINT codeNotify) /************************************************************************/ { BOOL Bool; switch (id) { case IDC_MINITYPES: // case IDC_MINI256: // case IDC_MINI16: // case IDC_MINI8: // case IDC_MINICUSTOM: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; Convert.MiniType = id; if (Convert.MiniType == IDC_MINI256) Convert.ConvertColors = 256; else if (Convert.MiniType == IDC_MINI16) Convert.ConvertColors = 16; else if (Convert.MiniType == IDC_MINI8) Convert.ConvertColors = 8; Convert_Enable(hDlg); break; case IDC_DITHERTYPES: // case IDC_DITHERPATTERN: // case IDC_DITHERSCATTERED: // case IDC_DITHERNONE: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; if ( id == IDC_DITHERPATTERN ) { Convert.fDither = YES; Convert.fScatter = NO; Convert.ConvertDitherType = DT_PATTERN; } else if ( id == IDC_DITHERSCATTERED ) { Convert.fDither = NO; Convert.fScatter = YES; Convert.ConvertDitherType = DT_SCATTER; } else { Convert.fDither = NO; Convert.fScatter = NO; Convert.ConvertDitherType = DT_NONE; } break; case IDC_PALETTETYPES: // case IDC_PALETTEOPTIMIZED: // case IDC_PALETTESTANDARD: // case IDC_PALETTECUSTOM: if ( !(id = HandleCombo( hDlg, id, codeNotify )) ) break; if (id == IDC_PALETTEOPTIMIZED) Convert.ConvertType = CT_OPTIMIZED; else if (id == IDC_PALETTESTANDARD) Convert.ConvertType = CT_STANDARD; else Convert.ConvertType = CT_CUSTOM; Convert.fOptimize = ( id == IDC_PALETTEOPTIMIZED ); Convert_Enable(hDlg); break; case IDC_PALETTECOLORS: if ( GetFocus() != GetDlgItem( hDlg, id ) ) break; if ( codeNotify != EN_CHANGE ) break; Convert.ConvertColors = GetDlgItemSpin( hDlg, id, &Bool, NO ); break; case IDC_EXTNAMES: GetExtName( hDlg, IDC_EXTNAMES, IDC_FILENAME, Convert.ConvertPalette, IDN_PALETTE, codeNotify ); break; case IDC_EXTMANAGE: PopupMenu( hDlg, id, IDC_FILENAME ); break; case IDC_ADDEXT: case IDC_DELETEEXT: case IDC_RENAMEEXT: ExtNameManager( hDlg, IDC_EXTNAMES, IDC_FILENAME, Convert.ConvertPalette, IDN_PALETTE, id, NO ); break; case IDOK: // make sure we can open a colormap if (Convert.ConvertType == CT_CUSTOM) { FNAME szFileName; LPCOLORMAP lpColorMap; if ( !LookupExtFile( Convert.ConvertPalette, szFileName, IDN_PALETTE ) ) break; if (!(lpColorMap = Palette_ReadColorMap(szFileName))) break; FrameDestroyColorMap(lpColorMap); } AstralDlgEnd( hDlg, TRUE ); break; case IDCANCEL: AstralDlgEnd( hDlg, FALSE ); break; default: break; } }