#include #include #include TabDialog::TabDialog(void) : mCurrEntryIndex(0) { mInitHandler.setCallback(this,&TabDialog::initHandler); mCreateHandler.setCallback(this,&TabDialog::createHandler); mCloseHandler.setCallback(this,&TabDialog::closeHandler); mDestroyHandler.setCallback(this,&TabDialog::destroyHandler); mCommandHandler.setCallback(this,&TabDialog::commandHandler); insertHandler(VectorHandler::InitDialogHandler,&mInitHandler); insertHandler(VectorHandler::CreateHandler,&mCreateHandler); insertHandler(VectorHandler::CloseHandler,&mCloseHandler); insertHandler(VectorHandler::CommandHandler,&mCommandHandler); insertHandler(VectorHandler::DestroyHandler,&mDestroyHandler); } TabDialog::TabDialog(const TabDialog &someTabDialog) { // private implementation *this=someTabDialog; } TabDialog::~TabDialog() { removeHandler(VectorHandler::InitDialogHandler,&mInitHandler); removeHandler(VectorHandler::CreateHandler,&mCreateHandler); removeHandler(VectorHandler::CloseHandler,&mCloseHandler); removeHandler(VectorHandler::CommandHandler,&mCommandHandler); removeHandler(VectorHandler::DestroyHandler,&mDestroyHandler); } TabDialog &TabDialog::operator=(const TabDialog &someTabDialog) { // private implementation return *this; } bool TabDialog::perform(GUIWindow &parentWindow,TabEntries &entries,int currEntryIndex) { mTabEntries=SmartPointer(&entries); mCurrEntryIndex=currEntryIndex; return ::DialogBoxParam(processInstance(),(LPSTR)"TABDIALOG",(HWND)parentWindow,DWindow::DlgProc,(LPARAM)(DWindow*)this); } CallbackData::ReturnType TabDialog::initHandler(CallbackData &someCallbackData) { Block stops; mTabEntryList=::new OwnerDrawListAltColor(*this,getItem(TABENTRY_LIST),TABENTRY_LIST); mTabEntryList.disposition(PointerDisposition::Delete); stops.insert(&PureDWORD(15)); stops.insert(&PureDWORD(35)); stops.insert(&PureDWORD(50)); mTabEntryList->setTabStops(stops); setTypes(); TabEntry &entry=(*mTabEntries)[mCurrEntryIndex]; for(int index=0;indexinsertString(strLine); } mTabEntryList->setCurrent(0); return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType TabDialog::createHandler(CallbackData &someCallbackData) { return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType TabDialog::closeHandler(CallbackData &someCallbackData) { return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType TabDialog::destroyHandler(CallbackData &someCallbackData) { return (CallbackData::ReturnType)FALSE; } CallbackData::ReturnType TabDialog::commandHandler(CallbackData &someCallbackData) { switch(someCallbackData.wmCommandID()) { case IDCANCEL : endDialog(false); break; case IDOK : handleOk(); endDialog(true); break; } return (CallbackData::ReturnType)FALSE; } void TabDialog::setTypes() { Array notes; sendMessage(TABENTRY_NOTETYPE,CB_RESETCONTENT,0,0L); notes=NoteType::enumerate(); int currSel=-1; TabEntry &entry=(*mTabEntries)[mCurrEntryIndex]; for(int index=0;indexsize();index++) { TabEntry &entry=(*mTabEntries)[index]; entry.setNoteType(noteType); } } else { TabEntry &entry=(*mTabEntries)[mCurrEntryIndex]; entry.setNoteType(noteType); } }