#include #include #include #include #include #include SettingsDialog::SettingsDialog(void) { mInitHandler.setCallback(this,&SettingsDialog::initHandler); mCreateHandler.setCallback(this,&SettingsDialog::createHandler); mCloseHandler.setCallback(this,&SettingsDialog::closeHandler); mDestroyHandler.setCallback(this,&SettingsDialog::destroyHandler); mCommandHandler.setCallback(this,&SettingsDialog::commandHandler); insertHandler(VectorHandler::InitDialogHandler,&mInitHandler); insertHandler(VectorHandler::CreateHandler,&mCreateHandler); insertHandler(VectorHandler::CloseHandler,&mCloseHandler); insertHandler(VectorHandler::CommandHandler,&mCommandHandler); insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler); } SettingsDialog::SettingsDialog(const SettingsDialog &someSettingsDialog) { // private implementation *this=someSettingsDialog; } SettingsDialog::~SettingsDialog() { removeHandler(VectorHandler::InitDialogHandler,&mInitHandler); removeHandler(VectorHandler::CreateHandler,&mCreateHandler); removeHandler(VectorHandler::CloseHandler,&mCloseHandler); removeHandler(VectorHandler::CommandHandler,&mCommandHandler); removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler); } SettingsDialog &SettingsDialog::operator=(const SettingsDialog &someSettingsDialog) { // private implementation return *this; } bool SettingsDialog::perform(GUIWindow &parentWindow) { Rect clientRect; parentWindow.clientRect(clientRect); mDisplayPoint.x((clientRect.right()-clientRect.left())/2); mDisplayPoint.y((clientRect.bottom()-clientRect.top())/2); return ::DialogBoxParam(processInstance(),(LPSTR)"SETTINGSDIALOG",(HWND)parentWindow,DWindow::DlgProc,(LPARAM)(DWindow*)this); } CallbackData::ReturnType SettingsDialog::initHandler(CallbackData &someCallbackData) { mDisplayPoint.x(mDisplayPoint.x()-(width()/2)); mDisplayPoint.y(mDisplayPoint.y()-(height()/2)); move(mDisplayPoint); initialize(); return (CallbackData::ReturnType)false; } CallbackData::ReturnType SettingsDialog::createHandler(CallbackData &someCallbackData) { return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType SettingsDialog::closeHandler(CallbackData &someCallbackData) { return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType SettingsDialog::destroyHandler(CallbackData &someCallbackData) { return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType SettingsDialog::commandHandler(CallbackData &someCallbackData) { switch(someCallbackData.wmCommandID()) { case IDCANCEL : endDialog(false); break; case IDOK : apply(); break; case SETTINGS_DEFAULTS : selectDefaults(); } return (CallbackData::ReturnType)FALSE; } void SettingsDialog::initialize(void) { Registry registry; sendMessage(SETTINGS_INSTRUMENT,CB_RESETCONTENT,0,0L); for(int index=0;index deviceNames; int currentSelection=-1; MIDIOutputDevice::getDeviceNames(deviceNames); sendMessage(SETTINGS_MIDIOUT,CB_RESETCONTENT,0,0L); deviceNames.insert(&String("MIDIMAPPER")); for(int index=0;index