#ifndef _GUITAR_FRETVIEWWINDOW_HPP_ #define _GUITAR_FRETVIEWWINDOW_HPP_ #ifndef _COMMON_MDIWIN_HPP_ #include #endif #ifndef _COMMON_SMARTPOINTER_HPP_ #include #endif #ifndef _MUSIC_CHORD_HPP_ #include #endif #ifndef _GUITAR_GUIFRETBOARD_HPP_ #include #endif class TabEntry; class Scale; class FretViewWindow : public MDIWindow { public: enum{THPlay,THStop}; FretViewWindow(void); virtual ~FretViewWindow(); String getTitle(void)const; void cut(void); void copy(void); void paste(void); void setNote(const TabEntry &entry,bool clear=true,bool play=false); void setNote(const Note ¬e,bool clear=true,bool play=false); void setNote(const Scale &scale,bool play=false); void setNote(const Music::Chord &chord,bool play=false); void setNote(const FrettedNotes &frettedNotes,bool play=false); void getNotes(TabEntry &entry); void clearNotes(void); void showAllPositions(void); protected: virtual void preRegister(WNDCLASS &wndClass); virtual void preCreate(MDICREATESTRUCT &createStruct); private: enum{WindowWidth=355,WindowHeight=135,MaxWindowWidth=520}; CallbackData::ReturnType createHandler(CallbackData &someCallbackData); CallbackData::ReturnType closeHandler(CallbackData &someCallbackData); CallbackData::ReturnType sizeHandler(CallbackData &someCallbackData); CallbackData::ReturnType paintHandler(CallbackData &someCallbackData); CallbackData::ReturnType verticalScrollHandler(CallbackData &someCallbackData); CallbackData::ReturnType horizontalScrollHandler(CallbackData &someCallbackData); CallbackData::ReturnType leftButtonDownHandler(CallbackData &someCallbackData); void setTitle(const String &strTitle); Callback mCreateHandler; Callback mSizeHandler; Callback mPaintHandler; Callback mVerticalScrollHandler; Callback mHorizontalScrollHandler; Callback mLeftButtonDownHandler; Callback mCloseHandler; SmartPointer mGUIFretboard; }; inline void FretViewWindow::getNotes(TabEntry &entry) { mGUIFretboard->getNotes(entry); } #endif