#ifndef _POP_POPDLG_HPP_ #define _POP_POPDLG_HPP_ #ifndef _COMMON_DWINDOW_HPP_ #include #endif #ifndef _COMMON_SMARTPOINTER_HPP_ #include #endif #ifndef _COMMON_RECTANGLE_HPP_ #include #endif #ifndef _COMMON_GDIPOINT_HPP_ #include #endif #ifndef _POP_POP_HPP_ #include #endif #ifndef _IMAGELIST_IMAGELIST_HPP_ #include #endif #ifndef _COMMON_PUREBITMAP_HPP_ #include #endif class StatusBar; class FolderTree; class ServerReg; class Mail; class POPDlg : public DWindow { public: POPDlg(void); virtual ~POPDlg(); BOOL perform(void); protected: virtual void message(const String &messageString); virtual void message(Block &messageStrings); private: enum DlgControls{Server=PC_SERVER,GetMail=PC_GETMAIL,EditControl=PC_EDIT}; enum FolderCoords{xFolder=5,yFolder=50,cxFolder=235,cyFolder=150}; enum MailCoords{xMail=245,yMail=50,cxMail=235,cyMail=150}; enum {RootID=0}; enum NodeType{NullNode=0x0000,MailNode=0x0001}; POPDlg &operator=(const POPDlg &someMailDlg); CallbackData::ReturnType initHandler(CallbackData &someCallbackData); CallbackData::ReturnType destroyHandler(CallbackData &someCallbackData); CallbackData::ReturnType commandHandler(CallbackData &someCallbackData); CallbackData::ReturnType closeHandler(CallbackData &someCallbackData); CallbackData::ReturnType dlgCodeHandler(CallbackData &someCallbackData); CallbackData::ReturnType mailSelChangedHandler(CallbackData &someCallbackData); CallbackData::ReturnType mailBeginDragHandler(CallbackData &someCallbackData); CallbackData::ReturnType folderBeginDragHandler(CallbackData &someCallbackData); CallbackData::ReturnType mouseMoveHandler(CallbackData &someCallbackData); CallbackData::ReturnType leftButtonUpHandler(CallbackData &someCallbackData); CallbackData::ReturnType rightButtonUpHandler(CallbackData &someCallbackData); CallbackData::ReturnType rightButtonDownHandler(CallbackData &someCallbackData); void handleServer(CallbackData &someCallbackData); void userMessage(const String &message); void retrieveMail(void); void populateFolders(void); void populateMail(void); void getMail(void); void setDisplay(int itemID); BOOL handleLoginParams(ServerReg &serverReg); LPARAM makeItemID(NodeType nodeType,WORD itemID); void handleFolderDrag(void); void copyItem(HTREEITEM hDragItem,HTREEITEM hDropItem); Callback mInitHandler; Callback mDestroyHandler; Callback mCommandHandler; Callback mCloseHandler; Callback mDlgCodeHandler; Callback mMailSelChangedHandler; Callback mMailBeginDragHandler; Callback mFolderBeginDragHandler; Callback mMouseMoveHandler; Callback mLeftButtonUpHandler; Callback mRightButtonDownHandler; Callback mRightButtonUpHandler; SmartPointer mStatusBar; SmartPointer mFolderTree; SmartPointer mMailTree; Block mMailBlock; BOOL mIsInDrag; HTREEITEM mhItemDrag; HTREEITEM mhItemDrop; ImageList mImageList; }; inline LPARAM POPDlg::makeItemID(NodeType nodeType,WORD itemID) { return MAKELPARAM(itemID,nodeType); } #endif