99#include "wine/unicode.h"
153#define ID_TIMERSHOW 1
155#define ID_TIMERLEAVE 3
158#define TOOLTIPS_GetInfoPtr(hWindow) ((TOOLTIPS_INFO *)GetWindowLongPtrW (hWindow, 0))
161#define NORMAL_TEXT_MARGIN 2
162#define BALLOON_TEXT_MARGIN (NORMAL_TEXT_MARGIN+8)
166#define BALLOON_ROUNDEDNESS 16
167#define BALLOON_STEMHEIGHT 18
168#define BALLOON_STEMWIDTH 18
169#define BALLOON_STEMINDENT 16
171#define BALLOON_ROUNDEDNESS 20
172#define BALLOON_STEMHEIGHT 13
173#define BALLOON_STEMWIDTH 10
174#define BALLOON_STEMINDENT 20
177#define BALLOON_ICON_TITLE_SPACING 8
178#define BALLOON_TITLE_TEXT_SPACING 8
179#define ICON_HEIGHT 16
182#define MAX_TEXT_SIZE_A 80
209 NONCLIENTMETRICSW nclm;
215 nclm.cbSize =
sizeof(nclm);
220 nclm.lfStatusFont.lfWeight =
FW_BOLD;
238 lpnmttcd->
nmcd.
rc = *rcBounds;
413 ERR(
"recursive text callback\n");
426 }
else if (ttnmdi.lpszText &&
469 ERR(
"recursive text callback\n");
482 }
else if (ttnmdi.lpszText &&
497 TRACE(
"load res string %p %x\n",
536 RECT rc = {0, 0, 0, 0};
550 RECT rcTitle = {0, 0, 0, 0};
611 if (infoPtr->
nTool == -1)
616 nTool = infoPtr->
nTool;
619 TRACE(
"Show tooltip pre %d, %p\n", nTool, infoPtr->
hwndSelf);
633 toolPtr = &infoPtr->
tools[nTool];
666 rcTool = toolPtr->
rect;
748 mon_info.
cbSize =
sizeof(mon_info);
877 hdr.idFrom = toolPtr->
uId;
891 TRACE(
"timer 2 started\n");
893 TRACE(
"timer 3 started\n");
913 hdr.idFrom = toolPtr->
uId;
945 hdr.idFrom = toolPtr->
uId;
961 for (nTool = 0; nTool < infoPtr->
uNumTools; nTool++) {
962 toolPtr = &infoPtr->
tools[nTool];
965 (lpToolInfo->
hwnd == toolPtr->
hwnd) &&
966 (lpToolInfo->
uId == toolPtr->
uId))
970 for (nTool = 0; nTool < infoPtr->
uNumTools; nTool++) {
971 toolPtr = &infoPtr->
tools[nTool];
974 (lpToolInfo->
uId == toolPtr->
uId))
988 for (nTool = 0; nTool < infoPtr->
uNumTools; nTool++) {
989 toolPtr = &infoPtr->
tools[nTool];
1000 for (nTool = 0; nTool < infoPtr->
uNumTools; nTool++) {
1001 toolPtr = &infoPtr->
tools[nTool];
1048 if (hwndActive ==
hwnd)
1078 TRACE(
"not active: hwnd %p, parent %p, active %p\n",
1084 TRACE(
"tool %d\n", nTool);
1095 TRACE(
"activate %d\n", activate);
1110 if (!ti)
return FALSE;
1120 toolPtr = infoPtr->
tools;
1149 TRACE(
"add CALLBACK\n");
1180 TRACE(
"subclassing installed\n");
1187 TRACE(
" -- WM_NOTIFYFORMAT returns: NFR_ANSI\n");
1190 TRACE(
" -- WM_NOTIFYFORMAT returns: NFR_UNICODE\n");
1192 TRACE (
" -- WM_NOTIFYFORMAT returns: %d\n", nResult);
1221 TRACE(
"tool %d\n", nTool);
1230 toolPtr = &infoPtr->
tools[nTool];
1253 if (nTool < infoPtr->uNumTools - 1)
1254 memcpy (&infoPtr->
tools[nTool], &oldTools[nTool + 1],
1263 if (infoPtr->
nTool == nTool)
1265 infoPtr->
nTool = -1;
1266 else if (infoPtr->
nTool > nTool)
1295 TRACE(
"index=%u\n", uIndex);
1308 if (lpToolInfo ==
NULL)
1314 if (nTool == -1)
return 0;
1316 TRACE(
"tool %d\n", nTool);
1354 WARN(
"Invalid duration flag %x\n", duration);
1389 if (nTool == -1)
return 0;
1419 return infoPtr->
clrBk;
1443 if (!ti)
return FALSE;
1453 TRACE(
"tool %d\n", nTool);
1476 TRACE(
"tool %d\n", nTool);
1499 if (nTool == -1)
return 0;
1523 ERR(
"lpMsg == NULL\n");
1540 nOldTool = infoPtr->
nTool;
1547 if (infoPtr->
nTool != nOldTool) {
1548 if(infoPtr->
nTool == -1) {
1551 }
else if (nOldTool == -1) {
1554 TRACE(
"timer 1 started\n");
1561 TRACE(
"timer 1 started\n");
1567 TRACE(
"timer 2 restarted\n");
1571 TRACE(
"timer 1 started\n");
1611 WARN(
"Invalid duration flag %x\n", duration);
1643 infoPtr->
clrBk = clrBk;
1713 if (nTool == -1)
return 0;
1715 TRACE(
"tool %d\n", nTool);
1717 toolPtr = &infoPtr->
tools[nTool];
1777 if (track_activate) {
1786 TRACE(
"activated\n");
1798 TRACE(
"deactivated\n");
1846 TRACE(
"tool %d\n", nTool);
1848 toolPtr = &infoPtr->
tools[nTool];
1908 infoPtr->
nTool = -1;
1931 if (infoPtr->
tools) {
1933 toolPtr = &infoPtr->
tools[
i];
2010 TRACE(
" nTool=%d\n", nTool);
2012 if ((nTool > -1) && (nTool < infoPtr->
uNumTools)) {
2014 TRACE(
"-- in transparent mode\n");
2044 TRACE(
" -- WM_NOTIFYFORMAT returns: NFR_ANSI\n");
2047 TRACE(
" -- WM_NOTIFYFORMAT returns: NFR_UNICODE\n");
2049 TRACE (
" -- WM_NOTIFYFORMAT returns: error!\n");
2091 FIXME(
"full redraw needed\n");
2131 pszText[
res-1] =
'\0';
2140 TRACE(
"timer %d (%p) expired\n", iTimer, infoPtr->
hwndSelf);
2145 nOldTool = infoPtr->
nTool;
2155 nOldTool = infoPtr->
nTool;
2159 if (infoPtr->
nTool != nOldTool) {
2160 if(infoPtr->
nTool == -1) {
2163 }
else if (nOldTool == -1) {
2164 ERR(
"How did this happen?\n");
2170 TRACE(
"timer 1 started!\n");
2177 ERR(
"Unknown timer id %d\n", iTimer);
2379 case WM_NOTIFYFORMAT:
2401 ERR(
"unknown msg %04x wp=%08lx lp=%08lx\n",
static const char * wine_dbgstr_point(const POINT *ppt)
static const char * wine_dbgstr_rect(const RECT *prc)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
PVOID Alloc(IN DWORD dwFlags, IN SIZE_T dwBytes)
BOOL COMCTL32_IsReflectedMessage(UINT uMsg) DECLSPEC_HIDDEN
VOID COMCTL32_RefreshSysColors(void) DECLSPEC_HIDDEN
INT Str_GetPtrAtoW(LPCSTR lpSrc, LPWSTR lpDest, INT nMaxLen) DECLSPEC_HIDDEN
INT WINAPI Str_GetPtrW(LPCWSTR, LPWSTR, INT)
COMCTL32_SysColor comctl32_color
BOOL WINAPI SetWindowSubclass(HWND hWnd, SUBCLASSPROC pfnSubclass, UINT_PTR uIDSubclass, DWORD_PTR dwRef)
BOOL WINAPI RemoveWindowSubclass(HWND hWnd, SUBCLASSPROC pfnSubclass, UINT_PTR uID)
LRESULT WINAPI DefSubclassProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
BOOL WINAPI Str_SetPtrW(LPWSTR *lppDest, LPCWSTR lpSrc)
#define WideCharToMultiByte
#define MultiByteToWideChar
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
GLint GLint GLint GLint GLint x
GLint GLint GLsizei GLsizei height
GLint GLint GLsizei width
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define memcpy(s1, s2, n)
struct task_struct * current
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
unsigned __int3264 UINT_PTR
HMONITOR WINAPI MonitorFromRect(LPCRECT, DWORD)
INT WINAPI DrawTextW(HDC hdc, LPCWSTR str, INT count, LPRECT rect, UINT flags)
#define TTM_GETMAXTIPWIDTH
#define LPSTR_TEXTCALLBACKW
#define TTM_GETCURRENTTOOLW
#define TTM_GETTIPTEXTCOLOR
#define LPSTR_TEXTCALLBACKA
#define TTTOOLINFOW_V1_SIZE
#define CDRF_NOTIFYPOSTPAINT
#define TTTOOLINFOW_V3_SIZE
#define TTM_TRACKPOSITION
#define TTM_WINDOWFROMPOINT
#define TTM_UPDATETIPTEXTA
#define TTM_GETCURRENTTOOLA
#define TTM_GETTIPBKCOLOR
#define TTM_UPDATETIPTEXTW
#define TTM_SETTIPBKCOLOR
#define TTM_SETTIPTEXTCOLOR
#define TTM_TRACKACTIVATE
#define TTM_GETBUBBLESIZE
#define TTTOOLINFOA_V1_SIZE
#define TTTOOLINFOW_V2_SIZE
#define TTM_SETMAXTIPWIDTH
void redraw(int x, int y, int cx, int cy)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
HRGN WINAPI CreateRectRgn(_In_ int, _In_ int, _In_ int, _In_ int)
BOOL WINAPI FrameRgn(_In_ HDC, _In_ HRGN, _In_ HBRUSH, _In_ int, _In_ int)
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)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
int WINAPI CombineRgn(_In_opt_ HRGN hrgnDest, _In_opt_ HRGN hrgnSrc1, _In_opt_ HRGN hrgnSrc2, _In_ int fnCombineMode)
int WINAPI FillRgn(_In_ HDC, _In_ HRGN, _In_ HBRUSH)
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
HFONT WINAPI CreateFontIndirectW(_In_ const LOGFONTW *)
int WINAPI SetBkMode(_In_ HDC, _In_ int)
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
HWND WINAPI GetActiveWindow(void)
#define DT_EXTERNALLEADING
#define COLOR_WINDOWFRAME
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
int WINAPI GetWindowRgn(_In_ HWND, _In_ HRGN)
int WINAPI SetWindowRgn(_In_ HWND, _In_opt_ HRGN, _In_ BOOL)
HBRUSH WINAPI GetSysColorBrush(_In_ int)
LONG WINAPI SetWindowLongW(_In_ HWND, _In_ int, _In_ LONG)
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
HICON WINAPI CopyIcon(_In_ HICON)
#define IS_INTRESOURCE(i)
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE hInst, _In_ LPCWSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
BOOL WINAPI AdjustWindowRectEx(_Inout_ LPRECT, _In_ DWORD, _In_ BOOL, _In_ DWORD)
#define WM_SYSCOLORCHANGE
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
int WINAPI MapWindowPoints(_In_opt_ HWND hWndFrom, _In_opt_ HWND hWndTo, _Inout_updates_(cPoints) LPPOINT lpPoints, _In_ UINT cPoints)
UINT WINAPI GetDoubleClickTime(void)
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
BOOL WINAPI PtInRect(_In_ LPCRECT, _In_ POINT)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
#define MAKELRESULT(l, h)
BOOL WINAPI IsChild(_In_ HWND, _In_ HWND)
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
BOOL WINAPI DrawIconEx(_In_ HDC, _In_ int, _In_ int, _In_ HICON, _In_ int, _In_ int, _In_ UINT, _In_opt_ HBRUSH, _In_ UINT)
BOOL WINAPI UpdateWindow(_In_ HWND)
HDC WINAPI GetDC(_In_opt_ HWND)
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
HWND WINAPI GetParent(_In_ HWND)
HWND WINAPI WindowFromPoint(_In_ POINT)
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)
BOOL WINAPI GetMonitorInfoW(_In_ HMONITOR, _Inout_ LPMONITORINFO)
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)
#define SetWindowLongPtrW
int WINAPI GetSystemMetrics(_In_ int)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI DestroyIcon(_In_ HICON)
BOOL WINAPI ScreenToClient(_In_ HWND, _Inout_ LPPOINT)
_In_opt_ PALLOCATE_FUNCTION _In_opt_ PFREE_FUNCTION Free