Files
Work/drums/mainfrm.cpp
2024-08-07 09:16:27 -04:00

1067 lines
28 KiB
C++

/*#include <guitar/mainfrm.hpp>
#include <guitar/viewwnd.hpp>
#include <guitar/fretviewwnd.hpp>
#include <guitar/guitar.hpp>
#include <guitar/registry.hpp>
#include <guitar/chorddlg.hpp>
#include <guitar/ChordBuilderDialog.hpp>
#include <guitar/rangedlg.hpp>
#include <guitar/SettingsDlg.hpp>
#include <guitar/ScaleDlg.hpp>
#include <guitar/globaldefs.hpp>
#include <guitar/DragQueryFile.hpp>
#include <guitar/MIDIHelper.hpp>
#include <guitar/splash.hpp>
#include <guitar/MIDIDialog.hpp>
#include <guitar/LicenseDialog.hpp>
#include <guitar/Registration.hpp>
#include <guitar/BrowserHelper.hpp>
#include <guitar/MessageBox.hpp>
#include <guitar/CBCommands.hpp>
#include <music/scale.hpp>
*/
#include <statbar/statbarx.hpp>
#include <common/opendlg.hpp>
#include <common/purebmp.hpp>
#include <common/resbmp.hpp>
#include <common/profile.hpp>
#include <common/versioninfo.hpp>
#include <common/process.hpp>
#include <common/crsctrl.hpp>
#include <common/shellapi.hpp>
#include <printman/printman.hpp>
#include <drums/mainfrm.hpp>
#include <drums/drums.hpp>
#include <drums/viewwnd.hpp>
MainFrame::MainFrame(void)
{
mPaintHandler.setCallback(this,&MainFrame::paintHandler);
mCloseHandler.setCallback(this,&MainFrame::closeHandler);
mQueryEndSessionHandler.setCallback(this,&MainFrame::queryEndSessionHandler);
mDestroyHandler.setCallback(this,&MainFrame::destroyHandler);
mCommandHandler.setCallback(this,&MainFrame::commandHandler);
mKeyDownHandler.setCallback(this,&MainFrame::keyDownHandler);
mSizeHandler.setCallback(this,&MainFrame::sizeHandler);
mCreateHandler.setCallback(this,&MainFrame::createHandler);
// mGUIFretboardHandler.setCallback(this,&MainFrame::guiFretboardHandler);
// mDropFilesHandler.setCallback(this,&MainFrame::dropFilesHandler);
insertHandlers();
}
MainFrame::~MainFrame()
{
removeHandlers();
}
void MainFrame::insertHandlers(void)
{
FrameWindow::insertHandler(MainFrame::DestroyHandler,&mDestroyHandler);
FrameWindow::insertHandler(VectorHandler::PaintHandler,&mPaintHandler);
FrameWindow::insertHandler(VectorHandler::CommandHandler,&mCommandHandler);
FrameWindow::insertHandler(VectorHandler::SizeHandler,&mSizeHandler);
FrameWindow::insertHandler(VectorHandler::KeyDownHandler,&mKeyDownHandler);
FrameWindow::insertHandler(VectorHandler::CloseHandler,&mCloseHandler);
FrameWindow::insertHandler(VectorHandler::QueryEndSessionHandler,&mQueryEndSessionHandler);
FrameWindow::insertHandler(VectorHandler::CreateHandler,&mCreateHandler);
// FrameWindow::insertHandler(VectorHandler::DropFilesHandler,&mDropFilesHandler);
}
void MainFrame::removeHandlers(void)
{
FrameWindow::removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler);
FrameWindow::removeHandler(VectorHandler::PaintHandler,&mPaintHandler);
FrameWindow::removeHandler(VectorHandler::CommandHandler,&mCommandHandler);
FrameWindow::removeHandler(VectorHandler::SizeHandler,&mSizeHandler);
FrameWindow::removeHandler(VectorHandler::KeyDownHandler,&mKeyDownHandler);
FrameWindow::removeHandler(VectorHandler::CreateHandler,&mCreateHandler);
FrameWindow::removeHandler(VectorHandler::CloseHandler,&mCloseHandler);
FrameWindow::removeHandler(VectorHandler::QueryEndSessionHandler,&mQueryEndSessionHandler);
// FrameWindow::removeHandler(VectorHandler::DropFilesHandler,&mDropFilesHandler);
}
CallbackData::ReturnType MainFrame::commandHandler(CallbackData &someCallbackData)
{
switch(LOWORD(someCallbackData.wParam()))
{
case MENU_EDIT_CUT :
// handleCut();
return false;
case MENU_EDIT_COPY :
// handleCopy();
return false;
case MENU_EDIT_PASTE :
// handlePaste();
return false;
}
switch(someCallbackData.wParam())
{
case MENU_FILE_EXIT :
handleFileExit();
break;
case MENU_FILE_NEW :
handleFileNew();
break;
case MENU_FILE_OPEN :
handleFileOpen();
break;
/*
case MENU_FILE_PRINT :
handleFilePrint();
break;
case MENU_FILE_IMPORT :
handleFileImport();
break;
case MENU_FILE_MIDI_IMPORT :
handleMIDIImport();
break;
case MENU_FILE_CLOSE :
handleFileClose();
break;
case MENU_FILE_SAVE :
handleFileSave();
break;
case MENU_FILE_SAVEAS :
handleFileSaveAs();
break;
case MENU_VIEW_FRETBOARD :
handleViewFretboard();
break;
case MENU_TABLATURE_PLAY :
handlePlayTablature();
break;
case MENU_TABLATURE_PLAYTOEND :
handlePlayTablatureFromCurrent();
break;
case MENU_TABLATURE_PLAYREPEATED :
handlePlayRepeated();
break;
case MENU_TABLATURE_PLAYRANGE :
handlePlayRange();
break;
case MENU_TABLATURE_PLAYRANGE_REPEATED :
handlePlayRangeRepeated();
break;
case MENU_TABLATURE_STOP :
handleStopPlay();
break;
case MENU_TABLATURE_ENTRYPROPS :
handleEntryProperties();
break;
case MENU_TABLATURE_SETENDRANGE :
handleSetEndRange();
break;
case MENU_TABLATURE_SETSTARTRANGE :
handleSetStartRange();
break;
case MENU_EDIT_RANGES :
handleEditRanges();
break;
case MENU_OPTIONS_INCREASETEMPO :
handleIncreaseTempo();
break;
case MENU_OPTIONS_DECREASETEMPO :
handleDecreaseTempo();
break;
case MENU_OPTIONS_SETTINGS :
handleSettings();
break;
case MENU_CHORDS_LOOKUP :
handleChordLookup();
break;
case MENU_CHORDS_ENTER :
handleChordEnter();
break;
case MENU_FRETBOARD_CLEAR :
handleClearFretboard();
break;
case MENU_FRETBOARD_SHOWALLPOSITIONS :
handleShowAllPositions();
break;
case MENU_SCALES_SHOW :
handleShowScales();
break;
case MENU_EDIT_CUT :
handleCut();
break;
case MENU_EDIT_COPY :
handleCopy();
break;
case MENU_EDIT_PASTE :
handlePaste();
break;
case MENU_HELP_APPLY_LICENSE :
handleHelpApplyLicense();
break;
case MENU_HELP_ABOUT :
handleHelpAbout();
break;
case MENU_HELP_INDEX :
handleHelpIndex();
break;
case IDM_CASCADE :
cascade();
break;
case IDM_TILE :
tile();
break;
case IDM_ARRANGE :
arrange();
break;
case IDM_CLOSEALL :
closeAll();
break;
case IDM_MINIMIZEALL :
minimizeAll();
break;
case IDM_RESTOREALL :
restoreAll();
break;
*/
default :
break;
}
// if(someCallbackData.wParam()>=StartDynamicID)handleOpenProject(someCallbackData);
return (CallbackData::ReturnType)FALSE;
// return FALSE;
}
CallbackData::ReturnType MainFrame::keyDownHandler(CallbackData &/*someCallbackData*/)
{
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType MainFrame::paintHandler(CallbackData &/*someCallbackData*/)
{
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType MainFrame::createHandler(CallbackData &callbackData)
{
::DragAcceptFiles(*this,true);
// insert(*::new FretViewWindow());
// operator[](size()-1).createWindow(*this,String(STRING_FRETVIEWWINDOWCLASSNAME),"Fretboard","fretMenu","APP_ICON");
createControls(callbackData);
Control desktop(::GetDesktopWindow(),0,false);
setWindowPos(desktop.width()>InitialWidth?InitialWidth:desktop.width(),desktop.height()>InitialHeight?InitialHeight:desktop.height());
show(SW_SHOW);
update();
mStatusControl->setText("Ready.");
// updateHistory();
// if(!validateLicense())postMessage(*this,WM_CLOSE,0,0L);
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType MainFrame::dropFilesHandler(CallbackData &someCallbackData)
{
/* Block<String> strFileNames;
String strPathFileName;
String strPathFileProject;
String strExtension;
File inFile;
GlobalDefs::outDebug("MainFrame::dropFileHandler");
DragQueryFile::getFileNames((HDROP)someCallbackData.wParam(),strFileNames);
for(int index=0;index<strFileNames.size();index++)
{
strPathFileName=strFileNames[index];
strExtension=Profile::getExtension(strPathFileName);
strExtension.lower();
if(strExtension==String(STRING_TABEXTENSION))
{
strPathFileProject=Tablature::getPathFileProject(strPathFileName);
if(!inFile.open(strPathFileProject))
{
createProjectView(strFileNames[index]);
}
else
{
inFile.close();
openProjectView(strPathFileProject);
}
}
else if(strExtension==String(STRING_PRJEXTENSION))
{
openProjectView(strPathFileName);
}
else if(strExtension==String(STRING_MIDIEXTENSION))
{
String strPathTabFileName;
MIDIHelper midiHelper;
CursorControl cursorControl;
MIDIDialog midiDialog;
License license;
int selectedTrack;
Registration::getInstance().getLicense(license);
if(!license.allowFeature(License::MIDIFeature))
{
MessageBox::messageBox(*this,strPathFileName,"This feature is disabled in this version.",MB_ICONSTOP);
return false;
}
if(!midiDialog.perform(*this,strPathFileName,selectedTrack))continue;
strPathTabFileName=Profile::removeExtension(strPathFileName)+String("TRK")+String().fromInt(selectedTrack+1)+String(".tab");
if(!midiHelper.import(strPathFileName,strPathTabFileName,selectedTrack))
{
MessageBox::messageBox(*this,strPathFileName,"Error importing file.",MB_ICONSTOP);
return false;
}
cursorControl.waitCursor(true);
createProjectView(strPathTabFileName);
cursorControl.waitCursor(false);
}
else return false;
}
*/
return false;
}
CallbackData::ReturnType MainFrame::queryEndSessionHandler(CallbackData &someCallbackData)
{
if(getClient().hasChildren())return (CallbackData::ReturnType)FALSE;
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType MainFrame::closeHandler(CallbackData &someCallbackData)
{
destroy();
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType MainFrame::destroyHandler(CallbackData &/*someCallbackData*/)
{
removeHandlers();
::PostQuitMessage(0);
return (CallbackData::ReturnType)FALSE;
}
CallbackData::ReturnType MainFrame::sizeHandler(CallbackData &someCallbackData)
{
Rect statusRect;
Rect toolRect;
Rect cRect;
mToolBar.windowRect(toolRect);
mStatusControl->windowRect(statusRect);
cRect.right(someCallbackData.loWord());
cRect.bottom(someCallbackData.hiWord());
getClient().moveWindow(0,toolRect.bottom()-toolRect.top(),cRect.right(),cRect.bottom()-((statusRect.bottom()-statusRect.top())+(toolRect.bottom()-toolRect.top())));
return (CallbackData::ReturnType)FALSE;
}
void MainFrame::createControls(const CallbackData &callbackData)
{
Rect statusRect;
Rect toolRect;
Rect cRect;
createToolBar();
mStatusControl=::new StatusBarEx(*this,StatusBarID);
mStatusControl.disposition(PointerDisposition::Delete);
mToolBar.windowRect(toolRect);
mStatusControl->windowRect(statusRect);
cRect.right(callbackData.loWord());
cRect.bottom(callbackData.hiWord());
getClient().moveWindow(0,toolRect.bottom()-toolRect.top(),cRect.right(),cRect.bottom()-((statusRect.bottom()-statusRect.top())+(toolRect.bottom()-toolRect.top())));
}
void MainFrame::createToolBar(void)
{
Block<AddBitmap> addBitmaps;
mToolBar.create(*this,ToolBarID);
addBitmaps.insert(&AddBitmap(0,HINST_COMMCTRL));
if(!mToolBar.addBitmaps(addBitmaps))return;
mToolBar.addButton(ToolBarButton(STD_FILEOPEN,MENU_FILE_OPEN,ToolBarButton::StateEnabled,ToolBarButton::StyleButton));
mToolBar.addButton(ToolBarButton(STD_FILENEW,MENU_FILE_NEW,ToolBarButton::StateEnabled,ToolBarButton::StyleButton));
// mToolBar.addButton(ToolBarButton(STD_FILESAVE,MENU_FILE_SAVE,ToolBarButton::StateEnabled,ToolBarButton::StyleButton));
// mToolBar.addButton(ToolBarButton(STD_PRINT,MENU_FILE_PRINT,ToolBarButton::StateEnabled,ToolBarButton::StyleButton));
mToolBar.addButton(ToolBarButton(STD_CUT,-1,ToolBarButton::StateIndeterminate,ToolBarButton::StyleButton));
mToolBar.addButton(ToolBarButton(STD_COPY,-1,ToolBarButton::StateIndeterminate,ToolBarButton::StyleButton));
mToolBar.addButton(ToolBarButton(STD_PASTE,-1,ToolBarButton::StateIndeterminate,ToolBarButton::StyleButton));
mToolBar.addButton(ToolBarButton(STD_FIND,-1,ToolBarButton::StateIndeterminate,ToolBarButton::StyleButton));
}
/*
void MainFrame::openProjectView(const String &strPathProjectFile)
{
SmartPointer<MDIWindow> mdiWindow;
ViewWindow *pViewWindow;
if(strPathProjectFile.isNull())return;
if(isActive(mdiWindow,strPathProjectFile))
{
mdiWindow->top();
return;
}
insert(*(pViewWindow=::new ViewWindow));
operator[](size()-1).createWindow(*this,String(STRING_TABVIEWWINDOWCLASSNAME),"Tablature","viewMenu","APP_ICON");
pViewWindow->setStatusControlRef(mStatusControl);
if(!pViewWindow->openProject(strPathProjectFile))
{
pViewWindow->close();
return;
}
else pViewWindow->setFretboardHandler(CallbackPointer(&mGUIFretboardHandler));
updateHistory(strPathProjectFile);
}
*/
/*
void MainFrame::createProjectView(const String &strPathTabFile)
{
SmartPointer<MDIWindow> mdiWindow;
ViewWindow *pViewWindow;
if(strPathTabFile.isNull())return;
insert(*(pViewWindow=::new ViewWindow));
operator[](size()-1).createWindow(*this,String(STRING_TABVIEWWINDOWCLASSNAME),"Tablature","viewMenu","APP_ICON");
pViewWindow->setStatusControlRef(mStatusControl);
if(!pViewWindow->createProject(strPathTabFile))
{
pViewWindow->close();
}
else
{
pViewWindow->setFretboardHandler(CallbackPointer(&mGUIFretboardHandler));
updateHistory(pViewWindow->getPathFileProject());
}
}
*/
/*
void MainFrame::createProjectView(void)
{
SmartPointer<MDIWindow> mdiWindow;
ViewWindow *pViewWindow;
insert(*(pViewWindow=::new ViewWindow));
operator[](size()-1).createWindow(*this,String(STRING_TABVIEWWINDOWCLASSNAME),"Tablature","viewMenu","APP_ICON");
pViewWindow->setStatusControlRef(mStatusControl);
if(!pViewWindow->createProject())
{
pViewWindow->close();
}
else pViewWindow->setFretboardHandler(CallbackPointer(&mGUIFretboardHandler));
mStatusControl->setText(String(STRING_EDITHINT));
}
*/
/*
bool MainFrame::isActive(SmartPointer<MDIWindow> &viewWindow,const String &strPathFileProject)
{
SmartPointer<MDIWindow> mdiWindow;
Array<SmartPointer<MDIWindow> > mdiWindows;
String strTitle;
if(!getDocuments(mdiWindows))return false;
for(int index=0;index<mdiWindows.size();index++)
{
mdiWindow=mdiWindows[index];
if(mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME))
{
ViewWindow &view=(ViewWindow&)*mdiWindow;
if(view.getTitle()==strPathFileProject)
{
viewWindow=mdiWindow;
return true;
}
}
}
return false;
}
*/
// menu handlers
/*
void MainFrame::handleEntryProperties(void)
{
SmartPointer<MDIWindow> mdiWindow;
if(!getActive(mdiWindow)||!(mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME)))return;
((ViewWindow&)*mdiWindow).modifyProperties();
return;
}
*/
/*
void MainFrame::handleFilePrint(void)
{
Printer printer;
PrintManager printManager;
SmartPointer<MDIWindow> mdiWindow;
String strCaption;
PureBitmap pureBitmap;
Rect windowRect;
if(!printManager.choosePrinter(*this,printer))return;
if(!getActive(mdiWindow))return;
mdiWindow->windowText(strCaption);
mdiWindow->windowRect(windowRect);
pureBitmap.screenBitmap(windowRect);
if(!printManager.openPrinter(printer,*this,strCaption))
{
::MessageBeep(0);
MessageBox::messageBox(*this,printer.printerName(),"Error opening printer, check the printer and try again.",MB_ICONSTOP);
return;
}
if(!printManager.printBitmap(pureBitmap,true,(WORD)300))
{
::MessageBeep(0);
MessageBox::messageBox(*this,printer.printerName(),"Error sending document to printer, check the printer and try again.",MB_ICONSTOP);
}
printManager.closePrinter();
}
*/
void MainFrame::handleFileNew(void)
{
SmartPointer<MDIWindow> mdiWindow;
ViewWindow *pViewWindow;
// if(strPathTabFile.isNull())return;
insert(*(pViewWindow=::new ViewWindow));
operator[](size()-1).createWindow(*this,String(STRING_DRUMVIEWWINDOWCLASSNAME),"Drums","viewMenu","APP_ICON");
pViewWindow->show(SW_SHOW);
pViewWindow->top();
// pViewWindow->setStatusControlRef(mStatusControl);
// if(!pViewWindow->createProject(strPathTabFile))
// {
// pViewWindow->close();
// }
// else
// {
// pViewWindow->setFretboardHandler(CallbackPointer(&mGUIFretboardHandler));
// updateHistory(pViewWindow->getPathFileProject());
// }
}
void MainFrame::handleFileOpen(void)
{
}
void MainFrame::handleFileExit(void)
{
postMessage(*this,WM_CLOSE,0,0L);
}
/*
void MainFrame::handleFileImport(void)
{
OpenDialog openDialog;
String strPathTabFile;
openDialog.creationFlags(OpenDialog::ALLOWMULTISELECT);
if(!openDialog.getOpenFileName(*this,"*.tab","Open Tab","*.tab",strPathTabFile))return;
for(int index=0;index<openDialog.size();index++)
{
strPathTabFile=openDialog[index];
createProjectView(strPathTabFile);
}
}
*/
/*
void MainFrame::handleOpenProject(CallbackData &someCallbackData)
{
PureMenu fileMenu;
String menuItemString;
getFrameMenu().getSubMenu(0,fileMenu);
menuItemString=fileMenu.menuItemString(someCallbackData.wParam(),PureMenu::ByCommand);
if(menuItemString.isNull())return;
menuItemString=menuItemString.betweenString(')',0);
menuItemString.trimLeft();
handleOpenProject(menuItemString);
}
*/
/*
void MainFrame::handleOpenProject(void)
{
OpenDialog openDialog;
String strPathFileName;
openDialog.creationFlags(OpenDialog::ALLOWMULTISELECT);
if(!openDialog.getOpenFileName(*this,String(STRING_PRJALLEXTENSION),"Open Project",String(STRING_PRJALLEXTENSION),strPathFileName))return;
for(int index=0;index<openDialog.size();index++)
{
strPathFileName=openDialog[index];
handleOpenProject(strPathFileName);
}
}
*/
/*
void MainFrame::handleOpenProject(const String &strPathFileProject)
{
openProjectView(strPathFileProject);
}
*/
/*
void MainFrame::handleFileClose(void)
{
SmartPointer<MDIWindow> mdiWindow;
if(!getActive(mdiWindow))return;
mdiWindow->close();
}
*/
/*
void MainFrame::handleFileSave(void)
{
SmartPointer<MDIWindow> mdiWindow;
if(!getActive(mdiWindow)||!(mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME)))return;
ViewWindow &viewWindow=(ViewWindow&)*mdiWindow;
String strTitle=viewWindow.getTitle();
if(viewWindow.getTitle()==String(STRING_NOTITLE)){handleFileSaveAs();return;}
viewWindow.saveProject();
return;
}
*/
/*
void MainFrame::handleFileSaveAs(void)
{
SmartPointer<MDIWindow> mdiWindow;
OpenDialog openDialog;
String strPathFileProject;
if(!getActive(mdiWindow)||!(mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME)))return;
if(!openDialog.getSaveFileName(*this,"Project Files","Project Save",String(STRING_PRJALLEXTENSION),strPathFileProject))return;
if(!strPathFileProject.strstr(String(STRING_PRJEXTENSION)))strPathFileProject+=String(STRING_PRJEXTENSION);
((ViewWindow&)*mdiWindow).saveProject(strPathFileProject);
updateHistory(strPathFileProject);
}
*/
/*
void MainFrame::handleChordLookup()
{
ChordDialog chordDialog;
chordDialog.perform(*this,CallbackPointer(&mGUIFretboardHandler));
}
*/
/*
void MainFrame::handleChordEnter()
{
ChordBuilderDialog chordBuilderDialog;
chordBuilderDialog.perform(*this,CallbackPointer(&mGUIFretboardHandler));
}
*/
/*
void MainFrame::handlePlayTablature(void)
{
SmartPointer<MDIWindow> mdiWindow;
if(!getActive(mdiWindow)||!(mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME)))return;
((ViewWindow&)*mdiWindow).play();
return;
}
*/
/*
void MainFrame::handlePlayTablatureFromCurrent()
{
SmartPointer<MDIWindow> mdiWindow;
if(!getActive(mdiWindow)||!(mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME)))return;
((ViewWindow&)*mdiWindow).playFromCurrent();
return;
}
*/
/*
void MainFrame::handleStopPlay(void)
{
SmartPointer<MDIWindow> mdiWindow;
if(!getActive(mdiWindow)||!(mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME)))return;
((ViewWindow&)*mdiWindow).stopPlay();
return;
}
*/
/*
void MainFrame::handlePlayRepeated()
{
SmartPointer<MDIWindow> mdiWindow;
if(!getActive(mdiWindow)||!(mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME)))return;
((ViewWindow&)*mdiWindow).playRepeated();
return;
}
*/
/*
void MainFrame::handlePlayRange(void)
{
SmartPointer<MDIWindow> mdiWindow;
RangeDialog rangeDialog;
TabRanges ranges;
if(!getActive(mdiWindow)||!(mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME)))return;
ViewWindow &viewWindow=((ViewWindow&)*mdiWindow);
viewWindow.getTabRanges(ranges);
if(!rangeDialog.perform(*this,ranges,viewWindow.getNumTabEntries(),true))return;
viewWindow.playRange(rangeDialog.getSelection());
}
*/
/*
void MainFrame::handlePlayRangeRepeated(void)
{
SmartPointer<MDIWindow> mdiWindow;
ViewWindow *pViewWindow;
RangeDialog rangeDialog;
TabRanges ranges;
if(!getActive(mdiWindow)||!(mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME)))return;
ViewWindow &viewWindow=((ViewWindow&)*mdiWindow);
viewWindow.getTabRanges(ranges);
if(!rangeDialog.perform(*this,ranges,viewWindow.getNumTabEntries(),true))return;
viewWindow.playRangeRepeated(rangeDialog.getSelection());
}
*/
/*
void MainFrame::handleIncreaseTempo(void)
{
SmartPointer<MDIWindow> mdiWindow;
if(!getActive(mdiWindow)||!(mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME)))return;
((ViewWindow&)*mdiWindow).increaseTempo();
return;
}
*/
/*
void MainFrame::handleDecreaseTempo(void)
{
SmartPointer<MDIWindow> mdiWindow;
if(!getActive(mdiWindow)||!(mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME)))return;
((ViewWindow&)*mdiWindow).decreaseTempo();
return;
}
*/
/*
void MainFrame::handleCut(void)
{
SmartPointer<MDIWindow> mdiWindow;
if(!getActive(mdiWindow))return;
if((mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME)))((ViewWindow&)*mdiWindow).cut();
else if((mdiWindow->className()==String(STRING_FRETVIEWWINDOWCLASSNAME)))((FretViewWindow&)*mdiWindow).cut();
return;
}
*/
/*
void MainFrame::handleCopy(void)
{
SmartPointer<MDIWindow> mdiWindow;
if(!getActive(mdiWindow))return;
if((mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME)))((ViewWindow&)*mdiWindow).copy();
else if((mdiWindow->className()==String(STRING_FRETVIEWWINDOWCLASSNAME)))((FretViewWindow&)*mdiWindow).copy();
return;
}
*/
/*
void MainFrame::handlePaste(void)
{
SmartPointer<MDIWindow> mdiWindow;
if(!getActive(mdiWindow))return;
if((mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME)))((ViewWindow&)*mdiWindow).paste();
else if((mdiWindow->className()==String(STRING_FRETVIEWWINDOWCLASSNAME)))((FretViewWindow&)*mdiWindow).paste();
return;
}
*/
/*
void MainFrame::handleSettings(void)
{
SettingsDialog settingsDialog;
settingsDialog.perform(*this);
}
*/
/*
void MainFrame::handleSetStartRange(void)
{
SmartPointer<MDIWindow> mdiWindow;
if(!getActive(mdiWindow)||!(mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME)))return;
((ViewWindow&)*mdiWindow).setStartRange();
return;
}
*/
/*
void MainFrame::handleSetEndRange(void)
{
SmartPointer<MDIWindow> mdiWindow;
if(!getActive(mdiWindow)||!(mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME)))return;
((ViewWindow&)*mdiWindow).setEndRange();
return;
}
*/
/*
void MainFrame::handleViewFretboard(void)
{
SmartPointer<MDIWindow> fretWindow;
if(!getDocumentClass(String(STRING_FRETVIEWWINDOWCLASSNAME),fretWindow))
{
insert(*::new FretViewWindow());
operator[](size()-1).createWindow(*this,String(STRING_FRETVIEWWINDOWCLASSNAME),"Fretboard","fretMenu","APP_ICON");
getDocumentClass(String(STRING_FRETVIEWWINDOWCLASSNAME),fretWindow);
}
if(fretWindow->isIconic())fretWindow->show(SW_RESTORE);
else fretWindow->top();
}
*/
/*
void MainFrame::handleShowAllPositions(void)
{
SmartPointer<MDIWindow> mdiWindow;
if(!getActive(mdiWindow)||!(mdiWindow->className()==String(STRING_FRETVIEWWINDOWCLASSNAME)))
{
handleViewFretboard();
return;
}
FretViewWindow &fretViewWindow=((FretViewWindow&)*mdiWindow);
fretViewWindow.showAllPositions();
}
*/
/*
void MainFrame::handleClearFretboard(void)
{
SmartPointer<MDIWindow> mdiWindow;
if(!getActive(mdiWindow)||!(mdiWindow->className()==String(STRING_FRETVIEWWINDOWCLASSNAME)))
{
handleViewFretboard();
getActive(mdiWindow);
}
FretViewWindow &fretViewWindow=((FretViewWindow&)*mdiWindow);
fretViewWindow.clearNotes();
}
*/
/*
void MainFrame::handleEditRanges(void)
{
SmartPointer<MDIWindow> mdiWindow;
RangeDialog rangeDialog;
TabRanges ranges;
if(!getActive(mdiWindow)||!(mdiWindow->className()==String(STRING_TABVIEWWINDOWCLASSNAME)))return;
ViewWindow &viewWindow=((ViewWindow&)*mdiWindow);
viewWindow.getTabRanges(ranges);
if(!rangeDialog.perform(*this,ranges,viewWindow.getNumTabEntries()))return;
viewWindow.setTabRanges(rangeDialog.getTabRanges());
}
*/
/*
void MainFrame::handleShowScales()
{
ScaleDialog scaleDialog;
scaleDialog.perform(*this,CallbackPointer(&mGUIFretboardHandler));
}
*/
/*
void MainFrame::handleHelpAbout()
{
VersionInfo versionInfo;
SplashScreen splash("GUITAR","2002 - Diversified Software Solutions. \"http:\\www.guitartabpro.com\"",versionInfo.getProductNameString()+String(" ")+versionInfo.getProductVersion());
splash.perform();
}
*/
/*
void MainFrame::handleHelpIndex(void)
{
if(!BrowserHelper::launchBrowser(String(STRING_HOST)))
{
MessageBox::messageBox(*this,"Error","Unable to launch browser.");
return;
}
}
*/
/*
void MainFrame::applyHistory(PureMenu &pureMenu)
{
Registry registry;
Block<String> nameList;
PureMenu fileMenu;
String strItem;
registry.getHistory(nameList);
if(!nameList.size())return;
pureMenu.getSubMenu(0,fileMenu);
fileMenu.appendSeparator();
for(int itemIndex=0;itemIndex<nameList.size();itemIndex++)
{
::sprintf(strItem,"%d) %s",itemIndex+1,(char*)nameList[itemIndex]);
fileMenu.appendMenu(StartDynamicID+itemIndex,strItem);
}
}
*/
/*
void MainFrame::updateHistory(void)
{
Registry registry;
SmartPointer<MDIWindow> mdiWindow;
Array<SmartPointer<MDIWindow> > mdiWindows;
removeHistory(getFrameMenu());
applyHistory(getFrameMenu());
if(!getDocuments(mdiWindows))return;
for(int index=0;index<mdiWindows.size();index++)
{
mdiWindow=mdiWindows[index];
removeHistory(mdiWindow->getMenu());
applyHistory(mdiWindow->getMenu());
}
}
*/
/*
void MainFrame::updateHistory(const String &pathFileName)
{
Registry registry;
SmartPointer<MDIWindow> mdiWindow;
Array<SmartPointer<MDIWindow> > mdiWindows;
if(!registry.insertHistory(pathFileName))return;
removeHistory(getFrameMenu());
applyHistory(getFrameMenu());
if(!getDocuments(mdiWindows))return;
for(int index=0;index<mdiWindows.size();index++)
{
mdiWindow=mdiWindows[index];
removeHistory(mdiWindow->getMenu());
applyHistory(mdiWindow->getMenu());
}
}
*/
/*
void MainFrame::removeHistory(PureMenu &pureMenu)
{
Registry registry;
UINT startID(StartDynamicID);
Block<String> nameList;
PureMenu fileMenu;
registry.getHistory(nameList);
if(!nameList.size())return;
pureMenu.getSubMenu(0,fileMenu);
for(int itemIndex=0;itemIndex<nameList.size();itemIndex++)fileMenu.removeMenu(startID++,PureMenu::ByCommand);
int entries(fileMenu.size());
if((int)PureMenu::TypeSeparator&(int)fileMenu.getMenuItemType(entries-1,PureMenu::ByPosition))fileMenu.removeMenu(entries-1,PureMenu::ByPosition);
}
*/
/*
bool MainFrame::validateLicense(void)const
{
License license;
Registration::getInstance().getLicense(license);
if(!license.isValid()||license.isExpiring())
{
LicenseDialog licenseDialog;
Registration::getInstance().removeLicense();
if(!licenseDialog.perform((GUIWindow&)*this))return false;
}
return true;
}
*/
/*
void MainFrame::handleHelpApplyLicense(void)
{
LicenseDialog licenseDialog;
if(Registration::getInstance().hasLicense())
{
License license;
Registration::getInstance().getLicense(license);
if(license.isValid()&&!license.isExpiring())
{
MessageBox::messageBox(*this,"License","You already own a permanent license for this product.",MB_OK);
return;
}
}
licenseDialog.perform(*this,false);
}
*/
// ** virtuals
void MainFrame::preRegister(WNDCLASS &wndClass)
{
wndClass.style|=CS_SAVEBITS|CS_OWNDC;
wndClass.hbrBackground=(HBRUSH)::GetStockObject(GRAY_BRUSH);
}
bool MainFrame::preDestroy(MDIWindow &mdiWindow)
{
/* LRESULT retCode;
if(mdiWindow.className()==String(STRING_TABVIEWWINDOWCLASSNAME))
{
ViewWindow &viewWindow=(ViewWindow&)mdiWindow;
if(viewWindow.isDirty()&&IDYES==(retCode=MessageBox::messageBox(*this,String("[")+viewWindow.getTitle()+String("]"),"Save Changes",MB_YESNOCANCEL)))
{
viewWindow.saveProject();
}
else if(IDCANCEL==retCode)return true;
}
*/
return false;
}
void MainFrame::mdiDestroy(MDIWindow &mdiWindow)
{
}
void MainFrame::mdiActivate(MDIWindow &mdiWindow)
{
/* removeHistory(mdiWindow.getMenu());
applyHistory(mdiWindow.getMenu());
if(mdiWindow.className()==String(STRING_TABVIEWWINDOWCLASSNAME))
{
ViewWindow &viewWindow=(ViewWindow&)mdiWindow;
}
*/
}
void MainFrame::mdiDeactivate(MDIWindow &mdiWindow)
{
}