#ifndef _MESHWRP_FACTOR_HPP_ #define _MESHWRP_FACTOR_HPP_ #ifndef _COMMON_DWINDOW_HPP_ #include #endif #ifndef _COMMON_BLOCK_HPP_ #include #endif #ifndef _COMMON_STRING_HPP_ #include #endif class Factor : public DWindow { public: enum Type{Incremental,NonIncremental}; enum Operation{Add,Subtract,Multiply,Divide,None}; Factor(GUIWindow &parent,const String &strCaption); virtual ~Factor(); bool showFactor(double &widthFactor,double &heightFactor); bool showFactor(double &widthFactor,double &heightFactor, double &widthIncremental,Operation &widthOperation, double &heightIncremental, Operation &heightOperation); private: CallbackData::ReturnType initHandler(CallbackData &callbackData); CallbackData::ReturnType commandHandler(CallbackData &callbackData); void handleWidth(CallbackData &callackData); void handleHeight(CallbackData &callbackData); void handleOk(CallbackData &callbackData); void handleCancel(void); // virtual int DlgProc(UINT message,WPARAM wParam,LPARAM lParam); void initializeStrings(void); void currentOperation(WORD stringIndex,Operation &operation)const; HWND mhParent; HINSTANCE mhInstance; String mCaption; Callback mInitHandler; Callback mCommandHandler; // char mCaption[MaxCaption]; double mWidthFactor; double mWidthIncremental; Operation mWidthOperation; double mHeightFactor; double mHeightIncremental; Operation mHeightOperation; Type mFactorType; Block mWidthStrings; Block mHeightStrings; WORD mWidthStringIndex; WORD mHeightStringIndex; }; #endif