#ifndef _MIXER_CHANNELCTRLMGR_HPP_ #define _MIXER_CHANNELCTRLMGR_HPP_ #ifndef _COMMON_WINDOW_HPP_ #include #endif #ifndef _COMMON_SMARTPOINTER_HPP_ #include #endif #ifndef _COMMON_OWNERDRAWLIST_HPP_ #include #endif class ResBitmap; class OwnerDrawListControl : public OwnerDrawList { public: OwnerDrawListControl(GUIWindow &parentWnd,const Rect &initRect,UINT controlID,DWORD style=LBS_NOTIFY|LBS_HASSTRINGS|LBS_USETABSTOPS|LBS_OWNERDRAWFIXED|WS_VSCROLL|WS_HSCROLL|WS_CLIPCHILDREN|WS_CLIPSIBLINGS|WS_DLGFRAME); virtual ~OwnerDrawListControl(); protected: virtual void drawEntire(const DrawItem &drawItem); private: SmartPointer mButtonUp; SmartPointer mButtonDown; SmartPointer mSelectOn; SmartPointer mSelectOff; int mMaxHeight; }; class ChannelControlManager : public Window { public: ChannelControlManager(GUIWindow &parentWindow,const Rect &creationRect,UINT controlID); virtual ~ChannelControlManager(); private: void createWindow(GUIWindow &parentWindow,const Rect &creationRect,UINT controlID); CallbackData::ReturnType paintHandler(CallbackData &someCallbackData); void registerClass(); static char szClassName[]; Callback mPaintHandler; SmartPointer mListBox; }; #endif