Tab unicodification.
This commit is contained in:
parent
30a66a051c
commit
9da93dd879
@ -21,7 +21,6 @@
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
* TODO:
|
||||
* Unicode support (under construction)
|
||||
*
|
||||
* Styles:
|
||||
* TCIF_RTLREADING
|
||||
@ -144,7 +143,7 @@ TAB_SendSimpleNotify (const TAB_INFO *infoPtr, UINT code)
|
||||
(WPARAM) nmhdr.idFrom, (LPARAM) &nmhdr);
|
||||
}
|
||||
|
||||
static VOID
|
||||
static void
|
||||
TAB_RelayEvent (HWND hwndTip, HWND hwndMsg, UINT uMsg,
|
||||
WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
@ -162,25 +161,13 @@ TAB_RelayEvent (HWND hwndTip, HWND hwndMsg, UINT uMsg,
|
||||
}
|
||||
|
||||
static void
|
||||
TAB_DumpItemExternalA(TCITEMA *pti, UINT iItem)
|
||||
{
|
||||
if (TRACE_ON(tab)) {
|
||||
TRACE("external tab %d, mask=0x%08x, dwState=0x%08x, dwStateMask=0x%08x, cchTextMax=0x%08x\n",
|
||||
iItem, pti->mask, pti->dwState, pti->dwStateMask, pti->cchTextMax);
|
||||
TRACE("external tab %d, iImage=%d, lParam=0x%08lx, pszTextA=%s\n",
|
||||
iItem, pti->iImage, pti->lParam, debugstr_a(pti->pszText));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
TAB_DumpItemExternalW(TCITEMW *pti, UINT iItem)
|
||||
TAB_DumpItemExternalT(TCITEMW *pti, UINT iItem, BOOL isW)
|
||||
{
|
||||
if (TRACE_ON(tab)) {
|
||||
TRACE("external tab %d, mask=0x%08x, dwState=0x%08lx, dwStateMask=0x%08lx, cchTextMax=0x%08x\n",
|
||||
iItem, pti->mask, pti->dwState, pti->dwStateMask, pti->cchTextMax);
|
||||
TRACE("external tab %d, iImage=%d, lParam=0x%08lx, pszTextW=%s\n",
|
||||
iItem, pti->iImage, pti->lParam, debugstr_w(pti->pszText));
|
||||
iItem, pti->iImage, pti->lParam, isW ? debugstr_w(pti->pszText) : debugstr_a((LPSTR)pti->pszText));
|
||||
}
|
||||
}
|
||||
|
||||
@ -246,7 +233,7 @@ static LRESULT TAB_SetCurFocus (TAB_INFO *infoPtr, INT iItem)
|
||||
{
|
||||
if (iItem < 0 || iItem >= infoPtr->uNumItem) return 0;
|
||||
|
||||
if (GetWindowLongA(infoPtr->hwnd, GWL_STYLE) & TCS_BUTTONS) {
|
||||
if (GetWindowLongW(infoPtr->hwnd, GWL_STYLE) & TCS_BUTTONS) {
|
||||
FIXME("Should set input focus\n");
|
||||
} else {
|
||||
int oldFocus = infoPtr->uFocus;
|
||||
@ -302,7 +289,7 @@ static BOOL TAB_InternalGetItemRect(
|
||||
RECT* selectedRect)
|
||||
{
|
||||
RECT tmpItemRect,clientRect;
|
||||
LONG lStyle = GetWindowLongA(infoPtr->hwnd, GWL_STYLE);
|
||||
LONG lStyle = GetWindowLongW(infoPtr->hwnd, GWL_STYLE);
|
||||
|
||||
/* Perform a sanity check and a trivial visibility check. */
|
||||
if ( (infoPtr->uNumItem <= 0) ||
|
||||
@ -472,7 +459,7 @@ static LRESULT TAB_KeyUp(TAB_INFO* infoPtr, WPARAM keyCode)
|
||||
* This method is called whenever the focus goes in or out of this control
|
||||
* it is used to update the visual state of the control.
|
||||
*/
|
||||
static VOID TAB_FocusChanging(const TAB_INFO *infoPtr)
|
||||
static void TAB_FocusChanging(const TAB_INFO *infoPtr)
|
||||
{
|
||||
RECT selectedRect;
|
||||
BOOL isVisible;
|
||||
@ -566,7 +553,7 @@ TAB_LButtonDown (TAB_INFO *infoPtr, WPARAM wParam, LPARAM lParam)
|
||||
TAB_RelayEvent (infoPtr->hwndToolTip, infoPtr->hwnd,
|
||||
WM_LBUTTONDOWN, wParam, lParam);
|
||||
|
||||
if (GetWindowLongA(infoPtr->hwnd, GWL_STYLE) & TCS_FOCUSONBUTTONDOWN ) {
|
||||
if (GetWindowLongW(infoPtr->hwnd, GWL_STYLE) & TCS_FOCUSONBUTTONDOWN ) {
|
||||
SetFocus (infoPtr->hwnd);
|
||||
}
|
||||
|
||||
@ -648,7 +635,7 @@ TAB_DrawLoneItemInterior(TAB_INFO* infoPtr, int iItem)
|
||||
* we can check if the mouse has left our window. If so, we un-highlight
|
||||
* the hot-tracked tab.
|
||||
*/
|
||||
static VOID CALLBACK
|
||||
static void CALLBACK
|
||||
TAB_HotTrackTimerProc
|
||||
(
|
||||
HWND hwnd, /* handle of window for timer messages */
|
||||
@ -717,7 +704,7 @@ TAB_RecalcHotTrack
|
||||
if (out_redrawEnter != NULL)
|
||||
*out_redrawEnter = -1;
|
||||
|
||||
if (GetWindowLongA(infoPtr->hwnd, GWL_STYLE) & TCS_HOTTRACK)
|
||||
if (GetWindowLongW(infoPtr->hwnd, GWL_STYLE) & TCS_HOTTRACK)
|
||||
{
|
||||
POINT pt;
|
||||
UINT flags;
|
||||
@ -814,7 +801,7 @@ static LRESULT TAB_AdjustRect(
|
||||
WPARAM fLarger,
|
||||
LPRECT prc)
|
||||
{
|
||||
DWORD lStyle = GetWindowLongA(infoPtr->hwnd, GWL_STYLE);
|
||||
DWORD lStyle = GetWindowLongW(infoPtr->hwnd, GWL_STYLE);
|
||||
LONG *iRightBottom, *iLeftTop;
|
||||
|
||||
TRACE ("hwnd=%p fLarger=%d (%ld,%ld)-(%ld,%ld)\n", infoPtr->hwnd, fLarger, prc->left, prc->top, prc->right, prc->bottom);
|
||||
@ -903,8 +890,10 @@ static void TAB_SetupScrolling(
|
||||
TAB_INFO* infoPtr,
|
||||
const RECT* clientRect)
|
||||
{
|
||||
static const WCHAR msctls_updown32W[] = { 'm','s','c','t','l','s','_','u','p','d','o','w','n','3','2',0 };
|
||||
static const WCHAR emptyW[] = { 0 };
|
||||
INT maxRange = 0;
|
||||
DWORD lStyle = GetWindowLongA(hwnd, GWL_STYLE);
|
||||
DWORD lStyle = GetWindowLongW(hwnd, GWL_STYLE);
|
||||
|
||||
if (infoPtr->needsScrolling)
|
||||
{
|
||||
@ -953,16 +942,12 @@ static void TAB_SetupScrolling(
|
||||
*/
|
||||
if (infoPtr->hwndUpDown==0)
|
||||
{
|
||||
infoPtr->hwndUpDown = CreateWindowA("msctls_updown32",
|
||||
"",
|
||||
infoPtr->hwndUpDown = CreateWindowW(msctls_updown32W, emptyW,
|
||||
WS_VISIBLE | WS_CHILD | UDS_HORZ,
|
||||
controlPos.left, controlPos.top,
|
||||
controlPos.right - controlPos.left,
|
||||
controlPos.bottom - controlPos.top,
|
||||
hwnd,
|
||||
NULL,
|
||||
NULL,
|
||||
NULL);
|
||||
hwnd, NULL, NULL, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1016,8 +1001,8 @@ static void TAB_SetupScrolling(
|
||||
*/
|
||||
static void TAB_SetItemBounds (TAB_INFO *infoPtr)
|
||||
{
|
||||
LONG lStyle = GetWindowLongA(infoPtr->hwnd, GWL_STYLE);
|
||||
TEXTMETRICA fontMetrics;
|
||||
LONG lStyle = GetWindowLongW(infoPtr->hwnd, GWL_STYLE);
|
||||
TEXTMETRICW fontMetrics;
|
||||
UINT curItem;
|
||||
INT curItemLeftPos;
|
||||
INT curItemRowCount;
|
||||
@ -1069,7 +1054,7 @@ static void TAB_SetItemBounds (TAB_INFO *infoPtr)
|
||||
int icon_height = 0;
|
||||
|
||||
/* Use the current font to determine the height of a tab. */
|
||||
GetTextMetricsA(hdc, &fontMetrics);
|
||||
GetTextMetricsW(hdc, &fontMetrics);
|
||||
|
||||
/* Get the icon height */
|
||||
if (infoPtr->himl)
|
||||
@ -1374,7 +1359,7 @@ TAB_EraseTabInterior
|
||||
RECT* drawRect
|
||||
)
|
||||
{
|
||||
LONG lStyle = GetWindowLongA(infoPtr->hwnd, GWL_STYLE);
|
||||
LONG lStyle = GetWindowLongW(infoPtr->hwnd, GWL_STYLE);
|
||||
HBRUSH hbr = CreateSolidBrush (comctl32_color.clrBtnFace);
|
||||
BOOL deleteBrush = TRUE;
|
||||
RECT rTemp = *drawRect;
|
||||
@ -1441,7 +1426,7 @@ TAB_DrawItemInterior
|
||||
RECT* drawRect
|
||||
)
|
||||
{
|
||||
LONG lStyle = GetWindowLongA(infoPtr->hwnd, GWL_STYLE);
|
||||
LONG lStyle = GetWindowLongW(infoPtr->hwnd, GWL_STYLE);
|
||||
|
||||
RECT localRect;
|
||||
|
||||
@ -1757,7 +1742,8 @@ TAB_DrawItemInterior
|
||||
/* Draw the text */
|
||||
if(lStyle & TCS_VERTICAL) /* if we are vertical rotate the text and each character */
|
||||
{
|
||||
LOGFONTA logfont;
|
||||
static const WCHAR ArialW[] = { 'A','r','i','a','l',0 };
|
||||
LOGFONTW logfont;
|
||||
HFONT hFont = 0;
|
||||
INT nEscapement = 900;
|
||||
INT nOrientation = 900;
|
||||
@ -1770,13 +1756,13 @@ TAB_DrawItemInterior
|
||||
|
||||
/* to get a font with the escapement and orientation we are looking for, we need to */
|
||||
/* call CreateFontIndirectA, which requires us to set the values of the logfont we pass in */
|
||||
if (!GetObjectA((infoPtr->hFont) ?
|
||||
if (!GetObjectW((infoPtr->hFont) ?
|
||||
infoPtr->hFont : GetStockObject(SYSTEM_FONT),
|
||||
sizeof(LOGFONTA),&logfont))
|
||||
sizeof(LOGFONTW),&logfont))
|
||||
{
|
||||
INT iPointSize = 9;
|
||||
|
||||
lstrcpyA(logfont.lfFaceName, "Arial");
|
||||
lstrcpyW(logfont.lfFaceName, ArialW);
|
||||
logfont.lfHeight = -MulDiv(iPointSize, GetDeviceCaps(hdc, LOGPIXELSY),
|
||||
72);
|
||||
logfont.lfWeight = FW_NORMAL;
|
||||
@ -1787,7 +1773,7 @@ TAB_DrawItemInterior
|
||||
|
||||
logfont.lfEscapement = nEscapement;
|
||||
logfont.lfOrientation = nOrientation;
|
||||
hFont = CreateFontIndirectA(&logfont);
|
||||
hFont = CreateFontIndirectW(&logfont);
|
||||
SelectObject(hdc, hFont);
|
||||
|
||||
if (item->pszText)
|
||||
@ -1845,7 +1831,7 @@ static void TAB_DrawItem(
|
||||
HDC hdc,
|
||||
INT iItem)
|
||||
{
|
||||
LONG lStyle = GetWindowLongA(infoPtr->hwnd, GWL_STYLE);
|
||||
LONG lStyle = GetWindowLongW(infoPtr->hwnd, GWL_STYLE);
|
||||
RECT itemRect;
|
||||
RECT selectedRect;
|
||||
BOOL isVisible;
|
||||
@ -1957,7 +1943,7 @@ static void TAB_DrawItem(
|
||||
|
||||
/* Clear interior */
|
||||
SetBkColor(hdc, bkgnd);
|
||||
ExtTextOutA(hdc, 0, 0, 2, &fillRect, NULL, 0, 0);
|
||||
ExtTextOutW(hdc, 0, 0, 2, &fillRect, NULL, 0, 0);
|
||||
|
||||
/* Draw rectangular edge around tab */
|
||||
DrawEdge(hdc, &r, EDGE_RAISED, BF_SOFT|BF_RIGHT|BF_TOP|BF_BOTTOM);
|
||||
@ -1968,7 +1954,7 @@ static void TAB_DrawItem(
|
||||
r1.top = r.top;
|
||||
r1.right = r.right;
|
||||
r1.bottom = r1.top + ROUND_CORNER_SIZE;
|
||||
ExtTextOutA(hdc, 0, 0, 2, &r1, NULL, 0, 0);
|
||||
ExtTextOutW(hdc, 0, 0, 2, &r1, NULL, 0, 0);
|
||||
r1.right--;
|
||||
DrawEdge(hdc, &r1, EDGE_RAISED, BF_SOFT|BF_DIAGONAL_ENDTOPLEFT);
|
||||
|
||||
@ -1977,7 +1963,7 @@ static void TAB_DrawItem(
|
||||
r1.bottom = r.bottom;
|
||||
r1.right = r.right;
|
||||
r1.top = r1.bottom - ROUND_CORNER_SIZE;
|
||||
ExtTextOutA(hdc, 0, 0, 2, &r1, NULL, 0, 0);
|
||||
ExtTextOutW(hdc, 0, 0, 2, &r1, NULL, 0, 0);
|
||||
r1.right--;
|
||||
DrawEdge(hdc, &r1, EDGE_RAISED, BF_SOFT|BF_DIAGONAL_ENDBOTTOMLEFT);
|
||||
|
||||
@ -1998,7 +1984,7 @@ static void TAB_DrawItem(
|
||||
|
||||
/* Clear interior */
|
||||
SetBkColor(hdc, bkgnd);
|
||||
ExtTextOutA(hdc, 0, 0, 2, &fillRect, NULL, 0, 0);
|
||||
ExtTextOutW(hdc, 0, 0, 2, &fillRect, NULL, 0, 0);
|
||||
|
||||
/* Draw rectangular edge around tab */
|
||||
DrawEdge(hdc, &r, EDGE_RAISED, BF_SOFT|BF_LEFT|BF_TOP|BF_BOTTOM);
|
||||
@ -2009,7 +1995,7 @@ static void TAB_DrawItem(
|
||||
r1.top = r.top;
|
||||
r1.right = r1.left + ROUND_CORNER_SIZE + 1;
|
||||
r1.bottom = r1.top + ROUND_CORNER_SIZE;
|
||||
ExtTextOutA(hdc, 0, 0, 2, &r1, NULL, 0, 0);
|
||||
ExtTextOutW(hdc, 0, 0, 2, &r1, NULL, 0, 0);
|
||||
r1.left++;
|
||||
DrawEdge(hdc, &r1, EDGE_RAISED, BF_SOFT|BF_DIAGONAL_ENDTOPRIGHT);
|
||||
|
||||
@ -2018,7 +2004,7 @@ static void TAB_DrawItem(
|
||||
r1.bottom = r.bottom;
|
||||
r1.right = r1.left + ROUND_CORNER_SIZE + 1;
|
||||
r1.top = r1.bottom - ROUND_CORNER_SIZE;
|
||||
ExtTextOutA(hdc, 0, 0, 2, &r1, NULL, 0, 0);
|
||||
ExtTextOutW(hdc, 0, 0, 2, &r1, NULL, 0, 0);
|
||||
r1.left++;
|
||||
DrawEdge(hdc, &r1, EDGE_SUNKEN, BF_DIAGONAL_ENDTOPLEFT);
|
||||
}
|
||||
@ -2052,7 +2038,7 @@ static void TAB_DrawItem(
|
||||
|
||||
/* Clear interior */
|
||||
SetBkColor(hdc, bkgnd);
|
||||
ExtTextOutA(hdc, 0, 0, 2, &fillRect, NULL, 0, 0);
|
||||
ExtTextOutW(hdc, 0, 0, 2, &fillRect, NULL, 0, 0);
|
||||
|
||||
/* Draw rectangular edge around tab */
|
||||
DrawEdge(hdc, &r, EDGE_RAISED, BF_SOFT|BF_LEFT|BF_BOTTOM|BF_RIGHT);
|
||||
@ -2063,7 +2049,7 @@ static void TAB_DrawItem(
|
||||
r1.bottom = r.bottom;
|
||||
r1.right = r.right;
|
||||
r1.top = r1.bottom - ROUND_CORNER_SIZE - 1;
|
||||
ExtTextOutA(hdc, 0, 0, 2, &r1, NULL, 0, 0);
|
||||
ExtTextOutW(hdc, 0, 0, 2, &r1, NULL, 0, 0);
|
||||
r1.bottom--;
|
||||
DrawEdge(hdc, &r1, EDGE_RAISED, BF_SOFT|BF_DIAGONAL_ENDBOTTOMLEFT);
|
||||
|
||||
@ -2072,7 +2058,7 @@ static void TAB_DrawItem(
|
||||
r1.bottom = r.bottom;
|
||||
r1.right = r1.left + ROUND_CORNER_SIZE;
|
||||
r1.top = r1.bottom - ROUND_CORNER_SIZE - 1;
|
||||
ExtTextOutA(hdc, 0, 0, 2, &r1, NULL, 0, 0);
|
||||
ExtTextOutW(hdc, 0, 0, 2, &r1, NULL, 0, 0);
|
||||
r1.bottom--;
|
||||
DrawEdge(hdc, &r1, EDGE_RAISED, BF_SOFT|BF_DIAGONAL_ENDTOPLEFT);
|
||||
|
||||
@ -2106,7 +2092,7 @@ static void TAB_DrawItem(
|
||||
|
||||
/* Clear interior */
|
||||
SetBkColor(hdc, bkgnd);
|
||||
ExtTextOutA(hdc, 0, 0, 2, &fillRect, NULL, 0, 0);
|
||||
ExtTextOutW(hdc, 0, 0, 2, &fillRect, NULL, 0, 0);
|
||||
|
||||
/* Draw rectangular edge around tab */
|
||||
DrawEdge(hdc, &r, EDGE_RAISED, BF_SOFT|BF_LEFT|BF_TOP|BF_RIGHT);
|
||||
@ -2117,7 +2103,7 @@ static void TAB_DrawItem(
|
||||
r1.top = r.top;
|
||||
r1.right = r.right;
|
||||
r1.bottom = r1.top + ROUND_CORNER_SIZE + 1;
|
||||
ExtTextOutA(hdc, 0, 0, 2, &r1, NULL, 0, 0);
|
||||
ExtTextOutW(hdc, 0, 0, 2, &r1, NULL, 0, 0);
|
||||
r1.top++;
|
||||
DrawEdge(hdc, &r1, EDGE_RAISED, BF_SOFT|BF_DIAGONAL_ENDBOTTOMRIGHT);
|
||||
|
||||
@ -2126,7 +2112,7 @@ static void TAB_DrawItem(
|
||||
r1.top = r.top;
|
||||
r1.right = r1.left + ROUND_CORNER_SIZE;
|
||||
r1.bottom = r1.top + ROUND_CORNER_SIZE + 1;
|
||||
ExtTextOutA(hdc, 0, 0, 2, &r1, NULL, 0, 0);
|
||||
ExtTextOutW(hdc, 0, 0, 2, &r1, NULL, 0, 0);
|
||||
r1.top++;
|
||||
DrawEdge(hdc, &r1, EDGE_RAISED, BF_SOFT|BF_DIAGONAL_ENDTOPRIGHT);
|
||||
}
|
||||
@ -2149,7 +2135,7 @@ static void TAB_DrawItem(
|
||||
static void TAB_DrawBorder (TAB_INFO *infoPtr, HDC hdc)
|
||||
{
|
||||
RECT rect;
|
||||
DWORD lStyle = GetWindowLongA(infoPtr->hwnd, GWL_STYLE);
|
||||
DWORD lStyle = GetWindowLongW(infoPtr->hwnd, GWL_STYLE);
|
||||
|
||||
GetClientRect (infoPtr->hwnd, &rect);
|
||||
|
||||
@ -2190,7 +2176,7 @@ static void TAB_Refresh (TAB_INFO *infoPtr, HDC hdc)
|
||||
|
||||
hOldFont = SelectObject (hdc, infoPtr->hFont);
|
||||
|
||||
if (GetWindowLongA(infoPtr->hwnd, GWL_STYLE) & TCS_BUTTONS)
|
||||
if (GetWindowLongW(infoPtr->hwnd, GWL_STYLE) & TCS_BUTTONS)
|
||||
{
|
||||
for (i = 0; i < infoPtr->uNumItem; i++)
|
||||
TAB_DrawItem (infoPtr, hdc, i);
|
||||
@ -2241,7 +2227,7 @@ static void TAB_EnsureSelectionVisible(
|
||||
TAB_INFO* infoPtr)
|
||||
{
|
||||
INT iSelected = infoPtr->iSelected;
|
||||
LONG lStyle = GetWindowLongA(infoPtr->hwnd, GWL_STYLE);
|
||||
LONG lStyle = GetWindowLongW(infoPtr->hwnd, GWL_STYLE);
|
||||
INT iOrigLeftmostVisible = infoPtr->leftmostVisible;
|
||||
|
||||
/* set the items row to the bottommost row or topmost row depending on
|
||||
@ -2360,7 +2346,7 @@ static void TAB_EnsureSelectionVisible(
|
||||
static void TAB_InvalidateTabArea(TAB_INFO* infoPtr)
|
||||
{
|
||||
RECT clientRect, rInvalidate, rAdjClient;
|
||||
DWORD lStyle = GetWindowLongA(infoPtr->hwnd, GWL_STYLE);
|
||||
DWORD lStyle = GetWindowLongW(infoPtr->hwnd, GWL_STYLE);
|
||||
INT lastRow = infoPtr->uNumRows - 1;
|
||||
RECT rect;
|
||||
|
||||
@ -2439,10 +2425,10 @@ static inline LRESULT TAB_Paint (TAB_INFO *infoPtr, HDC hdcPaint)
|
||||
}
|
||||
|
||||
static LRESULT
|
||||
TAB_InsertItemAW (TAB_INFO *infoPtr, WPARAM wParam, LPARAM lParam, BOOL bUnicode)
|
||||
TAB_InsertItemT (TAB_INFO *infoPtr, WPARAM wParam, LPARAM lParam, BOOL bUnicode)
|
||||
{
|
||||
TAB_ITEM *item;
|
||||
TCITEMA *pti;
|
||||
TCITEMW *pti;
|
||||
INT iItem;
|
||||
RECT rect;
|
||||
|
||||
@ -2450,17 +2436,14 @@ TAB_InsertItemAW (TAB_INFO *infoPtr, WPARAM wParam, LPARAM lParam, BOOL bUnicode
|
||||
TRACE("Rect: %p T %li, L %li, B %li, R %li\n", infoPtr->hwnd,
|
||||
rect.top, rect.left, rect.bottom, rect.right);
|
||||
|
||||
pti = (TCITEMA *)lParam;
|
||||
pti = (TCITEMW *)lParam;
|
||||
iItem = (INT)wParam;
|
||||
|
||||
if (iItem < 0) return -1;
|
||||
if (iItem > infoPtr->uNumItem)
|
||||
iItem = infoPtr->uNumItem;
|
||||
|
||||
if (bUnicode)
|
||||
TAB_DumpItemExternalW((TCITEMW*)pti, iItem);
|
||||
else
|
||||
TAB_DumpItemExternalA(pti, iItem);
|
||||
TAB_DumpItemExternalT(pti, iItem, bUnicode);
|
||||
|
||||
|
||||
if (infoPtr->uNumItem == 0) {
|
||||
@ -2502,9 +2485,9 @@ TAB_InsertItemAW (TAB_INFO *infoPtr, WPARAM wParam, LPARAM lParam, BOOL bUnicode
|
||||
if (pti->mask & TCIF_TEXT)
|
||||
{
|
||||
if (bUnicode)
|
||||
Str_SetPtrW (&item->pszText, (WCHAR*)pti->pszText);
|
||||
Str_SetPtrW (&item->pszText, pti->pszText);
|
||||
else
|
||||
Str_SetPtrAtoW (&item->pszText, pti->pszText);
|
||||
Str_SetPtrAtoW (&item->pszText, (LPSTR)pti->pszText);
|
||||
}
|
||||
|
||||
if (pti->mask & TCIF_IMAGE)
|
||||
@ -2532,7 +2515,7 @@ TAB_InsertItemAW (TAB_INFO *infoPtr, WPARAM wParam, LPARAM lParam, BOOL bUnicode
|
||||
static LRESULT
|
||||
TAB_SetItemSize (TAB_INFO *infoPtr, LPARAM lParam)
|
||||
{
|
||||
LONG lStyle = GetWindowLongA(infoPtr->hwnd, GWL_STYLE);
|
||||
LONG lStyle = GetWindowLongW(infoPtr->hwnd, GWL_STYLE);
|
||||
LONG lResult = 0;
|
||||
BOOL bNeedPaint = FALSE;
|
||||
|
||||
@ -2600,7 +2583,7 @@ TAB_HighlightItem (TAB_INFO *infoPtr, INT iItem, BOOL fHighlight)
|
||||
}
|
||||
|
||||
static LRESULT
|
||||
TAB_SetItemAW (TAB_INFO *infoPtr, INT iItem, LPTCITEMA tabItem, BOOL bUnicode)
|
||||
TAB_SetItemT (TAB_INFO *infoPtr, INT iItem, LPTCITEMW tabItem, BOOL bUnicode)
|
||||
{
|
||||
TAB_ITEM *wineItem;
|
||||
|
||||
@ -2609,10 +2592,7 @@ TAB_SetItemAW (TAB_INFO *infoPtr, INT iItem, LPTCITEMA tabItem, BOOL bUnicode)
|
||||
if (iItem < 0 || iItem >= infoPtr->uNumItem)
|
||||
return FALSE;
|
||||
|
||||
if (bUnicode)
|
||||
TAB_DumpItemExternalW((TCITEMW *)tabItem, iItem);
|
||||
else
|
||||
TAB_DumpItemExternalA(tabItem, iItem);
|
||||
TAB_DumpItemExternalT(tabItem, iItem, bUnicode);
|
||||
|
||||
wineItem = TAB_GetItem(infoPtr, iItem);
|
||||
|
||||
@ -2636,9 +2616,9 @@ TAB_SetItemAW (TAB_INFO *infoPtr, INT iItem, LPTCITEMA tabItem, BOOL bUnicode)
|
||||
wineItem->pszText = NULL;
|
||||
}
|
||||
if (bUnicode)
|
||||
Str_SetPtrW(&wineItem->pszText, (WCHAR*)tabItem->pszText);
|
||||
Str_SetPtrW(&wineItem->pszText, tabItem->pszText);
|
||||
else
|
||||
Str_SetPtrAtoW(&wineItem->pszText, tabItem->pszText);
|
||||
Str_SetPtrAtoW(&wineItem->pszText, (LPSTR)tabItem->pszText);
|
||||
}
|
||||
|
||||
/* Update and repaint tabs */
|
||||
@ -2655,7 +2635,7 @@ static inline LRESULT TAB_GetItemCount (const TAB_INFO *infoPtr)
|
||||
|
||||
|
||||
static LRESULT
|
||||
TAB_GetItemAW (TAB_INFO *infoPtr, INT iItem, LPTCITEMA tabItem, BOOL bUnicode)
|
||||
TAB_GetItemT (TAB_INFO *infoPtr, INT iItem, LPTCITEMW tabItem, BOOL bUnicode)
|
||||
{
|
||||
TAB_ITEM *wineItem;
|
||||
|
||||
@ -2681,15 +2661,12 @@ TAB_GetItemAW (TAB_INFO *infoPtr, INT iItem, LPTCITEMA tabItem, BOOL bUnicode)
|
||||
if (tabItem->mask & TCIF_TEXT)
|
||||
{
|
||||
if (bUnicode)
|
||||
Str_GetPtrW (wineItem->pszText, (WCHAR*)tabItem->pszText, tabItem->cchTextMax);
|
||||
Str_GetPtrW (wineItem->pszText, tabItem->pszText, tabItem->cchTextMax);
|
||||
else
|
||||
Str_GetPtrWtoA (wineItem->pszText, tabItem->pszText, tabItem->cchTextMax);
|
||||
Str_GetPtrWtoA (wineItem->pszText, (LPSTR)tabItem->pszText, tabItem->cchTextMax);
|
||||
}
|
||||
|
||||
if (bUnicode)
|
||||
TAB_DumpItemExternalW((TCITEMW*)tabItem, iItem);
|
||||
else
|
||||
TAB_DumpItemExternalA(tabItem, iItem);
|
||||
TAB_DumpItemExternalT(tabItem, iItem, bUnicode);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@ -2835,7 +2812,7 @@ static inline LRESULT TAB_Size (TAB_INFO *infoPtr)
|
||||
GetClientRect(parent, &parent_rect);
|
||||
cx=LOWORD (lParam);
|
||||
cy=HIWORD (lParam);
|
||||
if (GetWindowLongA(hwnd, GWL_STYLE) & CCS_NORESIZE)
|
||||
if (GetWindowLongW(hwnd, GWL_STYLE) & CCS_NORESIZE)
|
||||
uPosFlags |= (SWP_NOSIZE | SWP_NOMOVE);
|
||||
|
||||
SetWindowPos (hwnd, 0, parent_rect.left, parent_rect.top,
|
||||
@ -2857,14 +2834,14 @@ static inline LRESULT TAB_Size (TAB_INFO *infoPtr)
|
||||
static LRESULT TAB_Create (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
TAB_INFO *infoPtr;
|
||||
TEXTMETRICA fontMetrics;
|
||||
TEXTMETRICW fontMetrics;
|
||||
HDC hdc;
|
||||
HFONT hOldFont;
|
||||
DWORD dwStyle;
|
||||
|
||||
infoPtr = (TAB_INFO *)Alloc (sizeof(TAB_INFO));
|
||||
|
||||
SetWindowLongA(hwnd, 0, (DWORD)infoPtr);
|
||||
SetWindowLongPtrW(hwnd, 0, (DWORD_PTR)infoPtr);
|
||||
|
||||
infoPtr->hwnd = hwnd;
|
||||
infoPtr->hwndNotify = ((LPCREATESTRUCTW)lParam)->hwndParent;
|
||||
@ -2876,7 +2853,7 @@ static LRESULT TAB_Create (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
infoPtr->uVItemPadding_s = 3;
|
||||
infoPtr->hFont = 0;
|
||||
infoPtr->items = 0;
|
||||
infoPtr->hcurArrow = LoadCursorA (0, (LPSTR)IDC_ARROW);
|
||||
infoPtr->hcurArrow = LoadCursorW (0, (LPWSTR)IDC_ARROW);
|
||||
infoPtr->iSelected = -1;
|
||||
infoPtr->iHotTracked = -1;
|
||||
infoPtr->uFocus = -1;
|
||||
@ -2894,13 +2871,13 @@ static LRESULT TAB_Create (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
/* The tab control always has the WS_CLIPSIBLINGS style. Even
|
||||
if you don't specify it in CreateWindow. This is necessary in
|
||||
order for paint to work correctly. This follows windows behaviour. */
|
||||
dwStyle = GetWindowLongA(hwnd, GWL_STYLE);
|
||||
SetWindowLongA(hwnd, GWL_STYLE, dwStyle|WS_CLIPSIBLINGS);
|
||||
dwStyle = GetWindowLongW(hwnd, GWL_STYLE);
|
||||
SetWindowLongW(hwnd, GWL_STYLE, dwStyle|WS_CLIPSIBLINGS);
|
||||
|
||||
if (dwStyle & TCS_TOOLTIPS) {
|
||||
/* Create tooltip control */
|
||||
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);
|
||||
@ -2927,7 +2904,7 @@ static LRESULT TAB_Create (HWND hwnd, WPARAM wParam, LPARAM lParam)
|
||||
hOldFont = SelectObject (hdc, GetStockObject (SYSTEM_FONT));
|
||||
|
||||
/* Use the system font to determine the initial height of a tab. */
|
||||
GetTextMetricsA(hdc, &fontMetrics);
|
||||
GetTextMetricsW(hdc, &fontMetrics);
|
||||
|
||||
/*
|
||||
* Make sure there is enough space for the letters + growing the
|
||||
@ -2957,6 +2934,8 @@ TAB_Destroy (TAB_INFO *infoPtr)
|
||||
if (!infoPtr)
|
||||
return 0;
|
||||
|
||||
SetWindowLongPtrW(infoPtr->hwnd, 0, 0);
|
||||
|
||||
if (infoPtr->items) {
|
||||
for (iItem = 0; iItem < infoPtr->uNumItem; iItem++) {
|
||||
if (TAB_GetItem(infoPtr, iItem)->pszText)
|
||||
@ -2975,7 +2954,6 @@ TAB_Destroy (TAB_INFO *infoPtr)
|
||||
KillTimer(infoPtr->hwnd, TAB_HOTTRACK_TIMER);
|
||||
|
||||
Free (infoPtr);
|
||||
SetWindowLongA(infoPtr->hwnd, 0, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -3017,11 +2995,11 @@ TAB_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
case TCM_GETITEMA:
|
||||
case TCM_GETITEMW:
|
||||
return TAB_GetItemAW (infoPtr, (INT)wParam, (LPTCITEMA)lParam, uMsg == TCM_GETITEMW);
|
||||
return TAB_GetItemT (infoPtr, (INT)wParam, (LPTCITEMW)lParam, uMsg == TCM_GETITEMW);
|
||||
|
||||
case TCM_SETITEMA:
|
||||
case TCM_SETITEMW:
|
||||
return TAB_SetItemAW (infoPtr, (INT)wParam, (LPTCITEMA)lParam, uMsg == TCM_SETITEMW);
|
||||
return TAB_SetItemT (infoPtr, (INT)wParam, (LPTCITEMW)lParam, uMsg == TCM_SETITEMW);
|
||||
|
||||
case TCM_DELETEITEM:
|
||||
return TAB_DeleteItem (infoPtr, (INT)wParam);
|
||||
@ -3043,7 +3021,7 @@ TAB_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
case TCM_INSERTITEMA:
|
||||
case TCM_INSERTITEMW:
|
||||
return TAB_InsertItemAW (infoPtr, wParam, lParam, uMsg == TCM_INSERTITEMW);
|
||||
return TAB_InsertItemT (infoPtr, wParam, lParam, uMsg == TCM_INSERTITEMW);
|
||||
|
||||
case TCM_SETITEMEXTRA:
|
||||
return TAB_SetItemExtra (infoPtr, (int)wParam);
|
||||
@ -3171,7 +3149,7 @@ TAB_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
}
|
||||
|
||||
|
||||
VOID
|
||||
void
|
||||
TAB_Register (void)
|
||||
{
|
||||
WNDCLASSW wndClass;
|
||||
@ -3189,7 +3167,7 @@ TAB_Register (void)
|
||||
}
|
||||
|
||||
|
||||
VOID
|
||||
void
|
||||
TAB_Unregister (void)
|
||||
{
|
||||
UnregisterClassW (WC_TABCONTROLW, NULL);
|
||||
|
Loading…
x
Reference in New Issue
Block a user