update for HEAD-2003091401
[reactos.git] / subsys / system / explorer / Seashell / SeaShellExt / Include / uidragimage.h
1 //*******************************************************************************
2 // COPYRIGHT NOTES
3 // ---------------
4 // You may use this source code, compile or redistribute it as part of your application 
5 // for free. You cannot redistribute it as a part of a software development 
6 // library without the agreement of the author. If the sources are 
7 // distributed along with the application, you should leave the original 
8 // copyright notes in the source code without any changes.
9 // This code can be used WITHOUT ANY WARRANTIES at your own risk.
10 // 
11 // For the latest updates to this code, check this site:
12 // http://www.masmex.com 
13 // after Sept 2000
14 // 
15 // Copyright(C) 2000 Philip Oldaker <email: philip@masmex.com>
16 //*******************************************************************************
17
18 #if !defined(AFX_WIDGBASE_H__877329CA_C22E_11D0_B2D8_444553540000__INCLUDED_)
19 #define AFX_WIDGBASE_H__877329CA_C22E_11D0_B2D8_444553540000__INCLUDED_
20
21 #if _MSC_VER >= 1000
22 #pragma once
23 #endif // _MSC_VER >= 1000
24
25
26 /////////////////////////////////////////////////////////////////////////////
27 // CDragDropImage command target
28 class CDragDropItem : public CObject
29 {
30 public:
31         CDragDropItem(LPCRECT prcItem,LPCRECT prcIcon);
32     CRect m_rcItem;
33     CRect m_rcIcon;
34 };
35
36 inline CDragDropItem::CDragDropItem(LPCRECT prcItem,LPCRECT prcIcon) : m_rcItem(prcItem),m_rcIcon(prcIcon)
37 {
38 }
39
40 struct DD_ImageData 
41 {
42         CRect m_rcItem;
43         CRect m_rcIcon;
44         CPoint m_ptDrag;
45 };
46
47 class CDragDropImage : public CCmdTarget
48 {
49     DECLARE_DYNCREATE(CDragDropImage)
50 protected:
51         CDragDropImage();// protected constructor used by dynamic creation
52 public:
53     CDragDropImage(int nSelected,int nType);           
54     virtual ~CDragDropImage();
55 // Attributes
56 public:
57
58 // Operations
59 public:
60     void AddItem(LPCRECT prcItem,LPCRECT prcIcon);           
61
62     virtual void DrawDragImage (CDC *pDC,POINT point,POINT ActionPoint);
63
64 // Overrides
65     // ClassWizard generated virtual function overrides
66     //{{AFX_VIRTUAL(CDragDropImage)
67     //}}AFX_VIRTUAL
68
69 // Implementation
70 protected:
71         void DrawItemImage(CDC *pDC, POINT point,const CRect &rcItem,const CRect &rcIcon);
72
73         int m_nSelected;
74         int m_nType;
75         CTypedPtrList<CObList,CDragDropItem*> m_itemList;
76
77     // Generated message map functions
78     //{{AFX_MSG(CDragDropImage)
79         // NOTE - the ClassWizard will add and remove member functions here.
80     //}}AFX_MSG
81
82     DECLARE_MESSAGE_MAP()
83 };
84
85 /////////////////////////////////////////////////////////////////////////////
86
87 //{{AFX_INSERT_LOCATION}}
88 // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
89
90 #endif // !defined(AFX_WIDGBASE_H__877329CA_C22E_11D0_B2D8_444553540000__INCLUDED_)