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
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
|
|
|