Files
Work/mdiwin/PROCESS.HPP
2024-08-07 09:16:27 -04:00

76 lines
1.8 KiB
C++

#ifndef _PROCESS_HPP_
#define _PROCESS_HPP_
#include <mdiwin/windows.hpp>
#include <mdiwin/types.hpp>
#include <mdiwin/vector.hpp>
#include <mdiwin/block.hpp>
#include <mdiwin/int.hpp>
class Process
{
public:
Process(HPALETTE hPalette,UHUGE *hpImage,WORD width,WORD height);
~Process();
WORD showProcess(HWND hParent,char *imageName);
void cancelThread();
private:
enum {GreatestHighPassMatrixIndex=3};
enum {GreatestAveragingMatrixIndex=3};
enum {MaxImageName=50};
static Process *smCurrInstance;
// static int FAR PASCAL _export ProcessDlgProc(HWND hWnd,WORD message,WPARAM wParam,LPARAM lParam);
__declspec(dllexport) static int FAR PASCAL ProcessDlgProc(HWND hWnd,WORD message,WPARAM wParam,LPARAM lParam);
int ProcessProc(WORD message,WPARAM wParam,LPARAM lParam);
HWND GetHandle(void)const;
void SetHandle(HWND);
void buildMatrices(void);
void uncheckControls(void)const;
WORD activeControl(void)const;
void setMatrix(Block<Integer> &matrix);
void processUserSelection();
Block<Integer> mLowPassMatrix;
Block<Integer> mAveragingMatrixOne;
Block<Integer> mAveragingMatrixTwo;
Block<Integer> mAveragingMatrixThree;
Block<Integer> mAveragingMatrixFour;
Block<Integer> mHighPassMatrixOne;
Block<Integer> mHighPassMatrixTwo;
Block<Integer> mHighPassMatrixThree;
Block<Integer> mHighPassMatrixFour;
Block<Integer> mAveragingMatrixUse;
char mImageName[MaxImageName+1];
WORD mCurrentAveragingMatrix;
WORD mCurrentHighPassMatrix;
WORD mCurrentSelection;
WORD mIsInThread;
HPALETTE mhPalette;
UHUGE *mhpImage;
WORD mWidth;
WORD mHeight;
WORD mIsConstructed;
HWND mhWnd;
HWND hParent;
};
inline
void Process::SetHandle(HWND hWnd)
{
mhWnd=hWnd;
}
inline
HWND Process::GetHandle(void)const
{
return mhWnd;
}
inline
void Process::cancelThread(void)
{
mIsInThread=FALSE;
}
#endif