#include #include #include #include #include #include #include #include FretViewWindow::FretViewWindow(void) { mCreateHandler.setCallback(this,&FretViewWindow::createHandler); mSizeHandler.setCallback(this,&FretViewWindow::sizeHandler); mPaintHandler.setCallback(this,&FretViewWindow::paintHandler); mHorizontalScrollHandler.setCallback(this,&FretViewWindow::horizontalScrollHandler); mVerticalScrollHandler.setCallback(this,&FretViewWindow::verticalScrollHandler); mLeftButtonDownHandler.setCallback(this,&FretViewWindow::leftButtonDownHandler); mCloseHandler.setCallback(this,&FretViewWindow::closeHandler); MDIWindow::insertHandler(VectorHandler::CreateHandler,&mCreateHandler); MDIWindow::insertHandler(VectorHandler::SizeHandler,&mSizeHandler); MDIWindow::insertHandler(VectorHandler::PaintHandler,&mPaintHandler); MDIWindow::insertHandler(VectorHandler::VerticalScrollHandler,&mVerticalScrollHandler); MDIWindow::insertHandler(VectorHandler::HorizontalScrollHandler,&mHorizontalScrollHandler); MDIWindow::insertHandler(VectorHandler::LeftButtonDownHandler,&mLeftButtonDownHandler); MDIWindow::insertHandler(VectorHandler::CloseHandler,&mCloseHandler); } FretViewWindow::~FretViewWindow() { MDIWindow::removeHandler(VectorHandler::CreateHandler,&mCreateHandler); MDIWindow::removeHandler(VectorHandler::SizeHandler,&mSizeHandler); MDIWindow::removeHandler(VectorHandler::PaintHandler,&mPaintHandler); MDIWindow::removeHandler(VectorHandler::VerticalScrollHandler,&mVerticalScrollHandler); MDIWindow::removeHandler(VectorHandler::HorizontalScrollHandler,&mHorizontalScrollHandler); MDIWindow::removeHandler(VectorHandler::LeftButtonDownHandler,&mLeftButtonDownHandler); MDIWindow::removeHandler(VectorHandler::CloseHandler,&mCloseHandler); } CallbackData::ReturnType FretViewWindow::closeHandler(CallbackData &someCallbackData) { return true; } CallbackData::ReturnType FretViewWindow::createHandler(CallbackData &someCallbackData) { setTitle("Fretboard"); mGUIFretboard=::new GUIFretboard(*this); mGUIFretboard.disposition(PointerDisposition::Delete); return FALSE; } CallbackData::ReturnType FretViewWindow::sizeHandler(CallbackData &someCallbackData) { return false; } CallbackData::ReturnType FretViewWindow::paintHandler(CallbackData &someCallbackData) { PaintInformation *pPaintInfo=(PaintInformation*)someCallbackData.lParam(); PureDevice &pureDevice=(PureDevice&)*pPaintInfo; mGUIFretboard->draw(pureDevice); return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType FretViewWindow::verticalScrollHandler(CallbackData &someCallbackData) { return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType FretViewWindow::horizontalScrollHandler(CallbackData &someCallbackData) { return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType FretViewWindow::leftButtonDownHandler(CallbackData &someCallbackData) { return (CallbackData::ReturnType)FALSE; } void FretViewWindow::setTitle(const String &strTitle) { String strCaption; String strString; windowText(strCaption); strString=strCaption; strCaption=strCaption.betweenString(0,' '); if(strCaption.isNull())strCaption=strString; strCaption+=String(" - [")+strTitle+String("]"); setCaption(strCaption); } String FretViewWindow::getTitle(void)const { String strCaption; windowText(strCaption); return strCaption.betweenString('[',']'); } void FretViewWindow::setNote(const TabEntry &entry) { mGUIFretboard->setNote(entry); } void FretViewWindow::setNote(const Note ¬e) { mGUIFretboard->setNote(note); } void FretViewWindow::setNote(const Scale &scale) { mGUIFretboard->setNote(scale,true); } void FretViewWindow::setNote(const FrettedNotes &frettedNotes) { mGUIFretboard->setNote(frettedNotes); } void FretViewWindow::clearNotes(void) { mGUIFretboard->clearNotes(); } void FretViewWindow::showAllPositions(void) { mGUIFretboard->showAllPositions(); } void FretViewWindow::cut(void) { mGUIFretboard->cut(); } void FretViewWindow::copy(void) { mGUIFretboard->copy(); } void FretViewWindow::paste(void) { mGUIFretboard->paste(); } // *** virtuals void FretViewWindow::preRegister(WNDCLASS &wndClass) { wndClass.style|=CS_SAVEBITS|CS_OWNDC; wndClass.hbrBackground=(HBRUSH)::GetStockObject(WHITE_BRUSH); } void FretViewWindow::preCreate(MDICREATESTRUCT &createStruct) { createStruct.style=WS_CLIPCHILDREN|WS_CLIPSIBLINGS|WS_VISIBLE|WS_CHILD|WS_CAPTION|WS_SIZEBOX|WS_MINIMIZEBOX|WS_THICKFRAME|WS_MINIMIZEBOX|WS_OVERLAPPED|WS_BORDER|WS_SYSMENU; }