Files
Work/aladin/graph.hpp
2024-08-07 09:12:07 -04:00

63 lines
1.8 KiB
C++

#ifndef _ALADIN_OWNERDRAWGRAPH_HPP_
#define _ALADIN_OWNERDRAWGRAPH_HPP_
#ifndef _COMMON_CONTROL_HPP_
#include <common/control.hpp>
#endif
#ifndef _COMMON_BRUSH_HPP_
#include <common/brush.hpp>
#endif
#ifndef _COMMON_ARRAY_HPP_
#include <common/array.hpp>
#endif
#ifndef _ALADIN_DIVEPROFILE_HPP_
#include <aladin/diveprofile.hpp>
#endif
class DrawItem;
class MeasureItem;
class PureDevice;
class DIB24;
class FloatPairs;
class OwnerDrawGraph : public Control
{
public:
OwnerDrawGraph(GUIWindow &parentWnd,HWND hControlWnd,UINT controlID);
virtual ~OwnerDrawGraph();
void setData(DiveProfile &diveProfile);
void clearData(void);
bool hasData(void)const;
bool saveBitmap(const String &strPathFileName);
protected:
virtual WORD handleDraw(const DrawItem &drawItem);
virtual WORD handleMeasureItem(MeasureItem &measureItem);
virtual LPARAM handleControlColor(PureDevice &pureDevice,Control &wndButton);
virtual void drawEntire(const DrawItem &drawItem);
virtual WORD drawSelect(const DrawItem &drawItem);
virtual void drawFocus(const DrawItem &drawItem);
virtual void drawButtonText(const DrawItem &drawItem);
virtual void drawButtonLines(const DrawItem &drawItem);
private:
OwnerDrawGraph &operator=(const OwnerDrawGraph &someOwnerDrawGraph);
void drawBitmap(const DrawItem &drawItem);
CallbackData::ReturnType drawItemHandler(CallbackData &someCallbackData);
CallbackData::ReturnType controlColorHandler(CallbackData &someCallbackData);
int getMaxDepth(Block<ProfileData> &profileData);
Callback<OwnerDrawGraph> mDrawItemHandler;
Callback<OwnerDrawGraph> mMeasureItemHandler;
Callback<OwnerDrawGraph> mControlColorHandler;
SmartPointer<DiveProfile> mDiveProfile;
SmartPointer<DIB24> mDIBitmap;
Brush mBkGndBrush;
GUIWindow &mParentWnd;
bool mHasData;
};
inline
bool OwnerDrawGraph::hasData(void)const
{
return mHasData;
}
#endif