62#define ID_MARQUEE_TIMER 1
63#define DEFAULT_MARQUEE_PERIOD 30
213 while (
r.bottom >
top)
310 TRACE(
"(infoPtr=%p, hdc=%p)\n", infoPtr,
hdc);
370 const int ledW = !barSmooth ? (
pdi.ledW +
pdi.ledGap) : 1;
371 const int leds = (barSize + ledW - 1) / ledW;
378 const int gapStart =
max((ledMEnd - leds) * ledW, 0);
381 drawProcs[0]( &
pdi, 0, gapStart);
382 drawProcs[1]( &
pdi, gapStart, gapEnd);
383 drawProcs[0]( &
pdi, gapEnd, barSize);
388 const int barStart = infoPtr->
MarqueePos * ledW;
389 const int barEnd =
min (ledMEnd * ledW, barSize);
391 drawProcs[1]( &
pdi, 0, barStart);
392 drawProcs[0]( &
pdi, barStart, barEnd);
393 drawProcs[1]( &
pdi, barEnd, barSize);
402 const int ledW =
pdi.ledW +
pdi.ledGap;
403 barEnd =
min (((barEnd + ledW - 1) / ledW) * ledW, barSize);
405 drawProcs[0]( &
pdi, 0, barEnd);
406 drawProcs[1]( &
pdi, barEnd, barSize);
517 TRACE(
"PBM_SETPOS: current pos changed from %d to %d\n", oldVal, infoPtr->
CurVal);
557 infoPtr = heap_alloc_zero (
sizeof(*infoPtr));
558 if (!infoPtr)
return -1;
562 infoPtr->Self =
hwnd;
564 infoPtr->MaxVal = 100;
567 infoPtr->MarqueePos = 0;
568 infoPtr->Marquee =
FALSE;
573 TRACE(
"Progress Ctrl creation, hwnd=%p\n",
hwnd);
578 TRACE(
"Progress Ctrl destruction, hwnd=%p\n",
hwnd);
603 case WM_THEMECHANGED:
613 dwExStyle &= ~WS_EX_STATICEDGE;
629 TRACE(
"PBM_DELTAPOS: current pos changed from %d to %d\n", oldVal, infoPtr->
CurVal);
645 oldStep = infoPtr->
Step;
651 return infoPtr->
Step;
655 int oldVal = infoPtr->
CurVal;
665 if (oldVal != infoPtr->
CurVal)
667 TRACE(
"PBM_STEPIT: current pos changed from %d to %d\n", oldVal, infoPtr->
CurVal);
698 case PBM_GETBARCOLOR:
static BOOL heap_free(void *mem)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
BOOL COMCTL32_IsReflectedMessage(UINT uMsg) DECLSPEC_HIDDEN
static int get_led_size(const PROGRESS_INFO *infoPtr, LONG style, const RECT *rect)
static void PROGRESS_Invalidate(const PROGRESS_INFO *infoPtr, INT old, INT new)
void PROGRESS_Register(void)
static LRESULT PROGRESS_Draw(PROGRESS_INFO *infoPtr, HDC hdc)
static int get_led_gap(const PROGRESS_INFO *infoPtr)
void(* ProgressDrawProc)(const ProgressDrawInfo *di, int start, int end)
static LRESULT WINAPI ProgressWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
static void draw_theme_bkg_V(const ProgressDrawInfo *di, int start, int end)
static int get_bar_position(const PROGRESS_INFO *infoPtr, LONG style, const RECT *rect, INT value)
static void draw_theme_bkg_H(const ProgressDrawInfo *di, int start, int end)
static void draw_theme_bar_V(const ProgressDrawInfo *di, int start, int end)
static void PROGRESS_CoercePos(PROGRESS_INFO *infoPtr)
#define DEFAULT_MARQUEE_PERIOD
static const ProgressDrawProc drawProcThemed[8]
static void draw_solid_bar_V(const ProgressDrawInfo *di, int start, int end)
static void draw_solid_bar_H(const ProgressDrawInfo *di, int start, int end)
void PROGRESS_Unregister(void)
static void draw_chunk_bar_H(const ProgressDrawInfo *di, int start, int end)
static void draw_theme_bar_H(const ProgressDrawInfo *di, int start, int end)
static const ProgressDrawProc drawProcClassic[8]
static int get_bar_size(LONG style, const RECT *rect)
static void get_client_rect(HWND hwnd, RECT *rect)
static void draw_solid_bkg_H(const ProgressDrawInfo *di, int start, int end)
static void draw_chunk_bar_V(const ProgressDrawInfo *di, int start, int end)
static void draw_solid_bkg_V(const ProgressDrawInfo *di, int start, int end)
static UINT PROGRESS_SetPos(PROGRESS_INFO *infoPtr, INT pos)
struct tagProgressDrawInfo ProgressDrawInfo
static HFONT PROGRESS_SetFont(PROGRESS_INFO *infoPtr, HFONT hFont, BOOL bRedraw)
static DWORD PROGRESS_SetRange(PROGRESS_INFO *infoPtr, int low, int high)
static void PROGRESS_UpdateMarquee(PROGRESS_INFO *infoPtr)
static LRESULT PROGRESS_Paint(PROGRESS_INFO *infoPtr, HDC hdc)
HRESULT WINAPI DrawThemeBackground(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, const RECT *pRect, const RECT *pClipRect)
BOOL WINAPI IsThemeBackgroundPartiallyTransparent(HTHEME hTheme, int iPartId, int iStateId)
HRESULT WINAPI DrawThemeParentBackground(HWND hwnd, HDC hdc, RECT *prc)
HRESULT WINAPI GetThemeBackgroundContentRect(HTHEME hTheme, HDC hdc, int iPartId, int iStateId, const RECT *pBoundingRect, RECT *pContentRect)
HRESULT WINAPI GetThemeInt(HTHEME hTheme, int iPartId, int iStateId, int iPropId, int *piVal)
HTHEME WINAPI OpenThemeData(HWND hwnd, LPCWSTR classlist)
HTHEME WINAPI GetWindowTheme(HWND hwnd)
HRESULT WINAPI CloseThemeData(HTHEME hTheme)
GLdouble GLdouble GLdouble r
GLdouble GLdouble GLdouble GLdouble top
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
static HTHEME(WINAPI *pOpenThemeDataEx)(HWND
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
struct PBRANGE * PPBRANGE
#define TMT_PROGRESSCHUNKSIZE
#define TMT_PROGRESSSPACESIZE
_In_ LPWSTR _In_ ULONG _In_ ULONG _In_ ULONG _Out_ DEVINFO * pdi
int WINAPI ExcludeClipRect(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF)
int WINAPI SelectClipRgn(_In_ HDC, _In_opt_ HRGN)
int WINAPI FrameRect(_In_ HDC, _In_ LPCRECT, _In_ HBRUSH)
#define GetWindowLongPtrW
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
HBRUSH WINAPI GetSysColorBrush(_In_ int)
LONG WINAPI SetWindowLongW(_In_ HWND, _In_ int, _In_ LONG)
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
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_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
BOOL WINAPI UpdateWindow(_In_ HWND)
BOOL WINAPI OffsetRect(_Inout_ LPRECT, _In_ int, _In_ int)
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)
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
BOOL WINAPI InflateRect(_Inout_ LPRECT, _In_ int, _In_ int)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)