Files
Work/splitter/SplitterWnd.hpp
2024-08-07 09:16:27 -04:00

62 lines
1.8 KiB
C++

#ifndef _SPLITTER_SPLITTERWND_HPP_
#define _SPLITTER_SPLITTERWND_HPP_
#ifndef _COMMON_WINDOW_HPP_
#include <common/window.hpp>
#endif
#ifndef _COMMON_CALLBACK_HPP_
#include <common/callback.hpp>
#endif
#ifndef _COMMON_BRUSH_HPP_
#include <common/brush.hpp>
#endif
#ifndef _COMMON_PEN_HPP_
#include <common/pen.hpp>
#endif
class SplitterWnd : public Window
{
public:
enum {SplitRatio=50,SplitWidth=8};
SplitterWnd(GUIWindow &parent,GUIWindow &pane1,GUIWindow &pane2,int splitRatio=SplitRatio);
virtual ~SplitterWnd();
void moveSplitter(int xLoc);
private:
enum {ControlID=5000};
void registerClass(void);
void insertHandlers(void);
void removeHandlers(void);
CallbackData::ReturnType createHandler(CallbackData &cbData);
CallbackData::ReturnType paintHandler(CallbackData &cbData);
CallbackData::ReturnType leftButtonDownHandler(CallbackData &cbData);
CallbackData::ReturnType leftButtonUpHandler(CallbackData &cbData);
CallbackData::ReturnType mouseMoveHandler(CallbackData &cbData);
CallbackData::ReturnType captureChangedHandler(CallbackData &cbData);
CallbackData::ReturnType destroyHandler(CallbackData &cbData);
CallbackData::ReturnType parentSizeHandler(CallbackData &cbData);
void sizeControls(void);
Callback<SplitterWnd> mCreateHandler;
Callback<SplitterWnd> mPaintHandler;
Callback<SplitterWnd> mLeftButtonDownHandler;
Callback<SplitterWnd> mLeftButtonUpHandler;
Callback<SplitterWnd> mMouseMoveHandler;
Callback<SplitterWnd> mCaptureChangedHandler;
Callback<SplitterWnd> mDestroyHandler;
Callback<SplitterWnd> mSizeHandler;
SmartPointer<GUIWindow> mParent;
SmartPointer<GUIWindow> mPane1;
SmartPointer<GUIWindow> mPane2;
Pen mLightPen;
Pen mHiLightPen;
Pen mShadowPen;
Pen mDkShadowPen;
int mSplitRatio;
int mSplitWidth;
int mDragStart;
int mDragx;
Brush mBkGndBrush;
static char smszClassName[];
};
#endif