#ifndef _NNTP_ENTRYDLG_HPP_ #define _NNTP_ENTRYDLG_HPP_ #ifndef _COMMON_DWINDOW_HPP_ #include #endif #ifndef _COMMON_WINDOW_HPP_ #include #endif #ifndef _COMMON_STRING_HPP_ #include #endif #ifndef _NNTP_RESOURCE_HPP_ #include #endif class OwnerDrawList; class EntryDialog : private DWindow { public: EntryDialog(const DWindow &parentWindow); virtual ~EntryDialog(); WORD performDialog(String &entryText); private: enum{EditText=NG_NEWSGROUP}; EntryDialog(const EntryDialog &someEntryDialog); EntryDialog &operator=(const EntryDialog &someEntryDialog); CallbackData::ReturnType initDialogHandler(CallbackData &someCallbackData); CallbackData::ReturnType commandHandler(CallbackData &someCallbackData); CallbackData::ReturnType dialogCodeHandler(CallbackData &someCallbackData); Callback mInitDialogHandler; Callback mCommandHandler; Callback mDialogCodeHandler; String mEditControlText; OwnerDrawList *mlpOwnerDrawList; HWND mhParent; }; inline EntryDialog::EntryDialog(const DWindow &parentWindow) : mhParent(parentWindow), mlpOwnerDrawList(0) { mInitDialogHandler.setCallback(this,&EntryDialog::initDialogHandler); mCommandHandler.setCallback(this,&EntryDialog::commandHandler); mDialogCodeHandler.setCallback(this,&EntryDialog::dialogCodeHandler); insertHandler(VectorHandler::CommandHandler,&mCommandHandler); insertHandler(VectorHandler::InitDialogHandler,&mInitDialogHandler); insertHandler(VectorHandler::DialogCodeHandler,&mDialogCodeHandler); } inline EntryDialog::EntryDialog(const EntryDialog &someEntryDialog) : mhParent(someEntryDialog.mhParent), mlpOwnerDrawList() { // no implementation mInitDialogHandler.setCallback(this,&EntryDialog::initDialogHandler); mCommandHandler.setCallback(this,&EntryDialog::commandHandler); mDialogCodeHandler.setCallback(this,&EntryDialog::dialogCodeHandler); } inline EntryDialog::~EntryDialog() { removeHandler(VectorHandler::CommandHandler,&mCommandHandler); removeHandler(VectorHandler::InitDialogHandler,&mInitDialogHandler); removeHandler(VectorHandler::DialogCodeHandler,&mDialogCodeHandler); } inline EntryDialog &EntryDialog::operator=(const EntryDialog &/*someEntryDialog*/) { // no implementation return *this; } #endif