Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

173 lines
3.8 KiB

//
// wpopup.h
//
#ifndef WPOPUP_H
#define WPOPUP_H
#include "private.h"
#include "mscandui.h"
#include "cuilib.h"
#include "cuicand.h"
#include "cuicand2.h"
#include "candmgr.h"
#include "candprop.h"
class CCandidateUI;
class CCandWindow;
//
// CCommentListItem
// = comment list item object =
//
class CCommentListItem : public CListItemBase
{
public:
CCommentListItem( int iCandItem, CCandidateItem *pCandItem )
{
Assert( pCandItem != NULL );
m_iCandItem = iCandItem;
m_pCandItem = pCandItem;
m_nHeight = 0;
}
virtual ~CCommentListItem( void )
{
}
int GetICandItem( void )
{
return m_iCandItem;
}
CCandidateItem *GetCandidateItem( void )
{
return m_pCandItem;
}
void SetHeight( int nHeight )
{
m_nHeight = nHeight;
}
int GetHeight( void )
{
return m_nHeight;
}
protected:
int m_iCandItem;
CCandidateItem *m_pCandItem;
int m_nHeight;
};
//
// CUIFCommentList
// = popup comment list obeject =
//
class CUIFCommentList : public CUIFListBase
{
public:
CUIFCommentList( CUIFObject *pParent, DWORD dwID, const RECT *prc, DWORD dwStyle );
virtual ~CUIFCommentList( void );
void AddCommentItem( CCommentListItem *pListItem );
CCommentListItem *GetCommentItem( int iListItem );
virtual void SetRect( const RECT *prc );
void InitItemHeight( void );
int GetTotalHeight( void );
int GetMinimumWidth( void );
void SetTitleFont( HFONT hFont );
void SetTextFont( HFONT hFont );
protected:
int m_cyTitle;
int m_cyTitleMargin;
int m_cxCommentMargin;
int m_cyCommentMargin;
HFONT m_hFontTitle;
HFONT m_hFontText;
//
// CUIFListBase methods
//
virtual int GetItemHeight( int iItem );
virtual void PaintItemProc( HDC hDC, RECT *prc, CListItemBase *pItem, BOOL fSelected );
int PaintCommentProc( HDC hDC, const RECT *prc, LPCWSTR pwch, BOOL fCalcOnly );
int CalcMinimumWidth( void );
void CalcTitleHeight( void );
void CalcItemHeight( void );
void CalcItemHeightProc( HDC hDC, CCommentListItem *pListItem );
};
//
// CPopupCommentWindow
// = candidate window base class =
//
class CPopupCommentWindow : public CUIFWindow,
public CCandListEventSink,
public CCandUIPropertyEventSink
{
public:
CPopupCommentWindow( CCandWindow *pCandWnd, CCandidateUI *pCandUI );
virtual ~CPopupCommentWindow( void );
//
// CUIFWindow methods
//
virtual LPCTSTR GetClassName( void );
virtual LPCTSTR GetWndTitle( void );
virtual CUIFObject *Initialize( void );
virtual void Move( int x, int y, int nWidth, int nHeight );
virtual LRESULT OnWindowPosChanged( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );
virtual LRESULT OnObjectNotify( CUIFObject *pUIObj, DWORD dwCommand, LPARAM lParam );
virtual void OnCreate( HWND hWnd );
virtual void OnNCDestroy( HWND hWnd );
//
// CCandListEventSink methods
//
virtual void OnSetCandidateList( void );
virtual void OnClearCandidateList( void );
virtual void OnCandItemUpdate( void );
virtual void OnSelectionChanged( void );
//
// CCandUIPropertyEventSink methods
//
virtual void OnPropertyUpdated( CANDUIPROPERTY prop, CANDUIPROPERTYEVENT event );
void DestroyWnd( void );
void LayoutWindow( BOOL fResize = FALSE );
int LayoutWindowProc( RECT *prcWnd );
void OnCandWindowMove( BOOL fResetAnyway );
protected:
CCandidateUI *m_pCandUI;
CCandWindow *m_pCandWnd;
CUIFWndFrame *m_pWndFrame;
CUIFWndCaption *m_pCaption;
CUIFCaptionButton *m_pCloseBtn;
CUIFCommentList *m_pCommentList;
HICON m_hIconClose;
BOOL m_fUserMoved;
void SetCommentListProc( void );
void ClearCommentListProc( void );
int CandItemFromListItem( int iListItem );
void CalcPos( POINT *ppt, int nWidth, int nHeight );
};
#endif // WPOPUP_H