#ifndef _VIEW_HPP_ #define _VIEW_HPP_ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include class ViewWindow : public MDIWindow { public: ViewWindow(void); ViewWindow(const ViewWindow &someViewWindow); void showWindow(HWND hClientWindow,const char *pathFileName,BWindow *statusBar,HMENU hFrameMenu); virtual ~ViewWindow(); int operator==(const ViewWindow &someViewWindow)const; static void Register(HINSTANCE hInstance); static char far *className(void); WORD isDestroyed(void)const; WORD hasMesh(void)const; HWND handle(void)const; WORD width(void)const; WORD height(void)const; void showMesh(void)const; private: typedef long Index; enum {MaxFileName=70,MaxGifBitsPerPixel=8,DefaultFrames=3}; enum {MenuConform=0x0F}; enum Direction{WarpForward,WarpReverse}; void Paint(void); long WndProc(UINT message,WPARAM wParam,LPARAM lParam); void paletteHandler(const UCHAR FAR *paletteData,USHORT numColors); void backgroundHandler(USHORT backgroundColor); void imageHandler(void); void showHandler(USHORT imageWide,USHORT imageDeep,const UCHAR FAR *lpRowData,USHORT yLocation); void errorHandler(const CHAR FAR *errorMessage); void handleMeshRequest(WPARAM wParam,LPARAM lParam); void handleDestroyEvent(void); void handleActivateEvent(WPARAM wParam,LPARAM lParam); void handleSystemMenuEvent(WPARAM wParam)const; void handleToolbarToggle(void); void enableMenu(const char isEnabled)const; void modifySystemMenu(void); void updateCaption(void)const; void createMDIChildWindow(void); void createToolBarWindow(void); void createPalette(void); void decodeMDIImage(void); void operator=(Bitmap &someBitmap); void imageProcessing(void); void menuClip(void); void resizeImage(void); void meshWarp(Direction warpDirection=WarpForward); void meshWarp(ViewWindow *lpTargetView); void warpPerspective(void); void warpConvex(void); void translateMatrix(void); void shearTransform(void); void saveBitmap(void); void sequentialNames(const String &pathFileName,Block &pathFileNames,int nFrames); void createProjectFile(Block &pathFileNames); static char szClassName[]; static char szMenuName[]; static HINSTANCE smhInstance; int mCurrentMeshFrames; WORD mToolbarVisibility; WORD mMaxColors; WORD mWidth; WORD mHeight; char mPathFileName[MaxFileName+1]; Capture mCapture; HWND mhClientWindow; HWND mhFrameWindow; WORD mIsDestroyed; HMENU mhSystemMenu; HMENU mhFrameMenu; HMENU mhViewMenu; HPALETTE mhPalette; HGLOBAL mhGlobalInvert; HGLOBAL mhGlobal; HGLOBAL mhBMPGlobal; Clipboard *mlpClipboard; BWindow *mpStatusBar; Process *mpProcessImage; SpacialTransform *mpSpacial; PerspectiveWarp *mpPerspectiveWarp; Convex *mlpConvexTransform; BITMAPINFO FAR *mpBI; UHUGE *mhpImageInvert; UHUGE *mhpImage; ToolBar *mlpToolBar; GridMesh *mlpGridMesh; Block mPaletteData; Block mDissolveSchedule; }; #include #endif