68 lines
2.2 KiB
C++
68 lines
2.2 KiB
C++
#ifndef _GUITAR_FRETVIEWWINDOW_HPP_
|
|
#define _GUITAR_FRETVIEWWINDOW_HPP_
|
|
#ifndef _COMMON_MDIWIN_HPP_
|
|
#include <common/mdiwin.hpp>
|
|
#endif
|
|
#ifndef _COMMON_SMARTPOINTER_HPP_
|
|
#include <common/pointer.hpp>
|
|
#endif
|
|
#ifndef _MUSIC_CHORD_HPP_
|
|
#include <music/chord.hpp>
|
|
#endif
|
|
#ifndef _GUITAR_GUIFRETBOARD_HPP_
|
|
#include <guitar/GUIFretboard.hpp>
|
|
#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<FretViewWindow> mCreateHandler;
|
|
Callback<FretViewWindow> mSizeHandler;
|
|
Callback<FretViewWindow> mPaintHandler;
|
|
Callback<FretViewWindow> mVerticalScrollHandler;
|
|
Callback<FretViewWindow> mHorizontalScrollHandler;
|
|
Callback<FretViewWindow> mLeftButtonDownHandler;
|
|
Callback<FretViewWindow> mCloseHandler;
|
|
SmartPointer<GUIFretboard> mGUIFretboard;
|
|
};
|
|
|
|
inline
|
|
void FretViewWindow::getNotes(TabEntry &entry)
|
|
{
|
|
mGUIFretboard->getNotes(entry);
|
|
}
|
|
#endif
|
|
|