Trackbar updates
Dimitrie O. Paun
dpaun at rogers.com
Wed Sep 4 12:57:14 CDT 2002
ChangeLog
-- Unicodification (use Unicode functions & types consistently)
-- pass infoPtr around instead of hwnd
-- proper type-safe signatures for functions processing messages
-- fix the types for some of the control's parameters
-- implement [GS]ET_UNICODEFORMAT
-- few indentation and spacing fixes
-- tidy up docu
Index: dlls/comctl32/trackbar.c
===================================================================
RCS file: /var/cvs/wine/dlls/comctl32/trackbar.c,v
retrieving revision 1.33
diff -u -r1.33 trackbar.c
--- dlls/comctl32/trackbar.c 16 Jul 2002 01:23:59 -0000 1.33
+++ dlls/comctl32/trackbar.c 4 Sep 2002 16:37:39 -0000
@@ -2,7 +2,8 @@
* Trackbar control
*
* Copyright 1998, 1999 Eric Kohl <ekohl at abo.rhein-zeitung.de>
- * Copyright 1998,1999 Alex Priem <alexp at sci.kun.nl>
+ * Copyright 1998, 1999 Alex Priem <alexp at sci.kun.nl>
+ * Copyright 2002 Dimitrie O. Paun <dimi at bigfoot.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -19,21 +20,16 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* TODO:
- * - Some messages.
* - handle dragging slider better
+ * - increase with of the paging area
+ * - possition buddy controls
* - better tic handling.
* - more notifications.
- *
+ * - TBM_SETRANGEMAX & TBM_SETRANGEMIN should only change the view of the
+ * trackbar, not the actual amount of tics in the list.
+ * - TBM_GETTIC & TBM_GETTICPOS shouldn't rely on infoPtr->tics being sorted.
*/
-/* known bugs:
-
- -TBM_SETRANGEMAX & TBM_SETRANGEMIN should only change the view of the
- trackbar, not the actual amount of tics in the list.
- -TBM_GETTIC & TBM_GETTICPOS shouldn't rely on infoPtr->tics being sorted.
-*/
-
-
#include <stdio.h>
#include <string.h>
@@ -45,16 +41,17 @@
typedef struct
{
- INT nRangeMin;
- INT nRangeMax;
- INT nLineSize;
- INT nPageSize;
- INT nSelMin;
- INT nSelMax;
- INT nPos;
+ HWND hwndSelf;
+ LONG lRangeMin;
+ LONG lRangeMax;
+ LONG lLineSize;
+ LONG lPageSize;
+ LONG lSelMin;
+ LONG lSelMax;
+ LONG lPos;
UINT uThumbLen;
UINT uNumTics;
- UINT uTicFreq;
+ UINT uTicFreq;
HWND hwndNotify;
HWND hwndToolTip;
HWND hwndBuddyLA;
@@ -63,6 +60,7 @@
COLORREF clrBk;
INT flags;
BOOL bFocus;
+ BOOL bUnicode;
RECT rcChannel;
RECT rcSelection;
RECT rcThumb;
@@ -73,8 +71,6 @@
/* #define TB_REFRESH_TIMER 1 */
/* #define TB_REFRESH_DELAY 1 */
-#define TRACKBAR_GetInfoPtr(wndPtr) ((TRACKBAR_INFO *)GetWindowLongA (hwnd,0))
-
/* Used by TRACKBAR_Refresh to find out which parts of the control
need to be recalculated */
@@ -95,14 +91,14 @@
#define TIC_SELECTIONMARKMIN 0x100
#define TIC_SELECTIONMARK (TIC_SELECTIONMARKMAX | TIC_SELECTIONMARKMIN)
-static BOOL TRACKBAR_SendNotify (HWND hwnd, UINT code);
+static BOOL TRACKBAR_SendNotify (TRACKBAR_INFO *infoPtr, UINT code);
static void TRACKBAR_RecalculateTics (TRACKBAR_INFO *infoPtr)
{
int i,tic,nrTics;
- if (infoPtr->uTicFreq && infoPtr->nRangeMax >= infoPtr->nRangeMin)
- nrTics=(infoPtr->nRangeMax - infoPtr->nRangeMin)/infoPtr->uTicFreq;
+ if (infoPtr->uTicFreq && infoPtr->lRangeMax >= infoPtr->lRangeMin)
+ nrTics=(infoPtr->lRangeMax - infoPtr->lRangeMin)/infoPtr->uTicFreq;
else {
nrTics=0;
COMCTL32_Free (infoPtr->tics);
@@ -117,7 +113,7 @@
infoPtr->uNumTics=nrTics;
}
infoPtr->uNumTics=nrTics;
- tic=infoPtr->nRangeMin+infoPtr->uTicFreq;
+ tic=infoPtr->lRangeMin+infoPtr->uTicFreq;
for (i=0; i<nrTics; i++,tic+=infoPtr->uTicFreq)
infoPtr->tics[i]=tic;
}
@@ -126,13 +122,13 @@
/* converts from physical (mouse) position to logical position
(in range of trackbar) */
-static inline DOUBLE
+static inline double
TRACKBAR_ConvertPlaceToPosition (TRACKBAR_INFO *infoPtr, int place,
int vertical)
{
- double range,width,pos;
+ double range, width, pos;
- range=infoPtr->nRangeMax - infoPtr->nRangeMin;
+ range=infoPtr->lRangeMax - infoPtr->lRangeMin;
if (vertical) {
width=infoPtr->rcChannel.bottom - infoPtr->rcChannel.top;
pos=(range*(place - infoPtr->rcChannel.top)) / width;
@@ -140,25 +136,25 @@
width=infoPtr->rcChannel.right - infoPtr->rcChannel.left;
pos=(range*(place - infoPtr->rcChannel.left)) / width;
}
- pos+=infoPtr->nRangeMin;
- if (pos > infoPtr->nRangeMax)
- pos = infoPtr->nRangeMax;
- else if (pos < infoPtr->nRangeMin)
- pos = infoPtr->nRangeMin;
+ pos += infoPtr->lRangeMin;
+ if (pos > infoPtr->lRangeMax)
+ pos = infoPtr->lRangeMax;
+ else if (pos < infoPtr->lRangeMin)
+ pos = infoPtr->lRangeMin;
- TRACE("%.2f\n",pos);
+ TRACE("%.2f\n", pos);
return pos;
}
-static VOID
-TRACKBAR_CalcChannel (HWND hwnd, TRACKBAR_INFO *infoPtr)
+static void
+TRACKBAR_CalcChannel (TRACKBAR_INFO *infoPtr)
{
- DWORD dwStyle = GetWindowLongA (hwnd, GWL_STYLE);
+ DWORD dwStyle = GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE);
INT cyChannel,offsettop,offsetedge;
RECT lpRect,*channel = & infoPtr->rcChannel;
- GetClientRect (hwnd, &lpRect);
+ GetClientRect (infoPtr->hwndSelf, &lpRect);
if (dwStyle & TBS_ENABLESELRANGE)
cyChannel = ((int)(infoPtr->uThumbLen/4.5)+1)*3;
@@ -196,30 +192,30 @@
}
}
-static VOID
-TRACKBAR_CalcThumb (HWND hwnd, TRACKBAR_INFO *infoPtr)
+static void
+TRACKBAR_CalcThumb (TRACKBAR_INFO *infoPtr)
{
RECT *thumb;
int range, width, thumbdepth;
- DWORD dwStyle = GetWindowLongA(hwnd,GWL_STYLE);
+ DWORD dwStyle = GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE);
thumb=&infoPtr->rcThumb;
- range=infoPtr->nRangeMax - infoPtr->nRangeMin;
+ range=infoPtr->lRangeMax - infoPtr->lRangeMin;
thumbdepth = ((INT)((FLOAT)infoPtr->uThumbLen / 4.5) * 2) + 2;
- if (!range) return; /* FIXME: may this happen? */
+ if (!range) range = 1;
if (dwStyle & TBS_VERT)
{
width=infoPtr->rcChannel.bottom - infoPtr->rcChannel.top;
if (dwStyle & (TBS_BOTH | TBS_LEFT))
- thumb->left = 10;
+ thumb->left = 10;
else
- thumb-> left =2;
+ thumb->left = 2;
thumb->right = thumb -> left + infoPtr->uThumbLen;
thumb->top = infoPtr->rcChannel.top +
- (width*(infoPtr->nPos - infoPtr->nRangeMin))/range -
+ (width*(infoPtr->lPos - infoPtr->lRangeMin))/range -
thumbdepth/2;
thumb->bottom = thumb->top + thumbdepth;
}
@@ -228,42 +224,42 @@
width=infoPtr->rcChannel.right - infoPtr->rcChannel.left;
thumb->left = infoPtr->rcChannel.left +
- (width*(infoPtr->nPos - infoPtr->nRangeMin))/range -
+ (width*(infoPtr->lPos - infoPtr->lRangeMin))/range -
thumbdepth/2;
thumb->right = thumb->left + thumbdepth;
if (dwStyle & (TBS_BOTH | TBS_TOP))
- thumb->top = 10;
+ thumb->top = 10;
else
- thumb->top = 2;
- thumb->bottom = thumb -> top + infoPtr->uThumbLen;
+ thumb->top = 2;
+ thumb->bottom = thumb->top + infoPtr->uThumbLen;
}
}
-static VOID
-TRACKBAR_CalcSelection (HWND hwnd, TRACKBAR_INFO *infoPtr)
+static void
+TRACKBAR_CalcSelection (TRACKBAR_INFO *infoPtr)
{
RECT *selection;
int range, width;
selection= & infoPtr->rcSelection;
- range=infoPtr->nRangeMax - infoPtr->nRangeMin;
+ range=infoPtr->lRangeMax - infoPtr->lRangeMin;
width=infoPtr->rcChannel.right - infoPtr->rcChannel.left;
if (range <= 0)
SetRectEmpty (selection);
else
- if (GetWindowLongA (hwnd, GWL_STYLE) & TBS_VERT) {
+ if (GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE) & TBS_VERT) {
selection->left = infoPtr->rcChannel.left +
- (width*infoPtr->nSelMin)/range;
+ (width*infoPtr->lSelMin)/range;
selection->right = infoPtr->rcChannel.left +
- (width*infoPtr->nSelMax)/range;
+ (width*infoPtr->lSelMax)/range;
selection->top = infoPtr->rcChannel.top + 2;
selection->bottom = infoPtr->rcChannel.bottom - 2;
} else {
selection->top = infoPtr->rcChannel.top +
- (width*infoPtr->nSelMin)/range;
+ (width*infoPtr->lSelMin)/range;
selection->bottom = infoPtr->rcChannel.top +
- (width*infoPtr->nSelMax)/range;
+ (width*infoPtr->lSelMax)/range;
selection->left = infoPtr->rcChannel.left + 2;
selection->right = infoPtr->rcChannel.right - 2;
}
@@ -273,14 +269,14 @@
/* ticPos is in tic-units, not in pixels */
-static VOID
+static void
TRACKBAR_DrawHorizTic (TRACKBAR_INFO *infoPtr, HDC hdc, LONG ticPos,
int flags, COLORREF clrTic)
{
RECT rcChannel=infoPtr->rcChannel;
int x,y,width,range,side;
- range=infoPtr->nRangeMax - infoPtr->nRangeMin;
+ range=infoPtr->lRangeMax - infoPtr->lRangeMin;
width=rcChannel.right - rcChannel.left;
if (flags & TBS_TOP) {
@@ -293,17 +289,17 @@
if (flags & TIC_SELECTIONMARK) {
if (flags & TIC_SELECTIONMARKMIN)
- x=rcChannel.left + (width*(ticPos - infoPtr->nRangeMin))/range - 1;
+ x=rcChannel.left + (width*(ticPos - infoPtr->lRangeMin))/range - 1;
else
- x=rcChannel.left + (width*(ticPos - infoPtr->nRangeMin))/range + 1;
+ x=rcChannel.left + (width*(ticPos - infoPtr->lRangeMin))/range + 1;
SetPixel (hdc, x,y+6*side, clrTic);
SetPixel (hdc, x,y+7*side, clrTic);
return;
}
- if ((ticPos>infoPtr->nRangeMin) && (ticPos<infoPtr->nRangeMax)) {
- x=rcChannel.left + (width*(ticPos - infoPtr->nRangeMin))/range;
+ if ((ticPos>infoPtr->lRangeMin) && (ticPos<infoPtr->lRangeMax)) {
+ x=rcChannel.left + (width*(ticPos - infoPtr->lRangeMin))/range;
SetPixel (hdc, x,y+5*side, clrTic);
SetPixel (hdc, x,y+6*side, clrTic);
SetPixel (hdc, x,y+7*side, clrTic);
@@ -323,14 +319,14 @@
}
-static VOID
+static void
TRACKBAR_DrawVertTic (TRACKBAR_INFO *infoPtr, HDC hdc, LONG ticPos,
int flags, COLORREF clrTic)
{
RECT rcChannel=infoPtr->rcChannel;
int x,y,width,range,side;
- range=infoPtr->nRangeMax - infoPtr->nRangeMin;
+ range=infoPtr->lRangeMax - infoPtr->lRangeMin;
width=rcChannel.bottom - rcChannel.top;
if (flags & TBS_TOP) {
@@ -344,17 +340,17 @@
if (flags & TIC_SELECTIONMARK) {
if (flags & TIC_SELECTIONMARKMIN)
- y=rcChannel.top + (width*(ticPos - infoPtr->nRangeMin))/range - 1;
+ y=rcChannel.top + (width*(ticPos - infoPtr->lRangeMin))/range - 1;
else
- y=rcChannel.top + (width*(ticPos - infoPtr->nRangeMin))/range + 1;
+ y=rcChannel.top + (width*(ticPos - infoPtr->lRangeMin))/range + 1;
SetPixel (hdc, x+6*side, y, clrTic);
SetPixel (hdc, x+7*side, y, clrTic);
return;
}
- if ((ticPos>infoPtr->nRangeMin) && (ticPos<infoPtr->nRangeMax)) {
- y=rcChannel.top + (width*(ticPos - infoPtr->nRangeMin))/range;
+ if ((ticPos>infoPtr->lRangeMin) && (ticPos<infoPtr->lRangeMax)) {
+ y=rcChannel.top + (width*(ticPos - infoPtr->lRangeMin))/range;
SetPixel (hdc, x+5*side, y, clrTic);
SetPixel (hdc, x+6*side, y, clrTic);
SetPixel (hdc, x+7*side, y, clrTic);
@@ -375,7 +371,7 @@
}
-static VOID
+static void
TRACKBAR_DrawTics (TRACKBAR_INFO *infoPtr, HDC hdc, LONG ticPos,
int flags, COLORREF clrTic)
{
@@ -397,7 +393,7 @@
}
-static VOID
+static void
TRACKBAR_DrawThumb(TRACKBAR_INFO *infoPtr, HDC hdc, DWORD dwStyle)
{
HBRUSH oldbr,hbr = GetSysColorBrush(COLOR_BTNFACE);
@@ -533,32 +529,31 @@
SelectObject(hdc,oldpen);
}
-static VOID
-TRACKBAR_Refresh (HWND hwnd, HDC hdc)
+static void
+TRACKBAR_Refresh (TRACKBAR_INFO *infoPtr, HDC hdc)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
- DWORD dwStyle = GetWindowLongA (hwnd, GWL_STYLE);
+ DWORD dwStyle = GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE);
RECT rcClient, rcChannel, rcSelection;
HBRUSH hBrush;
int i;
- GetClientRect (hwnd, &rcClient);
+ GetClientRect (infoPtr->hwndSelf, &rcClient);
hBrush = CreateSolidBrush (infoPtr->clrBk);
FillRect (hdc, &rcClient, hBrush);
DeleteObject (hBrush);
if (infoPtr->flags & TB_DRAGPOSVALID) {
- infoPtr->nPos=infoPtr->dragPos;
+ infoPtr->lPos=infoPtr->dragPos;
infoPtr->flags |= TB_THUMBPOSCHANGED;
}
if (infoPtr->flags & TB_THUMBCHANGED) {
- TRACKBAR_CalcThumb (hwnd, infoPtr);
+ TRACKBAR_CalcThumb (infoPtr);
if (infoPtr->flags & TB_THUMBSIZECHANGED)
- TRACKBAR_CalcChannel (hwnd, infoPtr);
+ TRACKBAR_CalcChannel (infoPtr);
}
if (infoPtr->flags & TB_SELECTIONCHANGED)
- TRACKBAR_CalcSelection (hwnd, infoPtr);
+ TRACKBAR_CalcSelection (infoPtr);
infoPtr->flags &= ~ (TB_THUMBCHANGED | TB_SELECTIONCHANGED |
TB_DRAGPOSVALID);
@@ -597,9 +592,9 @@
if ((dwStyle & TBS_ENABLESELRANGE) &&
(rcSelection.left!=rcSelection.right)) {
- TRACKBAR_DrawTics (infoPtr, hdc, infoPtr->nSelMin,
+ TRACKBAR_DrawTics (infoPtr, hdc, infoPtr->lSelMin,
ticFlags | TIC_SELECTIONMARKMIN, clrTic);
- TRACKBAR_DrawTics (infoPtr, hdc, infoPtr->nSelMax,
+ TRACKBAR_DrawTics (infoPtr, hdc, infoPtr->lSelMax,
ticFlags | TIC_SELECTIONMARKMAX, clrTic);
}
}
@@ -616,15 +611,15 @@
}
-static VOID
-TRACKBAR_AlignBuddies (HWND hwnd, TRACKBAR_INFO *infoPtr)
+static void
+TRACKBAR_AlignBuddies (TRACKBAR_INFO *infoPtr)
{
- DWORD dwStyle = GetWindowLongA (hwnd, GWL_STYLE);
- HWND hwndParent = GetParent (hwnd);
+ DWORD dwStyle = GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE);
+ HWND hwndParent = GetParent (infoPtr->hwndSelf);
RECT rcSelf, rcBuddy;
INT x, y;
- GetWindowRect (hwnd, &rcSelf);
+ GetWindowRect (infoPtr->hwndSelf, &rcSelf);
MapWindowPoints (HWND_DESKTOP, hwndParent, (LPPOINT)&rcSelf, 2);
/* align buddy left or above */
@@ -670,60 +665,46 @@
static LRESULT
-TRACKBAR_ClearSel (HWND hwnd, WPARAM wParam, LPARAM lParam)
+TRACKBAR_ClearSel (TRACKBAR_INFO *infoPtr, BOOL fRedraw)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- infoPtr->nSelMin = 0;
- infoPtr->nSelMax = 0;
+ infoPtr->lSelMin = 0;
+ infoPtr->lSelMax = 0;
infoPtr->flags |= TB_SELECTIONCHANGED;
- if ((BOOL)wParam)
- InvalidateRect (hwnd, NULL, FALSE);
+ if (fRedraw)
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
return 0;
}
static LRESULT
-TRACKBAR_ClearTics (HWND hwnd, WPARAM wParam, LPARAM lParam)
+TRACKBAR_ClearTics (TRACKBAR_INFO *infoPtr, BOOL fRedraw)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
if (infoPtr->tics) {
COMCTL32_Free (infoPtr->tics);
infoPtr->tics = NULL;
infoPtr->uNumTics = 0;
}
- if (wParam)
- InvalidateRect (hwnd, NULL, FALSE);
+ if (fRedraw)
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
return 0;
}
-static LRESULT
-TRACKBAR_GetBuddy (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static HWND inline
+TRACKBAR_GetBuddy (TRACKBAR_INFO *infoPtr, BOOL fLocation)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- if (wParam) /* buddy is left or above */
- return (LRESULT)infoPtr->hwndBuddyLA;
-
- /* buddy is right or below */
- return (LRESULT) infoPtr->hwndBuddyRB;
+ return fLocation ? infoPtr->hwndBuddyLA : infoPtr->hwndBuddyRB;
}
-static LRESULT
-TRACKBAR_GetChannelRect (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LRESULT inline
+TRACKBAR_GetChannelRect (TRACKBAR_INFO *infoPtr, LPRECT lprc)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
- LPRECT lprc = (LPRECT)lParam;
-
- if (lprc == NULL)
- return 0;
+ if (lprc == NULL) return 0;
lprc->left = infoPtr->rcChannel.left;
lprc->right = infoPtr->rcChannel.right;
@@ -734,103 +715,80 @@
}
-static LRESULT
-TRACKBAR_GetLineSize (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LONG inline
+TRACKBAR_GetLineSize (TRACKBAR_INFO *infoPtr)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- return infoPtr->nLineSize;
+ return infoPtr->lLineSize;
}
-static LRESULT
-TRACKBAR_GetNumTics (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LONG inline
+TRACKBAR_GetNumTics (TRACKBAR_INFO *infoPtr)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- if (GetWindowLongA (hwnd, GWL_STYLE) & TBS_NOTICKS)
+ if (GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE) & TBS_NOTICKS)
return 0;
- return infoPtr->uNumTics+2;
+ return infoPtr->uNumTics + 2;
}
-static LRESULT
-TRACKBAR_GetPageSize (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LONG inline
+TRACKBAR_GetPageSize (TRACKBAR_INFO *infoPtr)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- return infoPtr->nPageSize;
+ return infoPtr->lPageSize;
}
-static LRESULT
-TRACKBAR_GetPos (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LONG inline
+TRACKBAR_GetPos (TRACKBAR_INFO *infoPtr)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- return infoPtr->nPos;
+ return infoPtr->lPos;
}
-static LRESULT
-TRACKBAR_GetRangeMax (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LONG inline
+TRACKBAR_GetRangeMax (TRACKBAR_INFO *infoPtr)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- return infoPtr->nRangeMax;
+ return infoPtr->lRangeMax;
}
-static LRESULT
-TRACKBAR_GetRangeMin (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LONG inline
+TRACKBAR_GetRangeMin (TRACKBAR_INFO *infoPtr)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- return infoPtr->nRangeMin;
+ return infoPtr->lRangeMin;
}
-static LRESULT
-TRACKBAR_GetSelEnd (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LONG inline
+TRACKBAR_GetSelEnd (TRACKBAR_INFO *infoPtr)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- return infoPtr->nSelMax;
+ return infoPtr->lSelMax;
}
-static LRESULT
-TRACKBAR_GetSelStart (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LONG inline
+TRACKBAR_GetSelStart (TRACKBAR_INFO *infoPtr)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- return infoPtr->nSelMin;
+ return infoPtr->lSelMin;
}
-static LRESULT
-TRACKBAR_GetThumbLength (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static UINT inline
+TRACKBAR_GetThumbLength (TRACKBAR_INFO *infoPtr)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
return infoPtr->uThumbLen;
}
-static LRESULT
-TRACKBAR_GetPTics (HWND hwnd)
+static LPLONG inline
+TRACKBAR_GetPTics (TRACKBAR_INFO *infoPtr)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- return (LRESULT) infoPtr->tics;
+ return infoPtr->tics;
}
-static LRESULT
-TRACKBAR_GetThumbRect (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LRESULT inline
+TRACKBAR_GetThumbRect (TRACKBAR_INFO *infoPtr, LPRECT lprc)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
- LPRECT lprc = (LPRECT)lParam;
-
if (lprc == NULL)
return 0;
@@ -843,356 +801,329 @@
}
-static LRESULT
-TRACKBAR_GetTic (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LONG inline
+TRACKBAR_GetTic (TRACKBAR_INFO *infoPtr, INT iTic)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
- INT iTic;
-
- iTic=(INT) wParam;
- if ((iTic<0) || (iTic>infoPtr->uNumTics))
+ if ((iTic < 0) || (iTic > infoPtr->uNumTics))
return -1;
- return (LRESULT) infoPtr->tics[iTic];
+ return infoPtr->tics[iTic];
}
-static LRESULT
-TRACKBAR_GetTicPos (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LONG inline
+TRACKBAR_GetTicPos (TRACKBAR_INFO *infoPtr, INT iTic)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
- INT iTic, range, width, pos;
+ LONG range, width, pos;
-
- iTic=(INT ) wParam;
- if ((iTic<0) || (iTic>infoPtr->uNumTics))
+ if ((iTic < 0) || (iTic > infoPtr->uNumTics))
return -1;
- range=infoPtr->nRangeMax - infoPtr->nRangeMin;
- width=infoPtr->rcChannel.right - infoPtr->rcChannel.left;
- pos=infoPtr->rcChannel.left + (width * infoPtr->tics[iTic]) / range;
-
+ range = infoPtr->lRangeMax - infoPtr->lRangeMin;
+ width = infoPtr->rcChannel.right - infoPtr->rcChannel.left;
+ pos = infoPtr->rcChannel.left + (width * infoPtr->tics[iTic]) / range;
- return (LRESULT) pos;
+ return pos;
}
-static LRESULT
-TRACKBAR_GetToolTips (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static HWND inline
+TRACKBAR_GetToolTips (TRACKBAR_INFO *infoPtr)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- if (GetWindowLongA (hwnd, GWL_STYLE) & TBS_TOOLTIPS)
- return (LRESULT)infoPtr->hwndToolTip;
+ if (GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE) & TBS_TOOLTIPS)
+ return infoPtr->hwndToolTip;
return 0;
}
-/* case TBM_GETUNICODEFORMAT: */
+static BOOL inline
+TRACKBAR_GetUnicodeFormat (TRACKBAR_INFO *infoPtr)
+{
+ return infoPtr->bUnicode;
+}
-static LRESULT
-TRACKBAR_SetBuddy (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static HWND
+TRACKBAR_SetBuddy (TRACKBAR_INFO *infoPtr, BOOL fLocation, HWND hwndBuddy)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
HWND hwndTemp;
- if (wParam) {
+ if (fLocation) {
/* buddy is left or above */
hwndTemp = infoPtr->hwndBuddyLA;
- infoPtr->hwndBuddyLA = (HWND)lParam;
+ infoPtr->hwndBuddyLA = hwndBuddy;
FIXME("move buddy!\n");
}
else {
/* buddy is right or below */
hwndTemp = infoPtr->hwndBuddyRB;
- infoPtr->hwndBuddyRB = (HWND)lParam;
+ infoPtr->hwndBuddyRB = hwndBuddy;
FIXME("move buddy!\n");
}
- TRACKBAR_AlignBuddies (hwnd, infoPtr);
+ TRACKBAR_AlignBuddies (infoPtr);
- return (LRESULT)hwndTemp;
+ return hwndTemp;
}
-static LRESULT
-TRACKBAR_SetLineSize (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LONG inline
+TRACKBAR_SetLineSize (TRACKBAR_INFO *infoPtr, LONG lLineSize)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
- INT nTemp = infoPtr->nLineSize;
+ LONG lTemp = infoPtr->lLineSize;
- infoPtr->nLineSize = (INT)lParam;
+ infoPtr->lLineSize = lLineSize;
- return nTemp;
+ return lTemp;
}
-static LRESULT
-TRACKBAR_SetPageSize (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LONG inline
+TRACKBAR_SetPageSize (TRACKBAR_INFO *infoPtr, LONG lPageSize)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
- INT nTemp = infoPtr->nPageSize;
+ LONG lTemp = infoPtr->lPageSize;
- infoPtr->nPageSize = (INT)lParam;
+ infoPtr->lPageSize = lPageSize;
- return nTemp;
+ return lTemp;
}
-static LRESULT
-TRACKBAR_SetPos (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LRESULT inline
+TRACKBAR_SetPos (TRACKBAR_INFO *infoPtr, BOOL fPosition, LONG lPosition)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
+ infoPtr->lPos = lPosition;
- infoPtr->nPos = (INT)lParam;
+ if (infoPtr->lPos < infoPtr->lRangeMin)
+ infoPtr->lPos = infoPtr->lRangeMin;
- if (infoPtr->nPos < infoPtr->nRangeMin)
- infoPtr->nPos = infoPtr->nRangeMin;
-
- if (infoPtr->nPos > infoPtr->nRangeMax)
- infoPtr->nPos = infoPtr->nRangeMax;
+ if (infoPtr->lPos > infoPtr->lRangeMax)
+ infoPtr->lPos = infoPtr->lRangeMax;
infoPtr->flags |= TB_THUMBPOSCHANGED;
- if (wParam)
- InvalidateRect (hwnd, NULL, FALSE);
+ if (fPosition)
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
return 0;
}
-static LRESULT
-TRACKBAR_SetRange (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LRESULT inline
+TRACKBAR_SetRange (TRACKBAR_INFO *infoPtr, BOOL fRedraw, LONG lRange)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
- infoPtr->nRangeMin = (INT)LOWORD(lParam);
- infoPtr->nRangeMax = (INT)HIWORD(lParam);
+ infoPtr->lRangeMin = LOWORD(lRange);
+ infoPtr->lRangeMax = HIWORD(lRange);
- if (infoPtr->nPos < infoPtr->nRangeMin) {
- infoPtr->nPos = infoPtr->nRangeMin;
+ if (infoPtr->lPos < infoPtr->lRangeMin) {
+ infoPtr->lPos = infoPtr->lRangeMin;
infoPtr->flags |=TB_THUMBPOSCHANGED;
}
- if (infoPtr->nPos > infoPtr->nRangeMax) {
- infoPtr->nPos = infoPtr->nRangeMax;
+ if (infoPtr->lPos > infoPtr->lRangeMax) {
+ infoPtr->lPos = infoPtr->lRangeMax;
infoPtr->flags |=TB_THUMBPOSCHANGED;
}
- infoPtr->nPageSize=(infoPtr->nRangeMax - infoPtr->nRangeMin)/5;
- if (infoPtr->nPageSize == 0)
- infoPtr->nPageSize = 1;
+ infoPtr->lPageSize=(infoPtr->lRangeMax - infoPtr->lRangeMin)/5;
+ if (infoPtr->lPageSize == 0)
+ infoPtr->lPageSize = 1;
TRACKBAR_RecalculateTics (infoPtr);
- if (wParam)
- InvalidateRect (hwnd, NULL, FALSE);
+ if (fRedraw)
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
return 0;
}
-static LRESULT
-TRACKBAR_SetRangeMax (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LRESULT inline
+TRACKBAR_SetRangeMax (TRACKBAR_INFO *infoPtr, BOOL fRedraw, LONG lMax)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- infoPtr->nRangeMax = (INT)lParam;
- if (infoPtr->nPos > infoPtr->nRangeMax) {
- infoPtr->nPos = infoPtr->nRangeMax;
+ infoPtr->lRangeMax = lMax;
+ if (infoPtr->lPos > infoPtr->lRangeMax) {
+ infoPtr->lPos = infoPtr->lRangeMax;
infoPtr->flags |=TB_THUMBPOSCHANGED;
}
- infoPtr->nPageSize=(infoPtr->nRangeMax - infoPtr->nRangeMin)/5;
- if (infoPtr->nPageSize == 0)
- infoPtr->nPageSize = 1;
+ infoPtr->lPageSize=(infoPtr->lRangeMax - infoPtr->lRangeMin)/5;
+ if (infoPtr->lPageSize == 0)
+ infoPtr->lPageSize = 1;
TRACKBAR_RecalculateTics (infoPtr);
- if (wParam)
- InvalidateRect (hwnd, NULL, FALSE);
+ if (fRedraw)
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
return 0;
}
-static LRESULT
-TRACKBAR_SetRangeMin (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LRESULT inline
+TRACKBAR_SetRangeMin (TRACKBAR_INFO *infoPtr, BOOL fRedraw, LONG lMin)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- infoPtr->nRangeMin = (INT)lParam;
- if (infoPtr->nPos < infoPtr->nRangeMin) {
- infoPtr->nPos = infoPtr->nRangeMin;
+ infoPtr->lRangeMin = lMin;
+ if (infoPtr->lPos < infoPtr->lRangeMin) {
+ infoPtr->lPos = infoPtr->lRangeMin;
infoPtr->flags |=TB_THUMBPOSCHANGED;
}
- infoPtr->nPageSize=(infoPtr->nRangeMax - infoPtr->nRangeMin)/5;
- if (infoPtr->nPageSize == 0)
- infoPtr->nPageSize = 1;
- TRACKBAR_RecalculateTics (infoPtr);
-
- if (wParam)
- InvalidateRect (hwnd, NULL, FALSE);
-
- return 0;
-}
-
-
-static LRESULT
-TRACKBAR_SetTicFreq (HWND hwnd, WPARAM wParam)
-{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- if (GetWindowLongA (hwnd, GWL_STYLE) & TBS_AUTOTICKS)
- infoPtr->uTicFreq=(UINT) wParam;
-
+ infoPtr->lPageSize=(infoPtr->lRangeMax - infoPtr->lRangeMin)/5;
+ if (infoPtr->lPageSize == 0)
+ infoPtr->lPageSize = 1;
TRACKBAR_RecalculateTics (infoPtr);
- InvalidateRect (hwnd, NULL, FALSE);
+ if (fRedraw)
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
return 0;
}
-static LRESULT
-TRACKBAR_SetSel (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LRESULT inline
+TRACKBAR_SetSel (TRACKBAR_INFO *infoPtr, BOOL fRedraw, LONG lSel)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- infoPtr->nSelMin = (INT)LOWORD(lParam);
- infoPtr->nSelMax = (INT)HIWORD(lParam);
+ infoPtr->lSelMin = LOWORD(lSel);
+ infoPtr->lSelMax = HIWORD(lSel);
infoPtr->flags |=TB_SELECTIONCHANGED;
- if (!GetWindowLongA (hwnd, GWL_STYLE) & TBS_ENABLESELRANGE)
+ if (!GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE) & TBS_ENABLESELRANGE)
return 0;
- if (infoPtr->nSelMin < infoPtr->nRangeMin)
- infoPtr->nSelMin = infoPtr->nRangeMin;
- if (infoPtr->nSelMax > infoPtr->nRangeMax)
- infoPtr->nSelMax = infoPtr->nRangeMax;
-
- if (wParam)
- InvalidateRect (hwnd, NULL, FALSE);
+ if (infoPtr->lSelMin < infoPtr->lRangeMin)
+ infoPtr->lSelMin = infoPtr->lRangeMin;
+ if (infoPtr->lSelMax > infoPtr->lRangeMax)
+ infoPtr->lSelMax = infoPtr->lRangeMax;
+ if (fRedraw)
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
return 0;
}
-static LRESULT
-TRACKBAR_SetSelEnd (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LRESULT inline
+TRACKBAR_SetSelEnd (TRACKBAR_INFO *infoPtr, BOOL fRedraw, LONG lEnd)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- if (!GetWindowLongA (hwnd, GWL_STYLE) & TBS_ENABLESELRANGE)
+ if (!GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE) & TBS_ENABLESELRANGE)
return 0;
- infoPtr->nSelMax = (INT)lParam;
+ infoPtr->lSelMax = lEnd;
infoPtr->flags |= TB_SELECTIONCHANGED;
- if (infoPtr->nSelMax > infoPtr->nRangeMax)
- infoPtr->nSelMax = infoPtr->nRangeMax;
+ if (infoPtr->lSelMax > infoPtr->lRangeMax)
+ infoPtr->lSelMax = infoPtr->lRangeMax;
- if (wParam)
- InvalidateRect (hwnd, NULL, FALSE);
+ if (fRedraw)
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
return 0;
}
-static LRESULT
-TRACKBAR_SetSelStart (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LRESULT inline
+TRACKBAR_SetSelStart (TRACKBAR_INFO *infoPtr, BOOL fRedraw, LONG lStart)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- if (!GetWindowLongA (hwnd, GWL_STYLE) & TBS_ENABLESELRANGE)
+ if (!GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE) & TBS_ENABLESELRANGE)
return 0;
- infoPtr->nSelMin = (INT)lParam;
+ infoPtr->lSelMin = lStart;
infoPtr->flags |=TB_SELECTIONCHANGED;
- if (infoPtr->nSelMin < infoPtr->nRangeMin)
- infoPtr->nSelMin = infoPtr->nRangeMin;
+ if (infoPtr->lSelMin < infoPtr->lRangeMin)
+ infoPtr->lSelMin = infoPtr->lRangeMin;
- if (wParam)
- InvalidateRect (hwnd, NULL, FALSE);
+ if (fRedraw)
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
return 0;
}
-static LRESULT
-TRACKBAR_SetThumbLength (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LRESULT inline
+TRACKBAR_SetThumbLength (TRACKBAR_INFO *infoPtr, UINT iLength)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- if (GetWindowLongA (hwnd, GWL_STYLE) & TBS_FIXEDLENGTH)
- infoPtr->uThumbLen = (UINT)wParam;
+ if (GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE) & TBS_FIXEDLENGTH)
+ infoPtr->uThumbLen = iLength;
infoPtr->flags |= TB_THUMBSIZECHANGED;
- InvalidateRect (hwnd, NULL, FALSE);
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
return 0;
}
-static LRESULT
-TRACKBAR_SetTic (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LRESULT inline
+TRACKBAR_SetTic (TRACKBAR_INFO *infoPtr, LONG lPos)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
- INT nPos = (INT)lParam;
-
- if ((nPos < infoPtr->nRangeMin) || (nPos> infoPtr->nRangeMax))
+ if ((lPos < infoPtr->lRangeMin) || (lPos> infoPtr->lRangeMax))
return FALSE;
infoPtr->uNumTics++;
infoPtr->tics=COMCTL32_ReAlloc( infoPtr->tics,
(infoPtr->uNumTics)*sizeof (DWORD));
- infoPtr->tics[infoPtr->uNumTics-1]=nPos;
+ infoPtr->tics[infoPtr->uNumTics-1]=lPos;
- InvalidateRect (hwnd, NULL, FALSE);
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
return TRUE;
}
-static LRESULT
-TRACKBAR_SetTipSide (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LRESULT inline
+TRACKBAR_SetTicFreq (TRACKBAR_INFO *infoPtr, WORD wFreq)
+{
+ if (GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE) & TBS_AUTOTICKS)
+ infoPtr->uTicFreq = wFreq;
+
+ TRACKBAR_RecalculateTics (infoPtr);
+
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
+
+ return 0;
+}
+
+
+static INT inline
+TRACKBAR_SetTipSide (TRACKBAR_INFO *infoPtr, INT fLocation)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
INT fTemp = infoPtr->fLocation;
- infoPtr->fLocation = (INT)wParam;
+ infoPtr->fLocation = fLocation;
return fTemp;
}
-static LRESULT
-TRACKBAR_SetToolTips (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static LRESULT inline
+TRACKBAR_SetToolTips (TRACKBAR_INFO *infoPtr, HWND hwndTT)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- infoPtr->hwndToolTip = (HWND)wParam;
+ infoPtr->hwndToolTip = hwndTT;
return 0;
}
-/* case TBM_SETUNICODEFORMAT: */
+static BOOL inline
+TRACKBAR_SetUnicodeFormat (TRACKBAR_INFO *infoPtr, BOOL fUnicode)
+{
+ BOOL bTemp = infoPtr->bUnicode;
+
+ infoPtr->bUnicode = fUnicode;
+
+ return bTemp;
+}
static LRESULT
-TRACKBAR_InitializeThumb (HWND hwnd)
+TRACKBAR_InitializeThumb (TRACKBAR_INFO *infoPtr)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
infoPtr->uThumbLen = 23; /* initial thumb length */
- TRACKBAR_CalcChannel (hwnd,infoPtr);
- TRACKBAR_CalcThumb (hwnd, infoPtr);
+ TRACKBAR_CalcChannel (infoPtr);
+ TRACKBAR_CalcThumb (infoPtr);
infoPtr->flags &= ~TB_SELECTIONCHANGED;
return 0;
@@ -1200,36 +1131,39 @@
static LRESULT
-TRACKBAR_Create (HWND hwnd, WPARAM wParam, LPARAM lParam)
+TRACKBAR_Create (HWND hwnd, LPCREATESTRUCTW lpcs)
{
TRACKBAR_INFO *infoPtr;
infoPtr = (TRACKBAR_INFO *)COMCTL32_Alloc (sizeof(TRACKBAR_INFO));
- SetWindowLongA (hwnd, 0, (DWORD)infoPtr);
+ if (!infoPtr) return -1;
+ SetWindowLongW (hwnd, 0, (DWORD)infoPtr);
/* set default values */
- infoPtr->nRangeMin = 0;
- infoPtr->nRangeMax = 100;
- infoPtr->nLineSize = 1;
- infoPtr->nPageSize = 20;
- infoPtr->nSelMin = 0;
- infoPtr->nSelMax = 0;
- infoPtr->nPos = 0;
+ infoPtr->hwndSelf = hwnd;
+ infoPtr->lRangeMin = 0;
+ infoPtr->lRangeMax = 100;
+ infoPtr->lLineSize = 1;
+ infoPtr->lPageSize = 20;
+ infoPtr->lSelMin = 0;
+ infoPtr->lSelMax = 0;
+ infoPtr->lPos = 0;
infoPtr->uNumTics = 0; /* start and end tic are not included in count*/
infoPtr->uTicFreq = 1;
- infoPtr->tics = NULL;
- infoPtr->clrBk = GetSysColor (COLOR_BTNFACE);
- infoPtr->hwndNotify = GetParent (hwnd);
+ infoPtr->tics = NULL;
+ infoPtr->clrBk = GetSysColor (COLOR_BTNFACE);
+ infoPtr->hwndNotify= GetParent (hwnd);
- TRACKBAR_InitializeThumb (hwnd);
+ TRACKBAR_InitializeThumb (infoPtr);
/* Create tooltip control */
- if (GetWindowLongA (hwnd, GWL_STYLE) & TBS_TOOLTIPS) {
- TTTOOLINFOA ti;
+ if (GetWindowLongW (hwnd, GWL_STYLE) & TBS_TOOLTIPS) {
+ TTTOOLINFOW ti;
+ WCHAR testStrW[] = { 'T', 'e', 's', 't', 0 };
infoPtr->hwndToolTip =
- CreateWindowExA (0, TOOLTIPS_CLASSA, NULL, 0,
+ CreateWindowExW (0, TOOLTIPS_CLASSW, NULL, 0,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
hwnd, 0, 0, 0);
@@ -1239,23 +1173,23 @@
NMTOOLTIPSCREATED nmttc;
nmttc.hdr.hwndFrom = hwnd;
- nmttc.hdr.idFrom = GetWindowLongA (hwnd, GWL_ID);
+ nmttc.hdr.idFrom = GetWindowLongW (hwnd, GWL_ID);
nmttc.hdr.code = NM_TOOLTIPSCREATED;
nmttc.hwndToolTips = infoPtr->hwndToolTip;
- SendMessageA (GetParent (hwnd), WM_NOTIFY,
+ SendMessageW (GetParent (hwnd), WM_NOTIFY,
(WPARAM)nmttc.hdr.idFrom, (LPARAM)&nmttc);
}
- ZeroMemory (&ti, sizeof(TTTOOLINFOA));
- ti.cbSize = sizeof(TTTOOLINFOA);
+ ZeroMemory (&ti, sizeof(TTTOOLINFOW));
+ ti.cbSize = sizeof(TTTOOLINFOW);
ti.uFlags = TTF_IDISHWND | TTF_TRACK;
ti.hwnd = hwnd;
ti.uId = 0;
- ti.lpszText = "Test"; /* LPSTR_TEXTCALLBACK */
+ ti.lpszText = testStrW; /* LPSTR_TEXTCALLBACK */
SetRectEmpty (&ti.rect);
- SendMessageA (infoPtr->hwndToolTip, TTM_ADDTOOLA, 0, (LPARAM)&ti);
+ SendMessageW (infoPtr->hwndToolTip, TTM_ADDTOOLW, 0, (LPARAM)&ti);
}
return 0;
@@ -1263,66 +1197,58 @@
static LRESULT
-TRACKBAR_Destroy (HWND hwnd, WPARAM wParam, LPARAM lParam)
+TRACKBAR_Destroy (TRACKBAR_INFO *infoPtr)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
/* delete tooltip control */
if (infoPtr->hwndToolTip)
DestroyWindow (infoPtr->hwndToolTip);
COMCTL32_Free (infoPtr);
- SetWindowLongA (hwnd, 0, 0);
+ SetWindowLongW (infoPtr->hwndSelf, 0, 0);
return 0;
}
static LRESULT
-TRACKBAR_KillFocus (HWND hwnd, WPARAM wParam, LPARAM lParam)
+TRACKBAR_KillFocus (TRACKBAR_INFO *infoPtr, HWND hwndGetFocus)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
TRACE("\n");
infoPtr->bFocus = FALSE;
infoPtr->flags &= ~TB_DRAG_MODE;
- InvalidateRect (hwnd, NULL, FALSE);
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
return 0;
}
static LRESULT
-TRACKBAR_LButtonDown (HWND hwnd, WPARAM wParam, LPARAM lParam)
+TRACKBAR_LButtonDown (TRACKBAR_INFO *infoPtr, DWORD fwKeys, INT xPos, INT yPos)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
- DWORD dwStyle = GetWindowLongA (hwnd, GWL_STYLE);
- POINT clickPoint;
+ DWORD dwStyle = GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE);
+ POINT clickPoint = { xPos, yPos };
- SetFocus (hwnd);
-
- clickPoint.y = HIWORD(lParam);
- clickPoint.x = LOWORD(lParam);
+ SetFocus (infoPtr->hwndSelf);
if (PtInRect(&(infoPtr->rcThumb),clickPoint))
{
infoPtr->flags |= TB_DRAG_MODE;
if (dwStyle & TBS_TOOLTIPS) { /* enable tooltip */
- TTTOOLINFOA ti;
+ TTTOOLINFOW ti;
POINT pt;
GetCursorPos (&pt);
- SendMessageA (infoPtr->hwndToolTip, TTM_TRACKPOSITION, 0,
+ SendMessageW (infoPtr->hwndToolTip, TTM_TRACKPOSITION, 0,
(LPARAM)MAKELPARAM(pt.x, pt.y));
- ti.cbSize = sizeof(TTTOOLINFOA);
+ ti.cbSize = sizeof(TTTOOLINFOW);
ti.uId = 0;
- ti.hwnd = (UINT)hwnd;
+ ti.hwnd = infoPtr->hwndSelf;
infoPtr->flags |= TB_SHOW_TOOLTIP;
- SetCapture (hwnd);
- SendMessageA (infoPtr->hwndToolTip, TTM_TRACKACTIVATE,
+ SetCapture (infoPtr->hwndSelf);
+ SendMessageW (infoPtr->hwndToolTip, TTM_TRACKACTIVATE,
(WPARAM)TRUE, (LPARAM)&ti);
}
return 0;
@@ -1333,32 +1259,29 @@
DOUBLE clickPos;
vertical = (dwStyle & TBS_VERT) ? 1 : 0;
- if (vertical)
- clickPlace=(INT)HIWORD(lParam);
- else
- clickPlace=(INT)LOWORD(lParam);
+ clickPlace = vertical ? yPos : xPos;
- clickPos = TRACKBAR_ConvertPlaceToPosition(infoPtr, clickPlace,
+ clickPos = TRACKBAR_ConvertPlaceToPosition(infoPtr, clickPlace,
vertical);
- prevPos = infoPtr->nPos;
+ prevPos = infoPtr->lPos;
if (clickPos > (int)prevPos)
{ /* similar to VK_NEXT */
- infoPtr->nPos += infoPtr->nPageSize;
- if (infoPtr->nPos > infoPtr->nRangeMax)
- infoPtr->nPos = infoPtr->nRangeMax;
- TRACKBAR_SendNotify (hwnd, TB_PAGEUP);
+ infoPtr->lPos += infoPtr->lPageSize;
+ if (infoPtr->lPos > infoPtr->lRangeMax)
+ infoPtr->lPos = infoPtr->lRangeMax;
+ TRACKBAR_SendNotify (infoPtr, TB_PAGEUP);
}
else
{
- infoPtr->nPos -= infoPtr->nPageSize; /* similar to VK_PRIOR */
- if (infoPtr->nPos < infoPtr->nRangeMin)
- infoPtr->nPos = infoPtr->nRangeMin;
- TRACKBAR_SendNotify (hwnd, TB_PAGEDOWN);
+ infoPtr->lPos -= infoPtr->lPageSize; /* similar to VK_PRIOR */
+ if (infoPtr->lPos < infoPtr->lRangeMin)
+ infoPtr->lPos = infoPtr->lRangeMin;
+ TRACKBAR_SendNotify (infoPtr, TB_PAGEDOWN);
}
- if (prevPos!=infoPtr->nPos) {
+ if (prevPos!=infoPtr->lPos) {
infoPtr->flags |= TB_THUMBPOSCHANGED;
- InvalidateRect (hwnd, NULL, FALSE);
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
}
}
@@ -1367,11 +1290,9 @@
static LRESULT
-TRACKBAR_LButtonUp (HWND hwnd, WPARAM wParam, LPARAM lParam)
+TRACKBAR_LButtonUp (TRACKBAR_INFO *infoPtr, DWORD fwKeys, INT xPos, INT yPos)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- TRACKBAR_SendNotify (hwnd, TB_ENDTRACK);
+ TRACKBAR_SendNotify (infoPtr, TB_ENDTRACK);
if (infoPtr->flags & TB_DRAG_MODE)
{
@@ -1379,115 +1300,109 @@
ReleaseCapture ();
}
- if (GetWindowLongA (hwnd, GWL_STYLE) & TBS_TOOLTIPS) { /* disable tooltip */
- TTTOOLINFOA ti;
+ if (GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE) & TBS_TOOLTIPS) {
+ TTTOOLINFOW ti;
- ti.cbSize = sizeof(TTTOOLINFOA);
+ ti.cbSize = sizeof(TTTOOLINFOW);
ti.uId = 0;
- ti.hwnd = (UINT)hwnd;
+ ti.hwnd = infoPtr->hwndSelf;
infoPtr->flags &= ~TB_SHOW_TOOLTIP;
- SendMessageA (infoPtr->hwndToolTip, TTM_TRACKACTIVATE,
+ SendMessageW (infoPtr->hwndToolTip, TTM_TRACKACTIVATE,
(WPARAM)FALSE, (LPARAM)&ti);
}
- InvalidateRect (hwnd, NULL, FALSE);
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
return 0;
}
static LRESULT
-TRACKBAR_CaptureChanged (HWND hwnd, WPARAM wParam, LPARAM lParam)
+TRACKBAR_CaptureChanged (TRACKBAR_INFO *infoPtr)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
if (infoPtr->flags & TB_DRAGPOSVALID) {
- infoPtr->nPos=infoPtr->dragPos;
- InvalidateRect (hwnd, NULL, FALSE);
+ infoPtr->lPos=infoPtr->dragPos;
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
}
infoPtr->flags &= ~ TB_DRAGPOSVALID;
- TRACKBAR_SendNotify (hwnd, TB_ENDTRACK);
+ TRACKBAR_SendNotify (infoPtr, TB_ENDTRACK);
return 0;
}
static LRESULT
-TRACKBAR_Paint (HWND hwnd, WPARAM wParam)
+TRACKBAR_Paint (TRACKBAR_INFO *infoPtr, HDC hdc)
{
- HDC hdc;
- PAINTSTRUCT ps;
-
- hdc = wParam==0 ? BeginPaint (hwnd, &ps) : (HDC)wParam;
- TRACKBAR_Refresh (hwnd, hdc);
- if(!wParam)
- EndPaint (hwnd, &ps);
+ if (hdc) {
+ TRACKBAR_Refresh(infoPtr, hdc);
+ } else {
+ PAINTSTRUCT ps;
+ hdc = BeginPaint (infoPtr->hwndSelf, &ps);
+ TRACKBAR_Refresh (infoPtr, hdc);
+ EndPaint (infoPtr->hwndSelf, &ps);
+ }
+
return 0;
}
static LRESULT
-TRACKBAR_SetFocus (HWND hwnd, WPARAM wParam, LPARAM lParam)
+TRACKBAR_SetFocus (TRACKBAR_INFO *infoPtr, HWND hwndLoseFocus)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
TRACE("\n");
+
infoPtr->bFocus = TRUE;
- InvalidateRect (hwnd, NULL, FALSE);
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
return 0;
}
static LRESULT
-TRACKBAR_Size (HWND hwnd, WPARAM wParam, LPARAM lParam)
+TRACKBAR_Size (TRACKBAR_INFO *infoPtr, DWORD fwSizeType, INT nWidth, INT nHeight)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
-
- TRACKBAR_CalcChannel (hwnd, infoPtr);
- TRACKBAR_AlignBuddies (hwnd, infoPtr);
+ TRACKBAR_CalcChannel (infoPtr);
+ TRACKBAR_AlignBuddies (infoPtr);
return 0;
}
static BOOL
-TRACKBAR_SendNotify (HWND hwnd, UINT code)
+TRACKBAR_SendNotify (TRACKBAR_INFO *infoPtr, UINT code)
{
- TRACE("%x\n",code);
-
- if (GetWindowLongA (hwnd, GWL_STYLE) & TBS_VERT)
- return (BOOL) SendMessageA (GetParent (hwnd),
- WM_VSCROLL, (WPARAM)code, (LPARAM)hwnd);
+ BOOL bVert = GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE) & TBS_VERT;
+
+ TRACE("%x\n", code);
- return (BOOL) SendMessageA (GetParent (hwnd),
- WM_HSCROLL, (WPARAM)code, (LPARAM)hwnd);
+ return (BOOL) SendMessageW (GetParent (infoPtr->hwndSelf),
+ bVert ? WM_VSCROLL : WM_HSCROLL,
+ (WPARAM)code, (LPARAM)infoPtr->hwndSelf);
}
static LRESULT
-TRACKBAR_MouseMove (HWND hwnd, WPARAM wParam, LPARAM lParam)
+TRACKBAR_MouseMove (TRACKBAR_INFO *infoPtr, DWORD fwKeys, INT xPos, INT yPos)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
- DWORD dwStyle = GetWindowLongA (hwnd, GWL_STYLE);
- SHORT clickPlace;
+ DWORD dwStyle = GetWindowLongW (infoPtr->hwndSelf, GWL_STYLE);
+ INT clickPlace;
DOUBLE dragPos;
- char buf[80];
- TRACE("%x\n",wParam);
+ TRACE("(x=%d. y=%d)\n", xPos, yPos);
if (dwStyle & TBS_VERT)
- clickPlace=(SHORT)HIWORD(lParam);
+ clickPlace = yPos;
else
- clickPlace=(SHORT)LOWORD(lParam);
+ clickPlace = xPos;
if (!(infoPtr->flags & TB_DRAG_MODE))
return TRUE;
- SetCapture (hwnd);
+ SetCapture (infoPtr->hwndSelf);
dragPos = TRACKBAR_ConvertPlaceToPosition (infoPtr, clickPlace,
dwStyle & TBS_VERT);
if (dragPos > ((INT)dragPos) + 0.5)
@@ -1496,103 +1411,102 @@
infoPtr->dragPos = dragPos;
infoPtr->flags |= TB_DRAGPOSVALID;
- TRACKBAR_SendNotify (hwnd, TB_THUMBTRACK | (infoPtr->nPos<<16));
+ TRACKBAR_SendNotify (infoPtr, TB_THUMBTRACK | (infoPtr->lPos<<16));
if (infoPtr->flags & TB_SHOW_TOOLTIP) {
POINT pt;
- TTTOOLINFOA ti;
+ TTTOOLINFOW ti;
+ WCHAR buf[80], fmt[] = { '%', 'l', 'd', 0 };
- ti.cbSize = sizeof(TTTOOLINFOA);
- ti.hwnd = hwnd;
- ti.uId = 0;
- ti.hinst=0;
- sprintf (buf,"%d",infoPtr->nPos);
- ti.lpszText = (LPSTR) buf;
+ ti.cbSize = sizeof(TTTOOLINFOW);
+ ti.hwnd = infoPtr->hwndSelf;
+ ti.uId = 0;
+ ti.hinst = 0;
+ wsprintfW (buf, fmt, infoPtr->lPos);
+ ti.lpszText = buf;
GetCursorPos (&pt);
if (dwStyle & TBS_VERT) {
- SendMessageA (infoPtr->hwndToolTip, TTM_TRACKPOSITION,
+ SendMessageW (infoPtr->hwndToolTip, TTM_TRACKPOSITION,
0, (LPARAM)MAKELPARAM(pt.x+5, pt.y+15));
} else {
- SendMessageA (infoPtr->hwndToolTip, TTM_TRACKPOSITION,
+ SendMessageW (infoPtr->hwndToolTip, TTM_TRACKPOSITION,
0, (LPARAM)MAKELPARAM(pt.x+15, pt.y+5));
}
- SendMessageA (infoPtr->hwndToolTip, TTM_UPDATETIPTEXTA,
+ SendMessageW (infoPtr->hwndToolTip, TTM_UPDATETIPTEXTW,
0, (LPARAM)&ti);
}
- InvalidateRect (hwnd, NULL, FALSE);
- UpdateWindow (hwnd);
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
+ UpdateWindow (infoPtr->hwndSelf);
return TRUE;
}
-static LRESULT
-TRACKBAR_KeyDown (HWND hwnd, WPARAM wParam, LPARAM lParam)
+static BOOL
+TRACKBAR_KeyDown (TRACKBAR_INFO *infoPtr, INT nVirtKey, DWORD lKeyData)
{
- TRACKBAR_INFO *infoPtr = TRACKBAR_GetInfoPtr (hwnd);
- INT pos;
+ LONG pos = infoPtr->lPos;
- TRACE("%x\n",wParam);
+ TRACE("%x\n", nVirtKey);
- pos=infoPtr->nPos;
- switch (wParam) {
+ switch (nVirtKey) {
case VK_LEFT:
case VK_UP:
- if (infoPtr->nPos == infoPtr->nRangeMin) return FALSE;
- infoPtr->nPos -= infoPtr->nLineSize;
- if (infoPtr->nPos < infoPtr->nRangeMin)
- infoPtr->nPos = infoPtr->nRangeMin;
- TRACKBAR_SendNotify (hwnd, TB_LINEUP);
+ if (infoPtr->lPos == infoPtr->lRangeMin) return FALSE;
+ infoPtr->lPos -= infoPtr->lLineSize;
+ if (infoPtr->lPos < infoPtr->lRangeMin)
+ infoPtr->lPos = infoPtr->lRangeMin;
+ TRACKBAR_SendNotify (infoPtr, TB_LINEUP);
break;
case VK_RIGHT:
case VK_DOWN:
- if (infoPtr->nPos == infoPtr->nRangeMax) return FALSE;
- infoPtr->nPos += infoPtr->nLineSize;
- if (infoPtr->nPos > infoPtr->nRangeMax)
- infoPtr->nPos = infoPtr->nRangeMax;
- TRACKBAR_SendNotify (hwnd, TB_LINEDOWN);
+ if (infoPtr->lPos == infoPtr->lRangeMax) return FALSE;
+ infoPtr->lPos += infoPtr->lLineSize;
+ if (infoPtr->lPos > infoPtr->lRangeMax)
+ infoPtr->lPos = infoPtr->lRangeMax;
+ TRACKBAR_SendNotify (infoPtr, TB_LINEDOWN);
break;
case VK_NEXT:
- if (infoPtr->nPos == infoPtr->nRangeMax) return FALSE;
- infoPtr->nPos += infoPtr->nPageSize;
- if (infoPtr->nPos > infoPtr->nRangeMax)
- infoPtr->nPos = infoPtr->nRangeMax;
- TRACKBAR_SendNotify (hwnd, TB_PAGEUP);
+ if (infoPtr->lPos == infoPtr->lRangeMax) return FALSE;
+ infoPtr->lPos += infoPtr->lPageSize;
+ if (infoPtr->lPos > infoPtr->lRangeMax)
+ infoPtr->lPos = infoPtr->lRangeMax;
+ TRACKBAR_SendNotify (infoPtr, TB_PAGEUP);
break;
case VK_PRIOR:
- if (infoPtr->nPos == infoPtr->nRangeMin) return FALSE;
- infoPtr->nPos -= infoPtr->nPageSize;
- if (infoPtr->nPos < infoPtr->nRangeMin)
- infoPtr->nPos = infoPtr->nRangeMin;
- TRACKBAR_SendNotify (hwnd, TB_PAGEDOWN);
+ if (infoPtr->lPos == infoPtr->lRangeMin) return FALSE;
+ infoPtr->lPos -= infoPtr->lPageSize;
+ if (infoPtr->lPos < infoPtr->lRangeMin)
+ infoPtr->lPos = infoPtr->lRangeMin;
+ TRACKBAR_SendNotify (infoPtr, TB_PAGEDOWN);
break;
case VK_HOME:
- if (infoPtr->nPos == infoPtr->nRangeMin) return FALSE;
- infoPtr->nPos = infoPtr->nRangeMin;
- TRACKBAR_SendNotify (hwnd, TB_TOP);
+ if (infoPtr->lPos == infoPtr->lRangeMin) return FALSE;
+ infoPtr->lPos = infoPtr->lRangeMin;
+ TRACKBAR_SendNotify (infoPtr, TB_TOP);
break;
case VK_END:
- if (infoPtr->nPos == infoPtr->nRangeMax) return FALSE;
- infoPtr->nPos = infoPtr->nRangeMax;
- TRACKBAR_SendNotify (hwnd, TB_BOTTOM);
+ if (infoPtr->lPos == infoPtr->lRangeMax) return FALSE;
+ infoPtr->lPos = infoPtr->lRangeMax;
+ TRACKBAR_SendNotify (infoPtr, TB_BOTTOM);
break;
}
- if (pos!=infoPtr->nPos) {
+ if (pos != infoPtr->lPos) {
infoPtr->flags |=TB_THUMBPOSCHANGED;
- InvalidateRect (hwnd, NULL, FALSE);
+ InvalidateRect (infoPtr->hwndSelf, NULL, FALSE);
}
return TRUE;
}
-static LRESULT
-TRACKBAR_KeyUp (HWND hwnd, WPARAM wParam)
+static BOOL inline
+TRACKBAR_KeyUp (TRACKBAR_INFO *infoPtr, INT nVirtKey, DWORD lKeyData)
{
- switch (wParam) {
+ switch (nVirtKey) {
case VK_LEFT:
case VK_UP:
case VK_RIGHT:
@@ -1601,7 +1515,7 @@
case VK_PRIOR:
case VK_HOME:
case VK_END:
- TRACKBAR_SendNotify (hwnd, TB_ENDTRACK);
+ TRACKBAR_SendNotify (infoPtr, TB_ENDTRACK);
}
return TRUE;
}
@@ -1610,123 +1524,129 @@
static LRESULT WINAPI
TRACKBAR_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
+ TRACKBAR_INFO *infoPtr = (TRACKBAR_INFO *)GetWindowLongW (hwnd, 0);
+
TRACE("hwnd=%x msg=%x wparam=%x lparam=%lx\n", hwnd, uMsg, wParam, lParam);
- if (!TRACKBAR_GetInfoPtr (hwnd) && (uMsg != WM_CREATE))
- return DefWindowProcA (hwnd, uMsg, wParam, lParam);
+
+ if (!infoPtr && (uMsg != WM_CREATE))
+ return DefWindowProcW (hwnd, uMsg, wParam, lParam);
+
switch (uMsg)
{
case TBM_CLEARSEL:
- return TRACKBAR_ClearSel (hwnd, wParam, lParam);
+ return TRACKBAR_ClearSel (infoPtr, (BOOL)wParam);
case TBM_CLEARTICS:
- return TRACKBAR_ClearTics (hwnd, wParam, lParam);
+ return TRACKBAR_ClearTics (infoPtr, (BOOL)wParam);
case TBM_GETBUDDY:
- return TRACKBAR_GetBuddy (hwnd, wParam, lParam);
+ return (LRESULT)TRACKBAR_GetBuddy (infoPtr, (BOOL)wParam);
case TBM_GETCHANNELRECT:
- return TRACKBAR_GetChannelRect (hwnd, wParam, lParam);
+ return TRACKBAR_GetChannelRect (infoPtr, (LPRECT)lParam);
case TBM_GETLINESIZE:
- return TRACKBAR_GetLineSize (hwnd, wParam, lParam);
+ return TRACKBAR_GetLineSize (infoPtr);
case TBM_GETNUMTICS:
- return TRACKBAR_GetNumTics (hwnd, wParam, lParam);
+ return TRACKBAR_GetNumTics (infoPtr);
case TBM_GETPAGESIZE:
- return TRACKBAR_GetPageSize (hwnd, wParam, lParam);
+ return TRACKBAR_GetPageSize (infoPtr);
case TBM_GETPOS:
- return TRACKBAR_GetPos (hwnd, wParam, lParam);
+ return TRACKBAR_GetPos (infoPtr);
case TBM_GETPTICS:
- return TRACKBAR_GetPTics (hwnd);
+ return (LRESULT)TRACKBAR_GetPTics (infoPtr);
case TBM_GETRANGEMAX:
- return TRACKBAR_GetRangeMax (hwnd, wParam, lParam);
+ return TRACKBAR_GetRangeMax (infoPtr);
case TBM_GETRANGEMIN:
- return TRACKBAR_GetRangeMin (hwnd, wParam, lParam);
+ return TRACKBAR_GetRangeMin (infoPtr);
case TBM_GETSELEND:
- return TRACKBAR_GetSelEnd (hwnd, wParam, lParam);
+ return TRACKBAR_GetSelEnd (infoPtr);
case TBM_GETSELSTART:
- return TRACKBAR_GetSelStart (hwnd, wParam, lParam);
+ return TRACKBAR_GetSelStart (infoPtr);
case TBM_GETTHUMBLENGTH:
- return TRACKBAR_GetThumbLength (hwnd, wParam, lParam);
+ return TRACKBAR_GetThumbLength (infoPtr);
case TBM_GETTHUMBRECT:
- return TRACKBAR_GetThumbRect (hwnd, wParam, lParam);
+ return TRACKBAR_GetThumbRect (infoPtr, (LPRECT)lParam);
case TBM_GETTIC:
- return TRACKBAR_GetTic (hwnd, wParam, lParam);
+ return TRACKBAR_GetTic (infoPtr, (INT)wParam);
case TBM_GETTICPOS:
- return TRACKBAR_GetTicPos (hwnd, wParam, lParam);
+ return TRACKBAR_GetTicPos (infoPtr, (INT)wParam);
case TBM_GETTOOLTIPS:
- return TRACKBAR_GetToolTips (hwnd, wParam, lParam);
+ return (LRESULT)TRACKBAR_GetToolTips (infoPtr);
-/* case TBM_GETUNICODEFORMAT: */
+ case TBM_GETUNICODEFORMAT:
+ return TRACKBAR_GetUnicodeFormat(infoPtr);
case TBM_SETBUDDY:
- return TRACKBAR_SetBuddy (hwnd, wParam, lParam);
+ return (LRESULT) TRACKBAR_SetBuddy(infoPtr, (BOOL)wParam, (HWND)lParam);
case TBM_SETLINESIZE:
- return TRACKBAR_SetLineSize (hwnd, wParam, lParam);
+ return TRACKBAR_SetLineSize (infoPtr, (LONG)lParam);
case TBM_SETPAGESIZE:
- return TRACKBAR_SetPageSize (hwnd, wParam, lParam);
+ return TRACKBAR_SetPageSize (infoPtr, (LONG)lParam);
case TBM_SETPOS:
- return TRACKBAR_SetPos (hwnd, wParam, lParam);
+ return TRACKBAR_SetPos (infoPtr, (BOOL)wParam, (LONG)lParam);
case TBM_SETRANGE:
- return TRACKBAR_SetRange (hwnd, wParam, lParam);
+ return TRACKBAR_SetRange (infoPtr, (BOOL)wParam, (LONG)lParam);
case TBM_SETRANGEMAX:
- return TRACKBAR_SetRangeMax (hwnd, wParam, lParam);
+ return TRACKBAR_SetRangeMax (infoPtr, (BOOL)wParam, (LONG)lParam);
case TBM_SETRANGEMIN:
- return TRACKBAR_SetRangeMin (hwnd, wParam, lParam);
+ return TRACKBAR_SetRangeMin (infoPtr, (BOOL)wParam, (LONG)lParam);
case TBM_SETSEL:
- return TRACKBAR_SetSel (hwnd, wParam, lParam);
+ return TRACKBAR_SetSel (infoPtr, (BOOL)wParam, (LONG)lParam);
case TBM_SETSELEND:
- return TRACKBAR_SetSelEnd (hwnd, wParam, lParam);
+ return TRACKBAR_SetSelEnd (infoPtr, (BOOL)wParam, (LONG)lParam);
case TBM_SETSELSTART:
- return TRACKBAR_SetSelStart (hwnd, wParam, lParam);
+ return TRACKBAR_SetSelStart (infoPtr, (BOOL)wParam, (LONG)lParam);
case TBM_SETTHUMBLENGTH:
- return TRACKBAR_SetThumbLength (hwnd, wParam, lParam);
+ return TRACKBAR_SetThumbLength (infoPtr, (UINT)wParam);
case TBM_SETTIC:
- return TRACKBAR_SetTic (hwnd, wParam, lParam);
+ return TRACKBAR_SetTic (infoPtr, (LONG)lParam);
case TBM_SETTICFREQ:
- return TRACKBAR_SetTicFreq (hwnd, wParam);
+ return TRACKBAR_SetTicFreq (infoPtr, (WORD)wParam);
case TBM_SETTIPSIDE:
- return TRACKBAR_SetTipSide (hwnd, wParam, lParam);
+ return TRACKBAR_SetTipSide (infoPtr, (INT)wParam);
case TBM_SETTOOLTIPS:
- return TRACKBAR_SetToolTips (hwnd, wParam, lParam);
+ return TRACKBAR_SetToolTips (infoPtr, (HWND)wParam);
-/* case TBM_SETUNICODEFORMAT: */
+ case TBM_SETUNICODEFORMAT:
+ return TRACKBAR_SetUnicodeFormat (infoPtr, (BOOL)wParam);
case WM_CAPTURECHANGED:
- return TRACKBAR_CaptureChanged (hwnd, wParam, lParam);
+ return TRACKBAR_CaptureChanged (infoPtr);
case WM_CREATE:
- return TRACKBAR_Create (hwnd, wParam, lParam);
+ return TRACKBAR_Create (hwnd, (LPCREATESTRUCTW)lParam);
case WM_DESTROY:
- return TRACKBAR_Destroy (hwnd, wParam, lParam);
+ return TRACKBAR_Destroy (infoPtr);
/* case WM_ENABLE: */
@@ -1737,65 +1657,64 @@
return DLGC_WANTARROWS;
case WM_KEYDOWN:
- return TRACKBAR_KeyDown (hwnd, wParam, lParam);
+ return TRACKBAR_KeyDown (infoPtr, (INT)wParam, (DWORD)lParam);
case WM_KEYUP:
- return TRACKBAR_KeyUp (hwnd, wParam);
+ return TRACKBAR_KeyUp (infoPtr, (INT)wParam, (DWORD)lParam);
case WM_KILLFOCUS:
- return TRACKBAR_KillFocus (hwnd, wParam, lParam);
+ return TRACKBAR_KillFocus (infoPtr, (HWND)wParam);
case WM_LBUTTONDOWN:
- return TRACKBAR_LButtonDown (hwnd, wParam, lParam);
+ return TRACKBAR_LButtonDown (infoPtr, wParam, LOWORD(lParam), HIWORD(lParam));
case WM_LBUTTONUP:
- return TRACKBAR_LButtonUp (hwnd, wParam, lParam);
+ return TRACKBAR_LButtonUp (infoPtr, wParam, LOWORD(lParam), HIWORD(lParam));
case WM_MOUSEMOVE:
- return TRACKBAR_MouseMove (hwnd, wParam, lParam);
+ return TRACKBAR_MouseMove (infoPtr, wParam, LOWORD(lParam), HIWORD(lParam));
case WM_PAINT:
- return TRACKBAR_Paint (hwnd, wParam);
+ return TRACKBAR_Paint (infoPtr, (HDC)wParam);
case WM_SETFOCUS:
- return TRACKBAR_SetFocus (hwnd, wParam, lParam);
+ return TRACKBAR_SetFocus (infoPtr, (HWND)wParam);
case WM_SIZE:
- return TRACKBAR_Size (hwnd, wParam, lParam);
+ return TRACKBAR_Size (infoPtr, wParam, LOWORD(lParam), HIWORD(lParam));
+/* case WM_TIMER: */
+
case WM_WININICHANGE:
- return TRACKBAR_InitializeThumb (hwnd);
+ return TRACKBAR_InitializeThumb (infoPtr);
default:
if ((uMsg >= WM_USER) && (uMsg < WM_APP))
- ERR("unknown msg %04x wp=%08x lp=%08lx\n",
- uMsg, wParam, lParam);
- return DefWindowProcA (hwnd, uMsg, wParam, lParam);
+ ERR("unknown msg %04x wp=%08x lp=%08lx\n", uMsg, wParam, lParam);
+ return DefWindowProcW (hwnd, uMsg, wParam, lParam);
}
return 0;
}
-VOID
-TRACKBAR_Register (void)
+void TRACKBAR_Register (void)
{
- WNDCLASSA wndClass;
+ WNDCLASSW wndClass;
- ZeroMemory (&wndClass, sizeof(WNDCLASSA));
+ ZeroMemory (&wndClass, sizeof(WNDCLASSW));
wndClass.style = CS_GLOBALCLASS;
wndClass.lpfnWndProc = (WNDPROC)TRACKBAR_WindowProc;
wndClass.cbClsExtra = 0;
wndClass.cbWndExtra = sizeof(TRACKBAR_INFO *);
- wndClass.hCursor = LoadCursorA (0, IDC_ARROWA);
+ wndClass.hCursor = LoadCursorW (0, IDC_ARROWW);
wndClass.hbrBackground = (HBRUSH)(COLOR_3DFACE + 1);
- wndClass.lpszClassName = TRACKBAR_CLASSA;
+ wndClass.lpszClassName = TRACKBAR_CLASSW;
- RegisterClassA (&wndClass);
+ RegisterClassW (&wndClass);
}
-VOID
-TRACKBAR_Unregister (void)
+void TRACKBAR_Unregister (void)
{
- UnregisterClassA (TRACKBAR_CLASSA, (HINSTANCE)NULL);
+ UnregisterClassW (TRACKBAR_CLASSW, (HINSTANCE)NULL);
}
More information about the wine-patches
mailing list