Files
Work/pop/POPDLG.HPP
2024-08-07 09:16:27 -04:00

98 lines
3.2 KiB
C++

#ifndef _POP_POPDLG_HPP_
#define _POP_POPDLG_HPP_
#ifndef _COMMON_DWINDOW_HPP_
#include <common/dwindow.hpp>
#endif
#ifndef _COMMON_SMARTPOINTER_HPP_
#include <common/pointer.hpp>
#endif
#ifndef _COMMON_RECTANGLE_HPP_
#include <common/rect.hpp>
#endif
#ifndef _COMMON_GDIPOINT_HPP_
#include <common/gdipoint.hpp>
#endif
#ifndef _POP_POP_HPP_
#include <pop/pop.hpp>
#endif
#ifndef _IMAGELIST_IMAGELIST_HPP_
#include <imagelst/imagelst.hpp>
#endif
#ifndef _COMMON_PUREBITMAP_HPP_
#include <common/purebmp.hpp>
#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<String> &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<POPDlg> mInitHandler;
Callback<POPDlg> mDestroyHandler;
Callback<POPDlg> mCommandHandler;
Callback<POPDlg> mCloseHandler;
Callback<POPDlg> mDlgCodeHandler;
Callback<POPDlg> mMailSelChangedHandler;
Callback<POPDlg> mMailBeginDragHandler;
Callback<POPDlg> mFolderBeginDragHandler;
Callback<POPDlg> mMouseMoveHandler;
Callback<POPDlg> mLeftButtonUpHandler;
Callback<POPDlg> mRightButtonDownHandler;
Callback<POPDlg> mRightButtonUpHandler;
SmartPointer<StatusBar> mStatusBar;
SmartPointer<FolderTree> mFolderTree;
SmartPointer<FolderTree> mMailTree;
Block<Mail> mMailBlock;
BOOL mIsInDrag;
HTREEITEM mhItemDrag;
HTREEITEM mhItemDrop;
ImageList mImageList;
};
inline
LPARAM POPDlg::makeItemID(NodeType nodeType,WORD itemID)
{
return MAKELPARAM(itemID,nodeType);
}
#endif