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.
154 lines
3.8 KiB
154 lines
3.8 KiB
//
|
|
// cuibln.h
|
|
//
|
|
|
|
|
|
#ifndef CUIBLN_H
|
|
#define CUIBLN_H
|
|
|
|
#include "cuiobj.h"
|
|
#include "cuiwnd.h"
|
|
|
|
#define WNDCLASS_BALLOONWND "MSIME_PopupMessage"
|
|
#define WNDTITLE_BALLOONWND "MSIME_PopupMessage"
|
|
|
|
|
|
//
|
|
// CUIFBallloonButton
|
|
//
|
|
|
|
class CUIFBalloonButton : public CUIFButton
|
|
{
|
|
public:
|
|
CUIFBalloonButton( CUIFObject *pParent, DWORD dwID, const RECT *prc, DWORD dwStyle );
|
|
virtual ~CUIFBalloonButton( void );
|
|
|
|
//
|
|
// CUIFObject methods
|
|
//
|
|
virtual void OnPaint( HDC hDC );
|
|
|
|
int GetButtonID( void );
|
|
void SetButtonID( int iButtonID );
|
|
|
|
protected:
|
|
int m_iButtonID;
|
|
|
|
void DrawTextProc( HDC hDC, const RECT *prc, BOOL fDown );
|
|
};
|
|
|
|
|
|
//
|
|
// CUIFBalloonWindow
|
|
// = Balloon window class =
|
|
//
|
|
|
|
#define UIBALLOON_OK 0x00010000
|
|
#define UIBALLOON_YESNO 0x00020000
|
|
#define UIBALLOON_BUTTONS 0x000F0000 /* mask bit */
|
|
|
|
|
|
typedef enum _BALLOONWNDPOS
|
|
{
|
|
BALLOONPOS_ABOVE,
|
|
BALLOONPOS_BELLOW,
|
|
BALLOONPOS_LEFT,
|
|
BALLOONPOS_RIGHT,
|
|
} BALLOONWNDPOS;
|
|
|
|
|
|
typedef enum _BALLONWNDDIR
|
|
{
|
|
BALLOONDIR_LEFT,
|
|
BALLOONDIR_RIGHT,
|
|
BALLOONDIR_UP,
|
|
BALLOONDIR_DOWN,
|
|
} BALLOONWNDDIR;
|
|
|
|
|
|
typedef enum _BALLONWNDALIGN
|
|
{
|
|
BALLOONALIGN_CENTER,
|
|
BALLOONALIGN_LEFT,
|
|
BALLOONALIGN_TOP = BALLOONALIGN_LEFT,
|
|
BALLOONALIGN_RIGHT,
|
|
BALLOONALIGN_BOTTOM = BALLOONALIGN_RIGHT,
|
|
} BALLOONWNDALIGN;
|
|
|
|
|
|
class CUIFBalloonWindow : public CUIFWindow
|
|
{
|
|
public:
|
|
CUIFBalloonWindow( HINSTANCE hInst, DWORD dwStyle );
|
|
virtual ~CUIFBalloonWindow( void );
|
|
|
|
LPCTSTR GetClassName( void );
|
|
LPCTSTR GetWndTitle( void );
|
|
|
|
//
|
|
// CUIFObject methods
|
|
//
|
|
virtual CUIFObject *Initialize( void );
|
|
virtual void OnCreate( HWND hWnd );
|
|
virtual void OnDestroy( HWND hWnd );
|
|
virtual void OnPaint( HDC hDC );
|
|
virtual void OnKeyDown( HWND hWnd, WPARAM wParam, LPARAM lParam );
|
|
virtual LRESULT OnObjectNotify( CUIFObject *pUIObj, DWORD dwCommand, LPARAM lParam );
|
|
|
|
//
|
|
//
|
|
//
|
|
LRESULT SetText( LPCWSTR pwchMessage );
|
|
LRESULT SetNotifyWindow( HWND hWndNotify, UINT uiMsgNotify );
|
|
LRESULT SetBalloonPos( BALLOONWNDPOS pos );
|
|
LRESULT SetBalloonAlign( BALLOONWNDALIGN align );
|
|
LRESULT GetBalloonBkColor( void );
|
|
LRESULT GetBalloonTextColor( void );
|
|
LRESULT GetMargin( RECT *prc );
|
|
LRESULT GetMaxBalloonWidth( void );
|
|
LRESULT SetBalloonBkColor( COLORREF col );
|
|
LRESULT SetBalloonTextColor( COLORREF col );
|
|
LRESULT SetMargin( RECT *prc );
|
|
LRESULT SetMaxBalloonWidth( INT iWidth );
|
|
LRESULT SetButtonText( int idCmd, LPCWSTR pwszText );
|
|
LRESULT SetTargetPos( POINT ptTarget );
|
|
LRESULT SetExcludeRect( const RECT *prcExclude );
|
|
|
|
protected:
|
|
WCHAR *m_pwszText;
|
|
HRGN m_hWindowRgn;
|
|
RECT m_rcMargin;
|
|
INT m_iMaxTxtWidth;
|
|
BOOL m_fColBack;
|
|
BOOL m_fColText;
|
|
COLORREF m_colBack;
|
|
COLORREF m_colText;
|
|
POINT m_ptTarget;
|
|
RECT m_rcExclude;
|
|
POINT m_ptTail;
|
|
BALLOONWNDPOS m_posDef;
|
|
BALLOONWNDPOS m_pos;
|
|
BALLOONWNDDIR m_dir;
|
|
BALLOONWNDALIGN m_align;
|
|
int m_nButton;
|
|
|
|
int m_iCmd;
|
|
HWND m_hWndNotify;
|
|
UINT m_uiMsgNotify;
|
|
|
|
HRGN CreateRegion( RECT *prc );
|
|
void InitWindowRegion( void );
|
|
void DoneWindowRegion( void );
|
|
void PaintFrameProc( HDC hDC, RECT *prc );
|
|
void PaintMessageProc( HDC hDC, RECT *prc, WCHAR *pwszText );
|
|
void GetButtonSize( SIZE *pSize );
|
|
void AdjustPos( void );
|
|
void LayoutObject( void );
|
|
void AddButton( int idCmd );
|
|
CUIFObject *FindUIObject( DWORD dwID );
|
|
CUIFBalloonButton *FindButton( int idCmd );
|
|
void SendNotification( int iCmd );
|
|
};
|
|
|
|
#endif /* CUIBLN_H */
|
|
|