#ifndef _WAVE_MAINWINDOW_HPP_ #define _WAVE_MAINWINDOW_HPP_ #ifndef _COMMON_WINDOW_HPP_ #include #endif #ifndef _COMMON_STRING_HPP_ #include #endif #ifndef _WAVE_TRACKBAR_HPP_ #include #endif #ifndef _COMMON_ELASTICCONTROL_HPP_ #include #endif #ifndef _COMMON_OWNER_HPP_ #include #endif class MainWindow : public Window { public: MainWindow(HINSTANCE hInstance); virtual ~MainWindow(); static String className(void); private: enum{InitialWidth=400,InitialHeight=120}; enum{PlayID=101,TrackBarID=102}; void registerClass(void)const; void insertHandlers(void); void removeHandlers(void); void handleFileOpenEvent(void); void handlePlay(void); CallbackData::ReturnType paintHandler(CallbackData &someCallbackData); CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData); CallbackData::ReturnType commandHandler(CallbackData &someCallbackData); CallbackData::ReturnType keyDownHandler(CallbackData &someCallbackData); CallbackData::ReturnType sizeHandler(CallbackData &someCallbackData); CallbackData::ReturnType timerHandler(CallbackData &someCallbackData); CallbackData::ReturnType createHandler(CallbackData &someCallbackData); CallbackData::ReturnType notifyHandler(CallbackData &someCallbackData); CallbackData::ReturnType drawItemHandler(CallbackData &someCallbackData); Callback mPaintHandler; Callback mDestroyHandler; Callback mCommandHandler; Callback mKeyDownHandler; Callback mSizeHandler; Callback mTimerHandler; Callback mCreateHandler; Callback mDrawItemHandler; Callback mNotifyHandler; static char szClassName[]; static char szMenuName[]; HINSTANCE mhInstance; TrackBar mTrackBar; OwnerDraw mOwnerDraw; ElasticControl mControl; String mPathFileName; }; inline String MainWindow::className(void) { return String(szClassName); } #endif