ReactOS 0.4.15-dev-7998-gdb93cb1
CUIFBalloonWindow Class Reference

#include <cicuif.h>

Inheritance diagram for CUIFBalloonWindow:
Collaboration diagram for CUIFBalloonWindow:

Public Member Functions

 CUIFBalloonWindow (HINSTANCE hInst, DWORD style)
 
 ~CUIFBalloonWindow () override
 
 STDMETHOD_ (BOOL, Initialize)() override
 
 STDMETHOD_ (LPCTSTR, GetClassName)() override
 
 STDMETHOD_ (LPCTSTR, GetWndTitle)() override
 
 STDMETHOD_ (void, OnCreate)(HWND hWnd) override
 
 STDMETHOD_ (void, OnDestroy)(HWND hWnd) override
 
 STDMETHOD_ (void, OnKeyDown)(HWND hWnd
 
 STDMETHOD_ (LRESULT, OnObjectNotify)(CUIFObject *pObject
 
 STDMETHOD_ (void, OnPaint)(HDC hDC) override
 
void AddButton (UINT nCommandId)
 
void AdjustPos ()
 @unimplemented
 
HRGN CreateRegion (LPCRECT prc)
 
void DoneWindowRegion ()
 
CUIFBalloonButtonFindButton (UINT nCommandID)
 
CUIFObjectFindUIObject (UINT nObjectID)
 
COLORREF GetBalloonBkColor ()
 
COLORREF GetBalloonTextColor ()
 
void GetButtonSize (LPSIZE pSize)
 
void GetMargin (LPRECT prcMargin)
 
void SetExcludeRect (LPCRECT prcExclude)
 
void SetTargetPos (POINT ptTarget)
 
void SetText (LPCWSTR pszText)
 
void InitWindowRegion ()
 
void LayoutObject ()
 
void PaintFrameProc (HDC hDC, LPCRECT prc)
 
void PaintMessageProc (HDC hDC, LPRECT prc, LPCWSTR pszText)
 
void SendNotification (WPARAM wParam)
 
- Public Member Functions inherited from CUIFWindow
 operator HWND () const
 
 CUIFWindow (HINSTANCE hInst, DWORD style)
 
 ~CUIFWindow () override
 
 STDMETHOD_ (BOOL, Initialize)() override
 
 STDMETHOD_ (void, Show)(BOOL bVisible) override
 
 STDMETHOD_ (void, SetRect)(LPCRECT prc) override
 
 STDMETHOD_ (void, PaintObject)(HDC hDC
 
 STDMETHOD_ (void, RemoveUIObj)(CUIFObject *pRemove) override
 
void SetCaptureObject (CUIFObject *pCaptured)
 
void SetObjectPointed (CUIFObject *pPointed, POINT pt)
 
void CreateScheme ()
 
BOOL GetWorkArea (LPCRECT prcWnd, LPRECT prcWorkArea)
 
void AdjustWindowPosition ()
 
void SetBehindModal (CUIFWindow *pBehindModal)
 
void SetTimerObject (CUIFObject *pTimerObject, UINT uElapse)
 
 STDMETHOD_ (LPCTSTR, GetClassName)()
 
 STDMETHOD_ (LPCTSTR, GetWndTitle)()
 
 STDMETHOD_ (DWORD, GetWndStyle)()
 
 STDMETHOD_ (DWORD, GetWndStyleEx)()
 
 STDMETHOD_ (HWND, CreateWnd)(HWND hwndParent)
 
 STDMETHOD_ (void, Move)(INT x
 
 STDMETHOD_ (BOOL, AnimateWnd)(DWORD dwTime
 
 STDMETHOD_ (void, OnObjectMoved)(CUIFObject *pObject)
 
 STDMETHOD_ (void, OnMouseOutFromWindow)(LONG x
 
 STDMETHOD_ (LRESULT, OnDisplayChange)(HWND hWnd
 
 STDMETHOD_ (HRESULT, OnGetObject)(HWND hWnd
 
 STDMETHOD_ (LRESULT, WindowProc)(HWND hWnd
 
 STDMETHOD_ (BOOL, OnEraseBkGnd)(HWND hWnd
 
 STDMETHOD_ (void, OnThemeChanged)(HWND hWnd
 
 STDMETHOD_ (void, UpdateUI)(LPCRECT prc)
 
 STDMETHOD_ (void, SetCapture)(int)
 
 STDMETHOD_ (void, ModalMouseNotify)(UINT uMsg
 
 STDMETHOD_ (void, HandleMouseMsg)(UINT uMsg
 
 STDMETHOD_ (void, ClientRectToWindowRect)(LPRECT pRect)
 
 STDMETHOD_ (void, GetWindowFrameSize)(LPSIZE pSize)
 
- Public Member Functions inherited from CUIFObject
 CUIFObject (CUIFObject *pParent, DWORD nObjectID, LPCRECT prc, DWORD style)
 @unimplemented
 
virtual ~CUIFObject ()
 
void StartCapture ()
 
void EndCapture ()
 
BOOL IsCapture ()
 
BOOL IsRTL ()
 
LRESULT NotifyCommand (WPARAM wParam, LPARAM lParam)
 
CUIFObjectObjectFromPoint (POINT pt)
 
void SetScheme (CUIFScheme *scheme)
 
void StartTimer (WPARAM wParam)
 
void EndTimer ()
 
 STDMETHOD_ (BOOL, Initialize)()
 
 STDMETHOD_ (void, OnPaint)(HDC hDC)
 
 STDMETHOD_ (void, OnTimer)()
 
 STDMETHOD_ (void, OnLButtonDown)(LONG x
 
 STDMETHOD_ (void, GetRect)(LPRECT prc)
 
 STDMETHOD_ (void, SetRect)(LPCRECT prc)
 
 STDMETHOD_ (BOOL, PtInObject)(POINT pt)
 
 STDMETHOD_ (void, PaintObject)(HDC hDC
 
 STDMETHOD_ (void, CallOnPaint)()
 
 STDMETHOD_ (void, Enable)(BOOL bEnable)
 
 STDMETHOD_ (void, Show)(BOOL bVisible)
 
 STDMETHOD_ (void, SetFontToThis)(HFONT hFont)
 
 STDMETHOD_ (void, SetFont)(HFONT hFont)
 
 STDMETHOD_ (void, SetStyle)(DWORD style)
 
 STDMETHOD_ (void, AddUIObj)(CUIFObject *pObject)
 
 STDMETHOD_ (void, RemoveUIObj)(CUIFObject *pObject)
 
 STDMETHOD_ (LRESULT, OnObjectNotify)(CUIFObject *pObject
 
 STDMETHOD_ (void, SetToolTip)(LPCWSTR pszToolTip)
 
 STDMETHOD_ (LPCWSTR, GetToolTip)()
 
 STDMETHOD_ (LRESULT, OnShowToolTip)()
 
 STDMETHOD_ (void, OnHideToolTip)()
 
 STDMETHOD_ (void, DetachWndObj)()
 
 STDMETHOD_ (void, ClearWndObj)()
 
 STDMETHOD_ (BOOL, OnPaintTheme)(HDC hDC)
 
 STDMETHOD_ (void, OnPaintNoTheme)(HDC hDC)
 
 STDMETHOD_ (void, ClearTheme)()
 
- Public Member Functions inherited from CUIFTheme
HRESULT InternalOpenThemeData (HWND hWnd)
 
HRESULT EnsureThemeData (HWND hWnd)
 
HRESULT CloseThemeData ()
 
STDMETHOD() DrawThemeBackground (HDC hDC, int iStateId, LPCRECT pRect, LPCRECT pClipRect)
 
STDMETHOD() DrawThemeParentBackground (HWND hwnd, HDC hDC, LPRECT prc)
 
STDMETHOD() DrawThemeText (HDC hDC, int iStateId, LPCWSTR pszText, int cchText, DWORD dwTextFlags, DWORD dwTextFlags2, LPCRECT pRect)
 
STDMETHOD() DrawThemeIcon (HDC hDC, int iStateId, LPCRECT pRect, HIMAGELIST himl, int iImageIndex)
 
STDMETHOD() GetThemeBackgroundExtent (HDC hDC, int iStateId, LPCRECT pContentRect, LPRECT pExtentRect)
 
STDMETHOD() GetThemeBackgroundContentRect (HDC hDC, int iStateId, LPCRECT pBoundingRect, LPRECT pContentRect)
 
STDMETHOD() GetThemeTextExtent (HDC hDC, int iStateId, LPCWSTR pszText, int cchCharCount, DWORD dwTextFlags, LPCRECT pBoundingRect, LPRECT pExtentRect)
 
STDMETHOD() GetThemePartSize (HDC hDC, int iStateId, LPRECT prc, THEMESIZE eSize, SIZE *psz)
 
STDMETHOD() DrawThemeEdge (HDC hDC, int iStateId, LPCRECT pDestRect, UINT uEdge, UINT uFlags, LPRECT pContentRect)
 
STDMETHOD() GetThemeColor (int iStateId, int iPropId, COLORREF *pColor)
 
STDMETHOD() GetThemeMargins (HDC hDC, int iStateId, int iPropId, LPRECT prc, MARGINS *pMargins)
 
STDMETHOD() GetThemeFont (HDC hDC, int iStateId, int iPropId, LOGFONTW *pFont)
 
 STDMETHOD_ (COLORREF, GetThemeSysColor)(INT iColorId)
 
 STDMETHOD_ (int, GetThemeSysSize)(int iSizeId)
 
 STDMETHOD_ (void, SetActiveTheme)(LPCWSTR pszClassList
 

Public Attributes

WPARAM wParam
 
WPARAM LPARAM lParam override
 
- Public Attributes inherited from CUIFWindow
LPCRECT prc override
 
INT y
 
INT INT nWidth
 
INT INT INT nHeight
 
DWORD dwFlags
 
LONG y
 
UINT uMsg
 
UINT WPARAM wParam
 
UINT WPARAM LPARAM lParam { return 0
 
WPARAM wParam
 
WPARAM LPARAM lParam
 
LONG x
 
LONG LONG y
 
- Public Attributes inherited from CUIFObject
LONG y
 
LPCRECT prc
 
WPARAM wParam
 
WPARAM LPARAM lParam
 
- Public Attributes inherited from CUIFTheme
LPCWSTR m_pszClassList
 
INT m_iPartId
 
INT m_iStateId
 
HTHEME m_hTheme
 
INT iPartId
 
INT INT iStateId
 

Protected Attributes

LPWSTR m_pszBalloonText
 
HRGN m_hRgn
 
RECT m_rcMargin
 
DWORD m_dwUnknown6
 
BOOL m_bHasBkColor
 
BOOL m_bHasTextColor
 
COLORREF m_rgbBkColor
 
COLORREF m_rgbTextColor
 
POINT m_ptTarget
 
RECT m_rcExclude
 
POINT m_ptBalloon
 
DWORD m_dwUnknown7
 
UINT m_nBalloonType
 
DWORD m_dwUnknown8 [2]
 
UINT m_cButtons
 
WPARAM m_nActionID
 
HWND m_hwndNotif
 
UINT m_uNotifMsg
 
- Protected Attributes inherited from CUIFWindow
INT m_nLeft
 
INT m_nTop
 
INT m_nHeight
 
INT m_nWidth
 
HINSTANCE m_hInst
 
HWND m_hWnd
 
CUIFObjectm_pTimerObject
 
CUIFObjectm_pCaptured
 
CUIFObjectm_pPointed
 
BOOL m_bPointing
 
CUIFWindowm_pBehindModal
 
CUIFToolTipm_pToolTip
 
CUIFShadowm_pShadow
 
BOOL m_bShowShadow
 
- Protected Attributes inherited from CUIFObject
CUIFObjectm_pParent
 
CUIFWindowm_pWindow
 
CUIFSchemem_pScheme
 
CUIFObjectArray m_ObjectArray
 
DWORD m_nObjectID
 
DWORD m_style
 
RECT m_rc
 
BOOL m_bEnable
 
BOOL m_bVisible
 
HFONT m_hFont
 
BOOL m_bHasCustomFont
 
LPWSTR m_pszToolTip
 
DWORD m_dwUnknown4 [2]
 

Additional Inherited Members

- Public Types inherited from CUIFWindow
enum  { POINTING_TIMER_ID = 0x7982 , USER_TIMER_ID = 0x5461 }
 
- Static Public Member Functions inherited from CUIFWindow
static CUIFWindowGetThis (HWND hWnd)
 
static void SetThis (HWND hWnd, LONG_PTR dwNewLong)
 
static LRESULT CALLBACK WindowProcedure (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
- Static Public Attributes inherited from CUIFTheme
static HINSTANCE s_hUXTHEME = NULL
 
static FN_OpenThemeData s_fnOpenThemeData = NULL
 
static FN_CloseThemeData s_fnCloseThemeData = NULL
 
static FN_DrawThemeBackground s_fnDrawThemeBackground = NULL
 
static FN_DrawThemeParentBackground s_fnDrawThemeParentBackground = NULL
 
static FN_DrawThemeText s_fnDrawThemeText = NULL
 
static FN_DrawThemeIcon s_fnDrawThemeIcon = NULL
 
static FN_GetThemeBackgroundExtent s_fnGetThemeBackgroundExtent = NULL
 
static FN_GetThemeBackgroundContentRect s_fnGetThemeBackgroundContentRect = NULL
 
static FN_GetThemeTextExtent s_fnGetThemeTextExtent = NULL
 
static FN_GetThemePartSize s_fnGetThemePartSize = NULL
 
static FN_DrawThemeEdge s_fnDrawThemeEdge = NULL
 
static FN_GetThemeColor s_fnGetThemeColor = NULL
 
static FN_GetThemeMargins s_fnGetThemeMargins = NULL
 
static FN_GetThemeFont s_fnGetThemeFont = NULL
 
static FN_GetThemeSysColor s_fnGetThemeSysColor = NULL
 
static FN_GetThemeSysSize s_fnGetThemeSysSize = NULL
 

Detailed Description

Definition at line 1013 of file cicuif.h.

Constructor & Destructor Documentation

◆ CUIFBalloonWindow()

CUIFBalloonWindow::CUIFBalloonWindow ( HINSTANCE  hInst,
DWORD  style 
)

Definition at line 3922 of file cicuif.cpp.

3923{
3924 m_dwUnknown6 = -1;
3925 m_nActionID = -1;
3926 m_hRgn = NULL;
3929 m_rgbBkColor = 0;
3930 m_rgbTextColor = 0;
3931 m_ptTarget.x = m_ptTarget.y = 0;
3933 m_dwUnknown7 = 0;
3934 m_nBalloonType = 0;
3935 m_dwUnknown8[0] = 0;
3936 m_dwUnknown8[1] = 0;
3937 m_ptBalloon.x = m_ptBalloon.y = 0;
3938 m_cButtons = 0;
3939 m_hwndNotif = NULL;
3940 m_uNotifMsg = 0;
3941 m_rcMargin.left = 8;
3942 m_rcMargin.top = 8;
3943 m_rcMargin.right = 8;
3944 m_rcMargin.bottom = 8;
3945}
Arabic default style
Definition: afstyles.h:94
COLORREF m_rgbBkColor
Definition: cicuif.h:1022
DWORD m_dwUnknown6
Definition: cicuif.h:1019
LPWSTR m_pszBalloonText
Definition: cicuif.h:1016
POINT m_ptBalloon
Definition: cicuif.h:1026
POINT m_ptTarget
Definition: cicuif.h:1024
DWORD m_dwUnknown7
Definition: cicuif.h:1027
BOOL m_bHasBkColor
Definition: cicuif.h:1020
UINT m_nBalloonType
Definition: cicuif.h:1028
BOOL m_bHasTextColor
Definition: cicuif.h:1021
COLORREF m_rgbTextColor
Definition: cicuif.h:1023
WPARAM m_nActionID
Definition: cicuif.h:1031
DWORD m_dwUnknown8[2]
Definition: cicuif.h:1029
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
HINSTANCE hInst
Definition: dxdiag.c:13
long y
Definition: polytest.cpp:48
long x
Definition: polytest.cpp:48
LONG right
Definition: windef.h:308
LONG bottom
Definition: windef.h:309
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
#define ZeroMemory
Definition: winbase.h:1712

◆ ~CUIFBalloonWindow()

CUIFBalloonWindow::~CUIFBalloonWindow ( )
override

Definition at line 3947 of file cicuif.cpp.

3948{
3949 if (m_pszBalloonText)
3950 {
3951 delete[] m_pszBalloonText;
3953 }
3954}

Member Function Documentation

◆ AddButton()

void CUIFBalloonWindow::AddButton ( UINT  nCommandId)

Definition at line 4061 of file cicuif.cpp.

4062{
4063 RECT rc = { 0, 0, 0, 0 };
4064 if (!((IDOK <= nCommandId) && (nCommandId <= IDNO)))
4065 return;
4066
4067 CUIFBalloonButton *pButton = new(cicNoThrow) CUIFBalloonButton(this, m_cButtons, &rc, 5);
4068 if (!pButton)
4069 return;
4070
4071 pButton->Initialize();
4072 pButton->m_nCommandID = nCommandId;
4073
4074 LPCWSTR pszText;
4075#ifdef IDS_OK
4076 extern HINSTANCE g_hInst;
4077 WCHAR szText[64];
4078 ::LoadStringW(g_hInst, IDS_OK + (nCommandId - IDOK), szText, _countof(szText));
4079 pszText = szText;
4080#else
4081 switch (nCommandId)
4082 {
4083 case IDOK: pszText = L"OK"; break;
4084 case IDCANCEL: pszText = L"Cancel"; break;
4085 case IDABORT: pszText = L"&Abort"; break;
4086 case IDRETRY: pszText = L"&Retry"; break;
4087 case IDIGNORE: pszText = L"&Ignore"; break;
4088 case IDYES: pszText = L"&Yes"; break;
4089 default: pszText = L"&No"; break;
4090 }
4091#endif
4092
4093 pButton->SetText(pszText);
4094
4095 AddUIObj(pButton);
4096 ++m_cButtons;
4097}
#define IDS_OK
Definition: resource.h:19
#define cicNoThrow
Definition: cicbase.h:34
UINT m_nCommandID
Definition: cicuif.h:993
void SetText(LPCWSTR pszText)
Definition: cicuif.cpp:3071
HINSTANCE g_hInst
Definition: ctfmon.cpp:23
#define L(x)
Definition: ntvdm.h:50
#define _countof(array)
Definition: sndvol32.h:68
#define IDCANCEL
Definition: winuser.h:831
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
#define IDOK
Definition: winuser.h:830
#define IDIGNORE
Definition: winuser.h:834
#define IDNO
Definition: winuser.h:836
#define IDABORT
Definition: winuser.h:832
#define IDYES
Definition: winuser.h:835
#define IDRETRY
Definition: winuser.h:833
__wchar_t WCHAR
Definition: xmlstorage.h:180
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185

◆ AdjustPos()

void CUIFBalloonWindow::AdjustPos ( )

@unimplemented

Definition at line 4101 of file cicuif.cpp.

4102{
4103 //FIXME
4104}

Referenced by SetExcludeRect(), SetTargetPos(), and SetText().

◆ CreateRegion()

HRGN CUIFBalloonWindow::CreateRegion ( LPCRECT  prc)

Definition at line 4107 of file cicuif.cpp.

4108{
4109 POINT Points[4];
4110 HRGN hRgn;
4111 BOOL bFlag = FALSE;
4112 LONG x, y;
4113
4114 switch (m_nBalloonType)
4115 {
4116 case 1:
4117 hRgn = ::CreateRoundRectRgn(prc->left, prc->top + 16, prc->right, prc->bottom, 16, 16);
4118 y = prc->top + 16;
4119 bFlag = TRUE;
4120 break;
4121
4122 case 2:
4123 hRgn = ::CreateRoundRectRgn(prc->left, prc->top, prc->right - 16, prc->bottom, 16, 16);
4124 x = prc->right - 17;
4125 break;
4126
4127 case 3:
4128 hRgn = ::CreateRoundRectRgn(prc->left + 16, prc->top, prc->right, prc->bottom, 16, 16);
4129 x = prc->left + 16;
4130 break;
4131
4132 default:
4133 hRgn = ::CreateRoundRectRgn(prc->left, prc->top, prc->right, prc->bottom - 16, 16, 16);
4134 y = prc->bottom - 17;
4135 bFlag = TRUE;
4136 break;
4137 }
4138
4139 if (bFlag)
4140 {
4141 x = Points[1].x = m_ptBalloon.x;
4142 Points[1].y = m_ptBalloon.y;
4143 Points[0].y = Points[2].y = Points[3].y = y;
4144 Points[2].x = x + 10 * (2 * (m_dwUnknown8[0] == 0) - 1);
4145 }
4146 else
4147 {
4148 Points[2].x = x;
4149 y = Points[0].y = Points[1].y = Points[3].y = m_ptBalloon.y;
4150 Points[1].x = m_ptBalloon.x;
4151 Points[2].y = y + 10 * (2 * (m_dwUnknown8[0] == 2) - 1);
4152 }
4153
4154 Points[0].x = Points[3].x = x;
4155
4156 HRGN hPolygonRgn = ::CreatePolygonRgn(Points, _countof(Points), WINDING);
4157 ::CombineRgn(hRgn, hRgn, hPolygonRgn, RGN_OR);
4158 ::DeleteObject(hPolygonRgn);
4159 return hRgn;
4160}
#define WINDING
Definition: constants.h:279
LPCRECT prc
Definition: cicuif.h:230
INT y
Definition: cicuif.h:563
LONG x
Definition: cicuif.h:599
#define TRUE
Definition: types.h:120
unsigned int BOOL
Definition: ntddk_ex.h:94
pKey DeleteObject()
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
static HRGN hRgn
Definition: mapping.c:33
long LONG
Definition: pedump.c:60
HRGN WINAPI CreatePolygonRgn(_In_reads_(cPoint) const POINT *pptl, _In_ int cPoint, _In_ int iMode)
HRGN WINAPI CreateRoundRectRgn(_In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int)
int WINAPI CombineRgn(_In_opt_ HRGN hrgnDest, _In_opt_ HRGN hrgnSrc1, _In_opt_ HRGN hrgnSrc2, _In_ int fnCombineMode)
#define RGN_OR
Definition: wingdi.h:359

Referenced by InitWindowRegion(), and PaintFrameProc().

◆ DoneWindowRegion()

void CUIFBalloonWindow::DoneWindowRegion ( )

Definition at line 4163 of file cicuif.cpp.

4164{
4165 if (m_hRgn)
4166 {
4169 m_hRgn = NULL;
4170 }
4171}
HWND m_hWnd
Definition: cicuif.h:518
int WINAPI SetWindowRgn(_In_ HWND, _In_opt_ HRGN, _In_ BOOL)

◆ FindButton()

CUIFBalloonButton * CUIFBalloonWindow::FindButton ( UINT  nCommandID)

Definition at line 4174 of file cicuif.cpp.

4175{
4176 for (UINT iButton = 0; iButton < m_cButtons; ++iButton)
4177 {
4178 CUIFBalloonButton *pButton = (CUIFBalloonButton *)FindUIObject(iButton);
4179 if (pButton && (pButton->m_nCommandID == nCommandID))
4180 return pButton;
4181 }
4182 return NULL;
4183}
CUIFObject * FindUIObject(UINT nObjectID)
Definition: cicuif.cpp:4186
unsigned int UINT
Definition: ndis.h:50

◆ FindUIObject()

CUIFObject * CUIFBalloonWindow::FindUIObject ( UINT  nObjectID)

Definition at line 4186 of file cicuif.cpp.

4187{
4188 for (size_t iItem = 0; iItem < m_ObjectArray.size(); ++iItem)
4189 {
4191 if (pObject->m_nObjectID == nObjectID)
4192 return pObject;
4193 }
4194 return NULL;
4195}
CUIFObjectArray m_ObjectArray
Definition: cicuif.h:186
size_t size() const
Definition: cicarray.h:34
FxObject * pObject

Referenced by FindButton(), and LayoutObject().

◆ GetBalloonBkColor()

COLORREF CUIFBalloonWindow::GetBalloonBkColor ( )

Definition at line 4198 of file cicuif.cpp.

4199{
4200 if (m_bHasBkColor)
4201 return m_rgbBkColor;
4202 else
4203 return ::GetSysColor(COLOR_INFOBK);
4204}
#define COLOR_INFOBK
Definition: winuser.h:942

Referenced by PaintFrameProc().

◆ GetBalloonTextColor()

COLORREF CUIFBalloonWindow::GetBalloonTextColor ( )

Definition at line 4207 of file cicuif.cpp.

4208{
4209 if (m_bHasTextColor)
4210 return m_rgbTextColor;
4211 else
4212 return ::GetSysColor(COLOR_INFOTEXT);
4213}
#define COLOR_INFOTEXT
Definition: winuser.h:941

Referenced by PaintMessageProc().

◆ GetButtonSize()

void CUIFBalloonWindow::GetButtonSize ( LPSIZE  pSize)

Definition at line 4216 of file cicuif.cpp.

4217{
4218 HDC hDisplayDC = ::CreateDC(TEXT("DISPLAY"), NULL, NULL, NULL);
4219
4220 TEXTMETRIC tm;
4221 HGDIOBJ hFontOld = ::SelectObject(hDisplayDC, m_hFont);
4222 ::GetTextMetrics(hDisplayDC, &tm);
4223 ::SelectObject(hDisplayDC, hFontOld);
4224 ::DeleteDC(hDisplayDC);
4225
4226 pSize->cx = 16 * tm.tmAveCharWidth;
4227 pSize->cy = tm.tmHeight + 10;
4228}
HFONT m_hFont
Definition: cicuif.h:192
#define TEXT(s)
Definition: k32.h:26
static HDC
Definition: imagelist.c:92
LONG cx
Definition: windef.h:334
LONG cy
Definition: windef.h:335
Definition: time.h:68
#define CreateDC
Definition: wingdi.h:4441
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
Definition: dc.c:1539
BOOL WINAPI DeleteDC(_In_ HDC)
#define GetTextMetrics
Definition: wingdi.h:4474

Referenced by LayoutObject().

◆ GetMargin()

void CUIFBalloonWindow::GetMargin ( LPRECT  prcMargin)

Definition at line 4231 of file cicuif.cpp.

4232{
4233 if (prcMargin)
4234 *prcMargin = m_rcMargin;
4235}

Referenced by LayoutObject().

◆ InitWindowRegion()

void CUIFBalloonWindow::InitWindowRegion ( )

Definition at line 4272 of file cicuif.cpp.

4273{
4274 RECT rc;
4275 GetRect(&rc);
4276 m_hRgn = CreateRegion(&rc);
4277 if (m_hRgn)
4279}
HRGN CreateRegion(LPCRECT prc)
Definition: cicuif.cpp:4107

◆ LayoutObject()

void CUIFBalloonWindow::LayoutObject ( )

Definition at line 4282 of file cicuif.cpp.

4283{
4284 SIZE size;
4286
4287 RECT rc;
4288 GetRect(&rc);
4289
4290 switch (m_nBalloonType)
4291 {
4292 case 1:
4293 rc.top += 16;
4294 break;
4295 case 2:
4296 rc.right -= 16;
4297 break;
4298 case 3:
4299 rc.left += 16;
4300 break;
4301 default:
4302 rc.bottom -= 16;
4303 break;
4304 }
4305
4306 RECT rcMargin;
4307 GetMargin(&rcMargin);
4308 rc.left += rcMargin.left;
4309 rc.top += rcMargin.top;
4310 rc.right -= rcMargin.right;
4311 rc.bottom -= rcMargin.bottom;
4312
4313 LONG xLeft = (rc.left + rc.right - size.cx * (((m_cButtons - 1) / 2) - m_cButtons)) / 2;
4314 for (UINT iButton = 0; iButton < m_cButtons; ++iButton)
4315 {
4316 CUIFObject *UIObject = FindUIObject(iButton);
4317 if (!UIObject)
4318 continue;
4319
4320 rcMargin.left = xLeft + iButton * (size.cx * 3 / 2);
4321 rcMargin.top = rc.bottom - size.cy;
4322 rcMargin.right = rcMargin.left + size.cx;
4323 rcMargin.bottom = rc.bottom;
4324
4325 UIObject->SetRect(&rcMargin);
4326 UIObject->Show(TRUE);
4327 }
4328}
void GetButtonSize(LPSIZE pSize)
Definition: cicuif.cpp:4216
void GetMargin(LPRECT prcMargin)
Definition: cicuif.cpp:4231
GLsizeiptr size
Definition: glext.h:5919

◆ PaintFrameProc()

void CUIFBalloonWindow::PaintFrameProc ( HDC  hDC,
LPCRECT  prc 
)

Definition at line 4331 of file cicuif.cpp.

4332{
4333 HRGN hRgn = CreateRegion(prc);
4334 HBRUSH hbrBack = ::CreateSolidBrush(GetBalloonBkColor());
4336 ::FillRgn(hDC, hRgn, hbrBack);
4337 ::FrameRgn(hDC, hRgn, hbrFrame, 1, 1);
4338 ::DeleteObject(hbrBack);
4339 ::DeleteObject(hbrFrame);
4341}
static HDC hDC
Definition: 3dtext.c:33
COLORREF GetBalloonBkColor()
Definition: cicuif.cpp:4198
BOOL WINAPI FrameRgn(_In_ HDC, _In_ HRGN, _In_ HBRUSH, _In_ int, _In_ int)
int WINAPI FillRgn(_In_ HDC, _In_ HRGN, _In_ HBRUSH)
Definition: painting.c:183
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF)
DWORD WINAPI GetSysColor(_In_ int)
#define COLOR_WINDOWFRAME
Definition: winuser.h:919

◆ PaintMessageProc()

void CUIFBalloonWindow::PaintMessageProc ( HDC  hDC,
LPRECT  prc,
LPCWSTR  pszText 
)

Definition at line 4344 of file cicuif.cpp.

4345{
4346 HGDIOBJ hFontOld = ::SelectObject(hDC, m_hFont);
4348 INT nOldBkMode = ::SetBkMode(hDC, TRANSPARENT);
4349 ::DrawTextW(hDC, pszText, -1, prc, DT_WORDBREAK);
4350 ::SelectObject(hDC, hFontOld);
4351 ::SetTextColor(hDC, rgbOldColor);
4352 ::SetBkMode(hDC, nOldBkMode);
4353}
COLORREF GetBalloonTextColor()
Definition: cicuif.cpp:4207
INT WINAPI DrawTextW(HDC hdc, LPCWSTR str, INT count, LPRECT rect, UINT flags)
Definition: defwnd.c:16
int32_t INT
Definition: typedefs.h:58
DWORD COLORREF
Definition: windef.h:300
#define TRANSPARENT
Definition: wingdi.h:950
int WINAPI SetBkMode(_In_ HDC, _In_ int)
Definition: dc.c:1056
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
Definition: text.c:918
#define DT_WORDBREAK
Definition: winuser.h:544

◆ SendNotification()

void CUIFBalloonWindow::SendNotification ( WPARAM  wParam)

Definition at line 4356 of file cicuif.cpp.

4357{
4358 if (m_hwndNotif)
4360}
#define PostMessage
Definition: winuser.h:5832

◆ SetExcludeRect()

void CUIFBalloonWindow::SetExcludeRect ( LPCRECT  prcExclude)

Definition at line 4238 of file cicuif.cpp.

4239{
4240 m_rcExclude = *prcExclude;
4241 AdjustPos();
4242}
void AdjustPos()
@unimplemented
Definition: cicuif.cpp:4101

◆ SetTargetPos()

void CUIFBalloonWindow::SetTargetPos ( POINT  ptTarget)

Definition at line 4245 of file cicuif.cpp.

4246{
4247 m_ptTarget = ptTarget;
4248 AdjustPos();
4249}

◆ SetText()

void CUIFBalloonWindow::SetText ( LPCWSTR  pszText)

Definition at line 4252 of file cicuif.cpp.

4253{
4254 if (m_pszBalloonText)
4255 {
4256 delete[] m_pszBalloonText;
4258 }
4259
4260 if (pszText == NULL)
4261 pszText = L"";
4262
4263 size_t cch = wcslen(pszText);
4265 if (m_pszBalloonText)
4266 lstrcpynW(m_pszBalloonText, pszText, cch + 1);
4267
4268 AdjustPos();
4269}
#define lstrcpynW
Definition: compat.h:738
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
static DWORD DWORD void LPSTR DWORD cch
Definition: str.c:202

◆ STDMETHOD_() [1/8]

CUIFBalloonWindow::STDMETHOD_ ( BOOL  ,
Initialize   
)
override

◆ STDMETHOD_() [2/8]

CUIFBalloonWindow::STDMETHOD_ ( LPCTSTR  ,
GetClassName   
)
inlineoverride

Definition at line 1040 of file cicuif.h.

1040{ return TEXT("MSIME_PopupMessage"); }

◆ STDMETHOD_() [3/8]

CUIFBalloonWindow::STDMETHOD_ ( LPCTSTR  ,
GetWndTitle   
)
inlineoverride

Definition at line 1041 of file cicuif.h.

1041{ return TEXT("MSIME_PopupMessage"); }

◆ STDMETHOD_() [4/8]

CUIFBalloonWindow::STDMETHOD_ ( LRESULT  ,
OnObjectNotify   
)

◆ STDMETHOD_() [5/8]

CUIFBalloonWindow::STDMETHOD_ ( void  ,
OnCreate   
)
override

◆ STDMETHOD_() [6/8]

CUIFBalloonWindow::STDMETHOD_ ( void  ,
OnDestroy   
)
override

◆ STDMETHOD_() [7/8]

CUIFBalloonWindow::STDMETHOD_ ( void  ,
OnKeyDown   
)

◆ STDMETHOD_() [8/8]

CUIFBalloonWindow::STDMETHOD_ ( void  ,
OnPaint   
)
override

Member Data Documentation

◆ m_bHasBkColor

BOOL CUIFBalloonWindow::m_bHasBkColor
protected

Definition at line 1020 of file cicuif.h.

Referenced by CUIFBalloonWindow(), and GetBalloonBkColor().

◆ m_bHasTextColor

BOOL CUIFBalloonWindow::m_bHasTextColor
protected

Definition at line 1021 of file cicuif.h.

Referenced by CUIFBalloonWindow(), and GetBalloonTextColor().

◆ m_cButtons

UINT CUIFBalloonWindow::m_cButtons
protected

Definition at line 1030 of file cicuif.h.

Referenced by AddButton(), CUIFBalloonWindow(), FindButton(), and LayoutObject().

◆ m_dwUnknown6

DWORD CUIFBalloonWindow::m_dwUnknown6
protected

Definition at line 1019 of file cicuif.h.

Referenced by CUIFBalloonWindow().

◆ m_dwUnknown7

DWORD CUIFBalloonWindow::m_dwUnknown7
protected

Definition at line 1027 of file cicuif.h.

Referenced by CUIFBalloonWindow().

◆ m_dwUnknown8

DWORD CUIFBalloonWindow::m_dwUnknown8[2]
protected

Definition at line 1029 of file cicuif.h.

Referenced by CreateRegion(), and CUIFBalloonWindow().

◆ m_hRgn

HRGN CUIFBalloonWindow::m_hRgn
protected

Definition at line 1017 of file cicuif.h.

Referenced by CUIFBalloonWindow(), DoneWindowRegion(), and InitWindowRegion().

◆ m_hwndNotif

HWND CUIFBalloonWindow::m_hwndNotif
protected

Definition at line 1032 of file cicuif.h.

Referenced by CUIFBalloonWindow(), and SendNotification().

◆ m_nActionID

WPARAM CUIFBalloonWindow::m_nActionID
protected

Definition at line 1031 of file cicuif.h.

Referenced by CUIFBalloonWindow().

◆ m_nBalloonType

UINT CUIFBalloonWindow::m_nBalloonType
protected

Definition at line 1028 of file cicuif.h.

Referenced by CreateRegion(), CUIFBalloonWindow(), and LayoutObject().

◆ m_pszBalloonText

LPWSTR CUIFBalloonWindow::m_pszBalloonText
protected

Definition at line 1016 of file cicuif.h.

Referenced by CUIFBalloonWindow(), SetText(), and ~CUIFBalloonWindow().

◆ m_ptBalloon

POINT CUIFBalloonWindow::m_ptBalloon
protected

Definition at line 1026 of file cicuif.h.

Referenced by CreateRegion(), and CUIFBalloonWindow().

◆ m_ptTarget

POINT CUIFBalloonWindow::m_ptTarget
protected

Definition at line 1024 of file cicuif.h.

Referenced by CUIFBalloonWindow(), and SetTargetPos().

◆ m_rcExclude

RECT CUIFBalloonWindow::m_rcExclude
protected

Definition at line 1025 of file cicuif.h.

Referenced by CUIFBalloonWindow(), and SetExcludeRect().

◆ m_rcMargin

RECT CUIFBalloonWindow::m_rcMargin
protected

Definition at line 1018 of file cicuif.h.

Referenced by CUIFBalloonWindow(), and GetMargin().

◆ m_rgbBkColor

COLORREF CUIFBalloonWindow::m_rgbBkColor
protected

Definition at line 1022 of file cicuif.h.

Referenced by CUIFBalloonWindow(), and GetBalloonBkColor().

◆ m_rgbTextColor

COLORREF CUIFBalloonWindow::m_rgbTextColor
protected

Definition at line 1023 of file cicuif.h.

Referenced by CUIFBalloonWindow(), and GetBalloonTextColor().

◆ m_uNotifMsg

UINT CUIFBalloonWindow::m_uNotifMsg
protected

Definition at line 1033 of file cicuif.h.

Referenced by CUIFBalloonWindow(), and SendNotification().

◆ override

WPARAM LPARAM lParam CUIFBalloonWindow::override

Definition at line 1044 of file cicuif.h.

◆ wParam

WPARAM CUIFBalloonWindow::wParam

Definition at line 1044 of file cicuif.h.

Referenced by SendNotification().


The documentation for this class was generated from the following files: