Files
Work/meshwrp/factor.hpp
2024-08-07 09:16:27 -04:00

56 lines
1.6 KiB
C++

#ifndef _MESHWRP_FACTOR_HPP_
#define _MESHWRP_FACTOR_HPP_
#ifndef _COMMON_DWINDOW_HPP_
#include <common/dwindow.hpp>
#endif
#ifndef _COMMON_BLOCK_HPP_
#include <common/block.hpp>
#endif
#ifndef _COMMON_STRING_HPP_
#include <common/string.hpp>
#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<Factor> mInitHandler;
Callback<Factor> mCommandHandler;
// char mCaption[MaxCaption];
double mWidthFactor;
double mWidthIncremental;
Operation mWidthOperation;
double mHeightFactor;
double mHeightIncremental;
Operation mHeightOperation;
Type mFactorType;
Block<String> mWidthStrings;
Block<String> mHeightStrings;
WORD mWidthStringIndex;
WORD mHeightStringIndex;
};
#endif