#ifndef _SPLITTER_SPLITTERWND_HPP_ #define _SPLITTER_SPLITTERWND_HPP_ #ifndef _COMMON_WINDOW_HPP_ #include #endif #ifndef _COMMON_CALLBACK_HPP_ #include #endif #ifndef _COMMON_BRUSH_HPP_ #include #endif #ifndef _COMMON_PEN_HPP_ #include #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 mCreateHandler; Callback mPaintHandler; Callback mLeftButtonDownHandler; Callback mLeftButtonUpHandler; Callback mMouseMoveHandler; Callback mCaptureChangedHandler; Callback mDestroyHandler; Callback mSizeHandler; SmartPointer mParent; SmartPointer mPane1; SmartPointer mPane2; Pen mLightPen; Pen mHiLightPen; Pen mShadowPen; Pen mDkShadowPen; int mSplitRatio; int mSplitWidth; int mDragStart; int mDragx; Brush mBkGndBrush; static char smszClassName[]; }; #endif