From 56984a95c2514df3a96849d790a3e1bc5b3de52a Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 8 Jun 2012 21:40:43 +0000 Subject: TopToolButton -> Unicode (any miracles are possible) git-svn-id: http://svn.miranda-ng.org/main/trunk@366 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/TopToolBar/CLCButton.cpp | 242 +++++++++++++++-------------- plugins/TopToolBar/InternalButtons.cpp | 32 ++-- plugins/TopToolBar/TopToolBar.vcxproj | 8 +- plugins/TopToolBar/button.cpp | 27 ++-- plugins/TopToolBar/common.h | 36 ++--- plugins/TopToolBar/launchbt.cpp | 75 ++++----- plugins/TopToolBar/main.cpp | 143 ++++++++---------- plugins/TopToolBar/main.rc | 92 +++++------ plugins/TopToolBar/separators.cpp | 6 +- plugins/TopToolBar/ttbopt.cpp | 268 ++++++++++++++++----------------- 10 files changed, 436 insertions(+), 493 deletions(-) (limited to 'plugins') diff --git a/plugins/TopToolBar/CLCButton.cpp b/plugins/TopToolBar/CLCButton.cpp index 7993a085c9..d4078129ca 100644 --- a/plugins/TopToolBar/CLCButton.cpp +++ b/plugins/TopToolBar/CLCButton.cpp @@ -5,7 +5,7 @@ Copyright (C) 2002 Robert Rainwater This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. +of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -13,17 +13,17 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "common.h" // TODO: // - Support for bitmap buttons (simple call to DrawIconEx()) extern HINSTANCE hInst; -LONG g_cxsmIcon, g_cysmIcon; +LONG g_cxsmIcon, g_cysmIcon; -static LRESULT CALLBACK TSButtonWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); +static LRESULT CALLBACK TSButtonWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); struct MButtonCtrl { @@ -33,7 +33,7 @@ struct MButtonCtrl HFONT hFont; // font HICON arrow; // uses down arrow int defbutton; // default button - HICON hIcon, hIconPrivate; + HICON hIcon, hIconPrivate; HBITMAP hBitmap; int pushBtn; int pbState; @@ -50,15 +50,15 @@ struct MButtonCtrl // External theme methods and properties static HMODULE themeAPIHandle = NULL; // handle to uxtheme.dll -static HANDLE (WINAPI *MyOpenThemeData)(HWND, LPCWSTR); +static HANDLE (WINAPI *MyOpenThemeData)(HWND, LPCWSTR); static HRESULT (WINAPI *MyCloseThemeData)(HANDLE); -static BOOL (WINAPI *MyIsThemeBackgroundPartiallyTransparent)(HANDLE, int, +static BOOL (WINAPI *MyIsThemeBackgroundPartiallyTransparent)(HANDLE, int, int); -static HRESULT (WINAPI *MyDrawThemeParentBackground)(HWND, HDC, RECT *); -static HRESULT (WINAPI *MyDrawThemeBackground)(HANDLE, HDC, int, int, - const RECT *, const RECT *); -static HRESULT (WINAPI *MyDrawThemeText)(HANDLE, HDC, int, int, LPCWSTR, int, - DWORD, DWORD, const RECT *); +static HRESULT (WINAPI *MyDrawThemeParentBackground)(HWND, HDC, RECT *); +static HRESULT (WINAPI *MyDrawThemeBackground)(HANDLE, HDC, int, int, + const RECT *, const RECT *); +static HRESULT (WINAPI *MyDrawThemeText)(HANDLE, HDC, int, int, LPCWSTR, int, + DWORD, DWORD, const RECT *); static CRITICAL_SECTION csTips; static HWND hwndToolTips = NULL; @@ -74,12 +74,12 @@ static int ThemeSupport() if (!themeAPIHandle) { themeAPIHandle = GetModuleHandleA("uxtheme"); if (themeAPIHandle) { - MyOpenThemeData = (HANDLE(WINAPI *)(HWND, LPCWSTR))MGPROC("OpenThemeData"); + MyOpenThemeData = (HANDLE(WINAPI *)(HWND, LPCWSTR))MGPROC("OpenThemeData"); MyCloseThemeData = (HRESULT(WINAPI *)(HANDLE))MGPROC("CloseThemeData"); - MyIsThemeBackgroundPartiallyTransparent = (BOOL(WINAPI *)(HANDLE, int, int))MGPROC("IsThemeBackgroundPartiallyTransparent"); - MyDrawThemeParentBackground = (HRESULT(WINAPI *)(HWND, HDC, RECT *))MGPROC("DrawThemeParentBackground"); - MyDrawThemeBackground = (HRESULT(WINAPI *)(HANDLE, HDC, int, int, const RECT *, const RECT *))MGPROC("DrawThemeBackground"); - MyDrawThemeText = (HRESULT(WINAPI *)(HANDLE, HDC, int, int, LPCWSTR, int, DWORD, DWORD, const RECT *))MGPROC("DrawThemeText"); + MyIsThemeBackgroundPartiallyTransparent = (BOOL(WINAPI *)(HANDLE, int, int))MGPROC("IsThemeBackgroundPartiallyTransparent"); + MyDrawThemeParentBackground = (HRESULT(WINAPI *)(HWND, HDC, RECT *))MGPROC("DrawThemeParentBackground"); + MyDrawThemeBackground = (HRESULT(WINAPI *)(HANDLE, HDC, int, int, const RECT *, const RECT *))MGPROC("DrawThemeBackground"); + MyDrawThemeText = (HRESULT(WINAPI *)(HANDLE, HDC, int, int, LPCWSTR, int, DWORD, DWORD, const RECT *))MGPROC("DrawThemeText"); } } // Make sure all of these methods are valid (i would hope either all or none work) @@ -107,8 +107,8 @@ static void LoadTheme(MButtonCtrl *ctl) { if (ThemeSupport()) { DestroyTheme(ctl); - ctl->hThemeButton = MyOpenThemeData(ctl->hwnd, L"BUTTON"); - ctl->hThemeToolbar = MyOpenThemeData(ctl->hwnd, L"TOOLBAR"); + ctl->hThemeButton = MyOpenThemeData(ctl->hwnd, L"BUTTON"); + ctl->hThemeToolbar = MyOpenThemeData(ctl->hwnd, L"TOOLBAR"); ctl->bThemed = TRUE; } } @@ -125,19 +125,19 @@ static int TBStateConvert2Flat(int state) return TS_NORMAL; } -static void PaintWorker(MButtonCtrl *ctl, HDC hdcPaint) +static void PaintWorker(MButtonCtrl *ctl, HDC hdcPaint) { - if (hdcPaint == NULL) + if (hdcPaint == NULL) return; HFONT hOldFont = NULL; RECT rcClient; - GetClientRect(ctl->hwnd, &rcClient); + GetClientRect(ctl->hwnd, &rcClient); HDC hdcMem = CreateCompatibleDC(hdcPaint); - HBITMAP hbmMem = CreateCompatibleBitmap(hdcPaint, rcClient.right - rcClient.left, rcClient.bottom - rcClient.top); - HDC hOld = (HDC)SelectObject(hdcMem, hbmMem); + HBITMAP hbmMem = CreateCompatibleBitmap(hdcPaint, rcClient.right - rcClient.left, rcClient.bottom - rcClient.top); + HDC hOld = (HDC)SelectObject(hdcMem, hbmMem); - // If its a push button, check to see if it should stay pressed + // If its a push button, check to see if it should stay pressed if (ctl->pushBtn && ctl->pbState) ctl->stateId = PBS_PRESSED; @@ -146,10 +146,10 @@ static void PaintWorker(MButtonCtrl *ctl, HDC hdcPaint) if (ctl->hThemeToolbar && ctl->bThemed) { RECT rc = rcClient; int state = IsWindowEnabled(ctl->hwnd) ? (ctl->stateId == PBS_NORMAL && ctl->defbutton ? PBS_DEFAULTED : ctl->stateId) : PBS_DISABLED; - if (MyIsThemeBackgroundPartiallyTransparent(ctl->hThemeToolbar, TP_BUTTON, TBStateConvert2Flat(state))) - MyDrawThemeParentBackground(ctl->hwnd, hdcMem, &rc); + if (MyIsThemeBackgroundPartiallyTransparent(ctl->hThemeToolbar, TP_BUTTON, TBStateConvert2Flat(state))) + MyDrawThemeParentBackground(ctl->hwnd, hdcMem, &rc); - MyDrawThemeBackground(ctl->hThemeToolbar, hdcMem, TP_BUTTON, TBStateConvert2Flat(state), &rc, &rc); + MyDrawThemeBackground(ctl->hThemeToolbar, hdcMem, TP_BUTTON, TBStateConvert2Flat(state), &rc, &rc); } else { HBRUSH hbr; @@ -160,113 +160,111 @@ static void PaintWorker(MButtonCtrl *ctl, HDC hdcPaint) else { HWND hwndParent = GetParent(ctl->hwnd); HDC dc = GetDC(hwndParent); - hbr = (HBRUSH) SendMessage(hwndParent, WM_CTLCOLORDLG, (WPARAM) dc, (LPARAM) hwndParent); - ReleaseDC(hwndParent, dc); + hbr = (HBRUSH) SendMessage(hwndParent, WM_CTLCOLORDLG, (WPARAM) dc, (LPARAM) hwndParent); + ReleaseDC(hwndParent, dc); } if (hbr) { - FillRect(hdcMem, &rc, hbr); + FillRect(hdcMem, &rc, hbr); DeleteObject(hbr); } if (ctl->stateId == PBS_HOT || ctl->focus) { if (ctl->pbState) - DrawEdge(hdcMem, &rc, EDGE_ETCHED, BF_RECT | BF_SOFT); + DrawEdge(hdcMem, &rc, EDGE_ETCHED, BF_RECT | BF_SOFT); else - DrawEdge(hdcMem, &rc, BDR_RAISEDOUTER, BF_RECT | BF_SOFT); + DrawEdge(hdcMem, &rc, BDR_RAISEDOUTER, BF_RECT | BF_SOFT); } - else if (ctl->stateId == PBS_PRESSED) - DrawEdge(hdcMem, &rc, BDR_SUNKENOUTER, BF_RECT | BF_SOFT); + else if (ctl->stateId == PBS_PRESSED) + DrawEdge(hdcMem, &rc, BDR_SUNKENOUTER, BF_RECT | BF_SOFT); } } else { // Draw background/border if (ctl->hThemeButton && ctl->bThemed) { int state = IsWindowEnabled(ctl->hwnd) ? (ctl->stateId == PBS_NORMAL && ctl->defbutton ? PBS_DEFAULTED : ctl->stateId) : PBS_DISABLED; - if (MyIsThemeBackgroundPartiallyTransparent(ctl->hThemeButton, BP_PUSHBUTTON, state)) { - MyDrawThemeParentBackground(ctl->hwnd, hdcMem, &rcClient); + if (MyIsThemeBackgroundPartiallyTransparent(ctl->hThemeButton, BP_PUSHBUTTON, state)) { + MyDrawThemeParentBackground(ctl->hwnd, hdcMem, &rcClient); } - MyDrawThemeBackground(ctl->hThemeButton, hdcMem, BP_PUSHBUTTON, state, &rcClient, &rcClient); + MyDrawThemeBackground(ctl->hThemeButton, hdcMem, BP_PUSHBUTTON, state, &rcClient, &rcClient); } else { UINT uState = DFCS_BUTTONPUSH | ((ctl->stateId == PBS_HOT) ? DFCS_HOT : 0) | ((ctl->stateId == PBS_PRESSED) ? DFCS_PUSHED : 0); if (ctl->defbutton && ctl->stateId == PBS_NORMAL) uState |= DLGC_DEFPUSHBUTTON; - DrawFrameControl(hdcMem, &rcClient, DFC_BUTTON, uState); + DrawFrameControl(hdcMem, &rcClient, DFC_BUTTON, uState); } // Draw focus rectangle if button has focus if (ctl->focus) { RECT focusRect = rcClient; - InflateRect(&focusRect, -3, -3); - DrawFocusRect(hdcMem, &focusRect); + InflateRect(&focusRect, -3, -3); + DrawFocusRect(hdcMem, &focusRect); } } - // If we have an icon or a bitmap, ignore text and only draw the image on the button + // If we have an icon or a bitmap, ignore text and only draw the image on the button if (ctl->hIcon || ctl->hIconPrivate || ctl->iIcon) { int ix = (rcClient.right - rcClient.left) / 2 - (g_cxsmIcon / 2); int iy = (rcClient.bottom - rcClient.top) / 2 - (g_cxsmIcon / 2); HICON hIconNew = ctl->hIconPrivate != 0 ? ctl->hIconPrivate : ctl->hIcon; if (lstrlenA(ctl->szText) == 0) { if (ctl->iIcon) - ImageList_DrawEx(ctl->hIml, ctl->iIcon, hdcMem, ix, iy, g_cxsmIcon, g_cysmIcon, CLR_NONE, CLR_NONE, ILD_NORMAL); + ImageList_DrawEx(ctl->hIml, ctl->iIcon, hdcMem, ix, iy, g_cxsmIcon, g_cysmIcon, CLR_NONE, CLR_NONE, ILD_NORMAL); else - DrawState(hdcMem, NULL, NULL, (LPARAM) hIconNew, 0, ix, iy, g_cxsmIcon, g_cysmIcon, IsWindowEnabled(ctl->hwnd) ? DST_ICON | DSS_NORMAL : DST_ICON | DSS_DISABLED); + DrawState(hdcMem, NULL, NULL, (LPARAM) hIconNew, 0, ix, iy, g_cxsmIcon, g_cysmIcon, IsWindowEnabled(ctl->hwnd) ? DST_ICON | DSS_NORMAL : DST_ICON | DSS_DISABLED); ctl->sLabel.cx = ctl->sLabel.cy = 0; } else { - hOldFont = (HFONT)SelectObject(hdcMem, ctl->hFont); - GetTextExtentPoint32A(hdcMem, ctl->szText, lstrlenA(ctl->szText), &ctl->sLabel); + hOldFont = (HFONT)SelectObject(hdcMem, ctl->hFont); + GetTextExtentPoint32A(hdcMem, ctl->szText, lstrlenA(ctl->szText), &ctl->sLabel); ix = (rcClient.right - rcClient.left) / 2 - ((g_cxsmIcon + ctl->sLabel.cx + 4) / 2); if (ctl->iIcon) - ImageList_DrawEx(ctl->hIml, ctl->iIcon, hdcMem, ix, iy, g_cxsmIcon, g_cysmIcon, CLR_NONE, CLR_NONE, ILD_NORMAL); + ImageList_DrawEx(ctl->hIml, ctl->iIcon, hdcMem, ix, iy, g_cxsmIcon, g_cysmIcon, CLR_NONE, CLR_NONE, ILD_NORMAL); else - DrawState(hdcMem, NULL, NULL, (LPARAM) hIconNew, 0, ix, iy, g_cxsmIcon, g_cysmIcon, IsWindowEnabled(ctl->hwnd) ? DST_ICON | DSS_NORMAL : DST_ICON | DSS_DISABLED); + DrawState(hdcMem, NULL, NULL, (LPARAM) hIconNew, 0, ix, iy, g_cxsmIcon, g_cysmIcon, IsWindowEnabled(ctl->hwnd) ? DST_ICON | DSS_NORMAL : DST_ICON | DSS_DISABLED); ctl->sLabel.cx += (g_cxsmIcon + 4); } } else if (ctl->hBitmap) { BITMAP bminfo; - int ix, iy; - - GetObject(ctl->hBitmap, sizeof(bminfo), &bminfo); - ix = (rcClient.right - rcClient.left) / 2 - (bminfo.bmWidth / 2); - iy = (rcClient.bottom - rcClient.top) / 2 - (bminfo.bmHeight / 2); + GetObject(ctl->hBitmap, sizeof(bminfo), &bminfo); + int ix = (rcClient.right - rcClient.left) / 2 - (bminfo.bmWidth / 2); + int iy = (rcClient.bottom - rcClient.top) / 2 - (bminfo.bmHeight / 2); if (ctl->stateId == PBS_PRESSED) { ix++; iy++; } - DrawState(hdcMem, NULL, NULL, (LPARAM) ctl->hBitmap, 0, ix, iy, bminfo.bmWidth, bminfo.bmHeight, IsWindowEnabled(ctl->hwnd) ? DST_BITMAP : DST_BITMAP | DSS_DISABLED); + DrawState(hdcMem, NULL, NULL, (LPARAM) ctl->hBitmap, 0, ix, iy, bminfo.bmWidth, bminfo.bmHeight, IsWindowEnabled(ctl->hwnd) ? DST_BITMAP : DST_BITMAP | DSS_DISABLED); } if (GetWindowTextLengthA(ctl->hwnd)) { // Draw the text and optinally the arrow RECT rcText; - CopyRect(&rcText, &rcClient); - SetBkMode(hdcMem, TRANSPARENT); + CopyRect(&rcText, &rcClient); + SetBkMode(hdcMem, TRANSPARENT); // XP w/themes doesn't used the glossy disabled text. Is it always using COLOR_GRAYTEXT? Seems so. - SetTextColor(hdcMem, IsWindowEnabled(ctl->hwnd) || !ctl->hThemeButton ? GetSysColor(COLOR_BTNTEXT) : GetSysColor(COLOR_GRAYTEXT)); + SetTextColor(hdcMem, IsWindowEnabled(ctl->hwnd) || !ctl->hThemeButton ? GetSysColor(COLOR_BTNTEXT) : GetSysColor(COLOR_GRAYTEXT)); if (ctl->arrow) - DrawState(hdcMem, NULL, NULL, (LPARAM) ctl->arrow, 0, rcClient.right - rcClient.left - 5 - g_cxsmIcon + (!ctl->hThemeButton && ctl->stateId == PBS_PRESSED ? 1 : 0), (rcClient.bottom - rcClient.top) / 2 - g_cysmIcon / 2 + (!ctl->hThemeButton && ctl->stateId == PBS_PRESSED ? 1 : 0), g_cxsmIcon, g_cysmIcon, IsWindowEnabled(ctl->hwnd) ? DST_ICON : DST_ICON | DSS_DISABLED); - SelectObject(hdcMem, ctl->hFont); - DrawStateA(hdcMem, NULL, NULL, (LPARAM) ctl->szText, 0, (rcText.right - rcText.left - ctl->sLabel.cx) / 2 + (!ctl->hThemeButton && ctl->stateId == PBS_PRESSED ? 1 : 0) + g_cxsmIcon + 4, ctl->hThemeButton ? (rcText.bottom - rcText.top - ctl->sLabel.cy) / 2 + 1 : (rcText.bottom - rcText.top - ctl->sLabel.cy) / 2 + (ctl->stateId == PBS_PRESSED ? 1 : 0), ctl->sLabel.cx, ctl->sLabel.cy, IsWindowEnabled(ctl->hwnd) || ctl->hThemeButton ? DST_PREFIXTEXT | DSS_NORMAL : DST_PREFIXTEXT | DSS_DISABLED); + DrawState(hdcMem, NULL, NULL, (LPARAM) ctl->arrow, 0, rcClient.right - rcClient.left - 5 - g_cxsmIcon + (!ctl->hThemeButton && ctl->stateId == PBS_PRESSED ? 1 : 0), (rcClient.bottom - rcClient.top) / 2 - g_cysmIcon / 2 + (!ctl->hThemeButton && ctl->stateId == PBS_PRESSED ? 1 : 0), g_cxsmIcon, g_cysmIcon, IsWindowEnabled(ctl->hwnd) ? DST_ICON : DST_ICON | DSS_DISABLED); + SelectObject(hdcMem, ctl->hFont); + DrawStateA(hdcMem, NULL, NULL, (LPARAM) ctl->szText, 0, (rcText.right - rcText.left - ctl->sLabel.cx) / 2 + (!ctl->hThemeButton && ctl->stateId == PBS_PRESSED ? 1 : 0) + g_cxsmIcon + 4, ctl->hThemeButton ? (rcText.bottom - rcText.top - ctl->sLabel.cy) / 2 + 1 : (rcText.bottom - rcText.top - ctl->sLabel.cy) / 2 + (ctl->stateId == PBS_PRESSED ? 1 : 0), ctl->sLabel.cx, ctl->sLabel.cy, IsWindowEnabled(ctl->hwnd) || ctl->hThemeButton ? DST_PREFIXTEXT | DSS_NORMAL : DST_PREFIXTEXT | DSS_DISABLED); } if (hOldFont) - SelectObject(hdcMem, hOldFont); + SelectObject(hdcMem, hOldFont); - BitBlt(hdcPaint, 0, 0, rcClient.right - rcClient.left, rcClient.bottom - rcClient.top, hdcMem, 0, 0, SRCCOPY); - SelectObject(hdcMem, hOld); + BitBlt(hdcPaint, 0, 0, rcClient.right - rcClient.left, rcClient.bottom - rcClient.top, hdcMem, 0, 0, SRCCOPY); + SelectObject(hdcMem, hOld); DeleteObject(hbmMem); DeleteDC(hdcMem); } -static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { - MButtonCtrl *bct = (MButtonCtrl *) GetWindowLongPtr(hwndDlg, 0); + MButtonCtrl *bct = (MButtonCtrl *) GetWindowLongPtr(hwndDlg, 0); switch (msg) { case WM_NCCREATE: - SetWindowLongPtr(hwndDlg, GWL_STYLE, GetWindowLongPtr(hwndDlg, GWL_STYLE) | BS_OWNERDRAW); + SetWindowLongPtr(hwndDlg, GWL_STYLE, GetWindowLongPtr(hwndDlg, GWL_STYLE) | BS_OWNERDRAW); bct = ( MButtonCtrl* )malloc(sizeof(MButtonCtrl)); if (bct == NULL) return FALSE; @@ -289,9 +287,9 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, bct->flatBtn = 0; bct->bThemed = FALSE; LoadTheme(bct); - SetWindowLongPtr(hwndDlg, 0, (LONG) bct); + SetWindowLongPtr(hwndDlg, 0, (LONG) bct); if (((CREATESTRUCTA *) lParam)->lpszName) - SetWindowTextA(hwndDlg, ((CREATESTRUCTA *) lParam)->lpszName); + SetWindowTextA(hwndDlg, ((CREATESTRUCTA *) lParam)->lpszName); return TRUE; case WM_SETTEXT: @@ -305,8 +303,8 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, } tmp++; } - InvalidateRect(bct->hwnd, NULL, TRUE); - strncpy(bct->szText, (char*) lParam, 127); + InvalidateRect(bct->hwnd, NULL, TRUE); + strncpy(bct->szText, (char*) lParam, 127); bct->szText[127] = 0; } break; @@ -318,18 +316,18 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, bct->pbState = 0; else bct->pbState = 1; - InvalidateRect(bct->hwnd, NULL, TRUE); + InvalidateRect(bct->hwnd, NULL, TRUE); } - SendMessage(GetParent(hwndDlg), WM_COMMAND, MAKELONG(GetDlgCtrlID(hwndDlg), BN_CLICKED), (LPARAM) hwndDlg); + SendMessage(GetParent(hwndDlg), WM_COMMAND, MAKELONG(GetDlgCtrlID(hwndDlg), BN_CLICKED), (LPARAM) hwndDlg); return 0; } break; case WM_THEMECHANGED: - // themed changed, reload theme object + // themed changed, reload theme object if (bct->bThemed) LoadTheme(bct); - InvalidateRect(bct->hwnd, NULL, TRUE); // repaint it + InvalidateRect(bct->hwnd, NULL, TRUE); // repaint it break; case WM_SETFONT: @@ -343,10 +341,10 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, PAINTSTRUCT ps; HDC hdcPaint; - hdcPaint = BeginPaint(hwndDlg, &ps); + hdcPaint = BeginPaint(hwndDlg, &ps); if (hdcPaint) { - PaintWorker(bct, hdcPaint); - EndPaint(hwndDlg, &ps); + PaintWorker(bct, hdcPaint); + EndPaint(hwndDlg, &ps); } } break; @@ -359,15 +357,15 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, DestroyIcon(bct->hIconPrivate); ICONINFO ii; - GetIconInfo((HICON) lParam, &ii); + GetIconInfo((HICON) lParam, &ii); BITMAP bm; - GetObject(ii.hbmColor, sizeof(bm), &bm); + GetObject(ii.hbmColor, sizeof(bm), &bm); if (bm.bmWidth > g_cxsmIcon || bm.bmHeight > g_cysmIcon) { HIMAGELIST hImageList; - hImageList = ImageList_Create(g_cxsmIcon, g_cysmIcon, IsWinVerXPPlus() ? ILC_COLOR32 | ILC_MASK : ILC_COLOR16 | ILC_MASK, 1, 0); - ImageList_AddIcon(hImageList, (HICON) lParam); - bct->hIconPrivate = ImageList_GetIcon(hImageList, 0, ILD_NORMAL); + hImageList = ImageList_Create(g_cxsmIcon, g_cysmIcon, IsWinVerXPPlus() ? ILC_COLOR32 | ILC_MASK : ILC_COLOR16 | ILC_MASK, 1, 0); + ImageList_AddIcon(hImageList, (HICON) lParam); + bct->hIconPrivate = ImageList_GetIcon(hImageList, 0, ILD_NORMAL); ImageList_RemoveAll(hImageList); ImageList_Destroy(hImageList); bct->hIcon = 0; @@ -380,14 +378,14 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, DeleteObject(ii.hbmMask); DeleteObject(ii.hbmColor); bct->hBitmap = NULL; - InvalidateRect(bct->hwnd, NULL, TRUE); + InvalidateRect(bct->hwnd, NULL, TRUE); } else if (wParam == IMAGE_BITMAP) { bct->hBitmap = (HBITMAP) lParam; if (bct->hIconPrivate) DestroyIcon(bct->hIconPrivate); bct->hIcon = bct->hIconPrivate = NULL; - InvalidateRect(bct->hwnd, NULL, TRUE); + InvalidateRect(bct->hwnd, NULL, TRUE); } break; @@ -396,7 +394,7 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, bct->iIcon = 0; if (bct->hIconPrivate) DestroyIcon(bct->hIconPrivate); - bct->hIconPrivate = DuplicateIcon(hInst, (HICON) lParam); + bct->hIconPrivate = DuplicateIcon(hInst, (HICON) lParam); bct->hIcon = 0; break; @@ -406,7 +404,7 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, bct->hIml = (HIMAGELIST) wParam; bct->iIcon = (int) lParam; bct->hIcon = bct->hIconPrivate = 0; - InvalidateRect(bct->hwnd, NULL, TRUE); + InvalidateRect(bct->hwnd, NULL, TRUE); break; case BM_SETCHECK: @@ -419,7 +417,7 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, bct->pbState = 0; bct->stateId = PBS_NORMAL; } - InvalidateRect(bct->hwnd, NULL, TRUE); + InvalidateRect(bct->hwnd, NULL, TRUE); break; case BM_GETCHECK: @@ -431,7 +429,7 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, case BUTTONSETARROW: // turn arrow on/off if (wParam) { - //if (!bct->arrow) bct->arrow = (HICON) LoadImage(g_hInst, MAKEINTRESOURCE(IDI_MINIMIZE), IMAGE_ICON, g_cxsmIcon, g_cysmIcon, 0); + //if (!bct->arrow) bct->arrow = (HICON) LoadImage(g_hInst, MAKEINTRESOURCE(IDI_MINIMIZE), IMAGE_ICON, g_cxsmIcon, g_cysmIcon, 0); } else { if (bct->arrow) { @@ -439,22 +437,22 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, bct->arrow = NULL; } } - InvalidateRect(bct->hwnd, NULL, TRUE); + InvalidateRect(bct->hwnd, NULL, TRUE); break; case BUTTONSETDEFAULT: bct->defbutton = wParam ? 1 : 0; - InvalidateRect(bct->hwnd, NULL, TRUE); + InvalidateRect(bct->hwnd, NULL, TRUE); break; case BUTTONSETASPUSHBTN: bct->pushBtn = 1; - InvalidateRect(bct->hwnd, NULL, TRUE); + InvalidateRect(bct->hwnd, NULL, TRUE); break; case BUTTONSETASFLATBTN: bct->flatBtn = lParam == 0 ? 1 : 0; - InvalidateRect(bct->hwnd, NULL, TRUE); + InvalidateRect(bct->hwnd, NULL, TRUE); break; case BUTTONSETASFLATBTN + 10: @@ -465,20 +463,20 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, if (wParam) { EnterCriticalSection(&csTips); if (!hwndToolTips) - hwndToolTips = CreateWindowExA(WS_EX_TOPMOST, TOOLTIPS_CLASSA, "", WS_POPUP, 0, 0, 0, 0, NULL, NULL, GetModuleHandle(NULL), NULL); + hwndToolTips = CreateWindowExA(WS_EX_TOPMOST, TOOLTIPS_CLASSA, "", WS_POPUP, 0, 0, 0, 0, NULL, NULL, GetModuleHandle(NULL), NULL); - TOOLINFOA ti = { 0 }; + TOOLINFO ti = { 0 }; ti.cbSize = sizeof(ti); ti.uFlags = TTF_IDISHWND; ti.hwnd = bct->hwnd; ti.uId = (UINT) bct->hwnd; - if (SendMessage(hwndToolTips, TTM_GETTOOLINFO, 0, (LPARAM) &ti)) - SendMessage(hwndToolTips, TTM_DELTOOL, 0, (LPARAM) &ti); + if (SendMessage(hwndToolTips, TTM_GETTOOLINFO, 0, (LPARAM) &ti)) + SendMessage(hwndToolTips, TTM_DELTOOL, 0, (LPARAM) &ti); ti.uFlags = TTF_IDISHWND | TTF_SUBCLASS; ti.uId = (UINT) bct->hwnd; - ti.lpszText = (char*) wParam; - SendMessageA(hwndToolTips, TTM_ADDTOOLA, 0, (LPARAM) &ti); + ti.lpszText = (TCHAR*) wParam; + SendMessage(hwndToolTips, TTM_ADDTOOL, 0, (LPARAM) &ti); LeaveCriticalSection(&csTips); } break; @@ -486,23 +484,23 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, case WM_SETFOCUS: // set keybord focus and redraw bct->focus = 1; - InvalidateRect(bct->hwnd, NULL, TRUE); + InvalidateRect(bct->hwnd, NULL, TRUE); break; case WM_KILLFOCUS: // kill focus and redraw bct->focus = 0; - InvalidateRect(bct->hwnd, NULL, TRUE); + InvalidateRect(bct->hwnd, NULL, TRUE); break; case WM_WINDOWPOSCHANGED: - InvalidateRect(bct->hwnd, NULL, TRUE); + InvalidateRect(bct->hwnd, NULL, TRUE); break; case WM_ENABLE: // windows tells us to enable/disable bct->stateId = wParam ? PBS_NORMAL : PBS_DISABLED; - InvalidateRect(bct->hwnd, NULL, TRUE); + InvalidateRect(bct->hwnd, NULL, TRUE); break; case WM_MOUSELEAVE: @@ -510,7 +508,7 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, if (bct->stateId != PBS_DISABLED) { // don't change states if disabled bct->stateId = PBS_NORMAL; - InvalidateRect(bct->hwnd, NULL, TRUE); + InvalidateRect(bct->hwnd, NULL, TRUE); } break; @@ -518,7 +516,7 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, if (bct->stateId != PBS_DISABLED) { // don't change states if disabled bct->stateId = PBS_PRESSED; - InvalidateRect(bct->hwnd, NULL, TRUE); + InvalidateRect(bct->hwnd, NULL, TRUE); } break; @@ -535,32 +533,32 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, bct->stateId = PBS_HOT; else bct->stateId = PBS_NORMAL; - InvalidateRect(bct->hwnd, NULL, TRUE); + InvalidateRect(bct->hwnd, NULL, TRUE); } // Tell your daddy you got clicked. - SendMessage(GetParent(hwndDlg), WM_COMMAND, MAKELONG(GetDlgCtrlID(hwndDlg), BN_CLICKED), (LPARAM) hwndDlg); + SendMessage(GetParent(hwndDlg), WM_COMMAND, MAKELONG(GetDlgCtrlID(hwndDlg), BN_CLICKED), (LPARAM) hwndDlg); break; case WM_MOUSEMOVE: if (bct->stateId == PBS_NORMAL) { bct->stateId = PBS_HOT; - InvalidateRect(bct->hwnd, NULL, TRUE); + InvalidateRect(bct->hwnd, NULL, TRUE); } - // Call timer, used to start cheesy TrackMouseEvent faker - SetTimer(hwndDlg, BUTTON_POLLID, BUTTON_POLLDELAY, NULL); + // Call timer, used to start cheesy TrackMouseEvent faker + SetTimer(hwndDlg, BUTTON_POLLID, BUTTON_POLLDELAY, NULL); break; case WM_TIMER: // use a timer to check if they have did a mouseout if (wParam == BUTTON_POLLID) { RECT rc; POINT pt; - GetWindowRect(hwndDlg, &rc); + GetWindowRect(hwndDlg, &rc); GetCursorPos(&pt); - if (!PtInRect(&rc, pt)) { - // mouse must be gone, trigger mouse leave - PostMessage(hwndDlg, WM_MOUSELEAVE, 0, 0L); - KillTimer(hwndDlg, BUTTON_POLLID); + if (!PtInRect(&rc, pt)) { + // mouse must be gone, trigger mouse leave + PostMessage(hwndDlg, WM_MOUSELEAVE, 0, 0L); + KillTimer(hwndDlg, BUTTON_POLLID); } } break; @@ -577,10 +575,10 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, ti.uFlags = TTF_IDISHWND; ti.hwnd = bct->hwnd; ti.uId = (UINT) bct->hwnd; - if (SendMessage(hwndToolTips, TTM_GETTOOLINFO, 0, (LPARAM) &ti)) - SendMessage(hwndToolTips, TTM_DELTOOL, 0, (LPARAM) &ti); + if (SendMessage(hwndToolTips, TTM_GETTOOLINFO, 0, (LPARAM) &ti)) + SendMessage(hwndToolTips, TTM_DELTOOL, 0, (LPARAM) &ti); - if (SendMessage(hwndToolTips, TTM_GETTOOLCOUNT, 0, (LPARAM) &ti) == 0) { + if (SendMessage(hwndToolTips, TTM_GETTOOLCOUNT, 0, (LPARAM) &ti) == 0) { DestroyWindow(hwndToolTips); hwndToolTips = NULL; } @@ -591,11 +589,11 @@ static LRESULT CALLBACK TSButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, DestroyTheme(bct); free(bct); } - SetWindowLongPtr(hwndDlg, 0, (LONG) NULL); + SetWindowLongPtr(hwndDlg, 0, (LONG) NULL); break; // DONT! fall thru } - return DefWindowProc(hwndDlg, msg, wParam, lParam); + return DefWindowProc(hwndDlg, msg, wParam, lParam); } ///////////////////////////////////////////////////////////////////////////////////////// @@ -609,7 +607,7 @@ int LoadCLCButtonModule(void) wc.cbSize = sizeof(wc); wc.lpszClassName = "CLCButtonClass"; wc.lpfnWndProc = TSButtonWndProc; - wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.cbWndExtra = sizeof(MButtonCtrl *); wc.hbrBackground = 0; wc.style = CS_GLOBALCLASS; @@ -618,7 +616,7 @@ int LoadCLCButtonModule(void) return 0; } -int UnloadTSButtonModule(WPARAM wParam, LPARAM lParam) +int UnloadTSButtonModule(WPARAM wParam, LPARAM lParam) { DeleteCriticalSection(&csTips); return 0; diff --git a/plugins/TopToolBar/InternalButtons.cpp b/plugins/TopToolBar/InternalButtons.cpp index d377053ee1..38108823e8 100644 --- a/plugins/TopToolBar/InternalButtons.cpp +++ b/plugins/TopToolBar/InternalButtons.cpp @@ -36,7 +36,7 @@ int OnSettingChanging(WPARAM wParam, LPARAM lParam) return 0; DBCONTACTWRITESETTING *dbcws = (DBCONTACTWRITESETTING *)lParam; - if (dbcws == NULL) + if (dbcws == NULL) return 0; if ( !strcmp(dbcws->szModule, "CList")) { @@ -132,7 +132,7 @@ int UnLoadInternalButtons() bool framesexists = FALSE; int windhandle; -LRESULT CALLBACK TestProczzz(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) +LRESULT CALLBACK TestProczzz(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_CREATE: @@ -149,20 +149,20 @@ LRESULT CALLBACK TestProczzz(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPara PAINTSTRUCT lp; HDC hdc = BeginPaint(hwnd, &lp); if (hdc) { - char buf[255]; - wsprintf(buf, "%d", GetTickCount()); - TextOutA(hdc, 4, 4, buf, strlen(buf)); + TCHAR buf[255]; + wsprintf(buf, _T("%d"), GetTickCount()); + TextOut(hdc, 4, 4, buf, lstrlen(buf)); EndPaint(hwnd, &lp); } return 0; } } - return(DefWindowProc(hwnd, msg, wParam, lParam)); + return(DefWindowProc(hwnd, msg, wParam, lParam)); } bool first = TRUE; -char pluginname[] = "SimpleClassName"; +TCHAR pluginname[] = _T("SimpleClassName"); INT_PTR test(WPARAM wParam, LPARAM lParam) { @@ -170,7 +170,7 @@ INT_PTR test(WPARAM wParam, LPARAM lParam) WNDCLASS wndclass = { 0 }; wndclass.lpfnWndProc = TestProczzz; wndclass.hInstance = hInst; - wndclass.hCursor = LoadCursor (NULL, IDC_ARROW); + wndclass.hCursor = LoadCursor (NULL, IDC_ARROW); wndclass.hbrBackground = (HBRUSH)(COLOR_3DFACE+1);//NULL;//(HBRUSH)(COLOR_3DFACE+1); wndclass.lpszClassName = pluginname; RegisterClass(&wndclass); @@ -190,7 +190,7 @@ INT_PTR test(WPARAM wParam, LPARAM lParam) CLISTFrame Frame = { 0 }; Frame.name = (char *)malloc(255); memset(Frame.name, 0, 255); - memcpy(Frame.name, pluginname, sizeof(pluginname)); + memcpy(Frame.name, pluginname, SIZEOF(pluginname)); Frame.cbSize = sizeof(Frame); Frame.hWnd = pluginwind; Frame.align = alTop; @@ -234,8 +234,6 @@ int LoadInternalButtons(HWND hwnd) ttb.name = "Show only Online Users"; hOnlineBut = (HANDLE)TTBAddButton((WPARAM)&ttb, 0); - memset(&ttb, 0, sizeof(ttb)); - ttb.cbSize = sizeof(ttb); ttb.hIconUp = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_GROUPSUP), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); ttb.hIconDn = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_GROUPSDN), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); ttb.dwFlags = (ShowGroups?TTBBF_PUSHED:0)|TTBBF_VISIBLE|TTBBF_SHOWTOOLTIP; @@ -244,19 +242,14 @@ int LoadInternalButtons(HWND hwnd) ttb.name = "Groups On/Off"; hGroupBut = (HANDLE)TTBAddButton((WPARAM)&ttb, 0); - memset(&ttb, 0, sizeof(ttb)); - ttb.cbSize = sizeof(ttb); ttb.hIconUp = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_SOUNDUP), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); ttb.hIconDn = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_SOUNDDN), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); - ttb.dwFlags = (SoundsEnabled?TTBBF_PUSHED:0)|TTBBF_VISIBLE|TTBBF_SHOWTOOLTIP; ttb.pszServiceDown = TTBI_SOUNDSONOFF; ttb.pszServiceUp = TTBI_SOUNDSONOFF; ttb.name = "Sounds Enable/Disable"; hSoundsBut = (HANDLE)TTBAddButton((WPARAM)&ttb, 0); - memset(&ttb, 0, sizeof(ttb)); - ttb.cbSize = sizeof(ttb); ttb.hIconUp = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_OPTIONSUP), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); ttb.hIconDn = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_OPTIONSDN), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); ttb.dwFlags = TTBBF_VISIBLE|TTBBF_SHOWTOOLTIP; @@ -265,19 +258,14 @@ int LoadInternalButtons(HWND hwnd) ttb.name = "Show Options Page"; hOptionsBut = (HANDLE)TTBAddButton((WPARAM)&ttb, 0); - memset(&ttb, 0, sizeof(ttb)); - ttb.cbSize = sizeof(ttb); ttb.hIconUp = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MINIMIZEUP), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); ttb.hIconDn = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MINIMIZEDN), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); - ttb.dwFlags = TTBBF_VISIBLE; ttb.pszServiceDown = TTBI_MINIMIZEBUTT; ttb.pszServiceUp = TTBI_MINIMIZEBUTT; ttb.name = "Minimize Button"; hMinimizeBut = (HANDLE)TTBAddButton((WPARAM)&ttb, 0); - memset(&ttb, 0, sizeof(ttb)); - ttb.cbSize = sizeof(ttb); ttb.hIconUp = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_FINDADDUP), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); ttb.hIconDn = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_FINDADDDN), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); ttb.dwFlags = TTBBF_VISIBLE; @@ -286,8 +274,6 @@ int LoadInternalButtons(HWND hwnd) ttb.name = "Find/Add Contacts"; hFindUsers = (HANDLE)TTBAddButton((WPARAM)&ttb, 0); - memset(&ttb, 0, sizeof(ttb)); - ttb.cbSize = sizeof(ttb); ttb.hIconUp = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MIRANDAUP), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); ttb.hIconDn = (HICON)LoadImage(hInst, MAKEINTRESOURCE(IDI_MIRANDADN), IMAGE_ICON, 16, 16, LR_DEFAULTCOLOR); ttb.dwFlags = TTBBF_VISIBLE|TTBBF_SHOWTOOLTIP; diff --git a/plugins/TopToolBar/TopToolBar.vcxproj b/plugins/TopToolBar/TopToolBar.vcxproj index 4987149c7e..ff34f3083f 100644 --- a/plugins/TopToolBar/TopToolBar.vcxproj +++ b/plugins/TopToolBar/TopToolBar.vcxproj @@ -25,24 +25,24 @@ DynamicLibrary false - MultiByte + Unicode true DynamicLibrary false - MultiByte + Unicode true DynamicLibrary false - MultiByte + Unicode DynamicLibrary false - MultiByte + Unicode diff --git a/plugins/TopToolBar/button.cpp b/plugins/TopToolBar/button.cpp index 54bf8bf816..c783426a85 100644 --- a/plugins/TopToolBar/button.cpp +++ b/plugins/TopToolBar/button.cpp @@ -34,7 +34,7 @@ typedef struct { int pbState; HANDLE hThemeButton; HANDLE hThemeToolbar; - char cHot; + TCHAR cHot; int flatBtn; } MButtonCtrl; @@ -60,7 +60,7 @@ static int ThemeSupport() { if (IsWinVerXPPlus()) { if (!themeAPIHandle) { - themeAPIHandle = GetModuleHandle("uxtheme"); + themeAPIHandle = GetModuleHandleA("uxtheme"); if (themeAPIHandle) { MyOpenThemeData = (HANDLE (WINAPI *)(HWND,LPCWSTR))MGPROC("OpenThemeData"); MyCloseThemeData = (HRESULT (WINAPI *)(HANDLE))MGPROC("CloseThemeData"); @@ -204,11 +204,9 @@ static void PaintWorker(MButtonCtrl *ctl, HDC hdcPaint) } else if (ctl->hBitmap) { BITMAP bminfo; - int ix,iy; - GetObject(ctl->hBitmap, sizeof(bminfo), &bminfo); - ix = (rcClient.right-rcClient.left)/2 - (bminfo.bmWidth/2); - iy = (rcClient.bottom-rcClient.top)/2 - (bminfo.bmHeight/2); + int ix = (rcClient.right-rcClient.left)/2 - (bminfo.bmWidth/2); + int iy = (rcClient.bottom-rcClient.top)/2 - (bminfo.bmHeight/2); if (ctl->stateId == PBS_PRESSED) { ix++; iy++; @@ -217,12 +215,12 @@ static void PaintWorker(MButtonCtrl *ctl, HDC hdcPaint) } else if (GetWindowTextLength(ctl->hwnd)) { // Draw the text and optinally the arrow - char szText[MAX_PATH]; + TCHAR szText[MAX_PATH]; SIZE sz; RECT rcText; CopyRect(&rcText, &rcClient); - GetWindowText(ctl->hwnd, szText, sizeof(szText)); + GetWindowText(ctl->hwnd, szText, SIZEOF(szText)); SetBkMode(hdcMem, TRANSPARENT); HFONT hOldFont = (HFONT)SelectObject(hdcMem, ctl->hFont); // XP w/themes doesn't used the glossy disabled text. Is it always using COLOR_GRAYTEXT? Seems so. @@ -230,8 +228,7 @@ static void PaintWorker(MButtonCtrl *ctl, HDC hdcPaint) GetTextExtentPoint32(hdcMem, szText, lstrlen(szText), &sz); if (ctl->cHot) { SIZE szHot; - - GetTextExtentPoint32(hdcMem, "&", 1, &szHot); + GetTextExtentPoint32(hdcMem, _T("&"), 1, &szHot); sz.cx -= szHot.cx; } if (ctl->arrow) { @@ -248,7 +245,7 @@ static void PaintWorker(MButtonCtrl *ctl, HDC hdcPaint) } } -static LRESULT CALLBACK MButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +static LRESULT CALLBACK MButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { MButtonCtrl* bct = (MButtonCtrl *)GetWindowLongPtr(hwndDlg, 0); switch(msg) { @@ -393,7 +390,7 @@ static LRESULT CALLBACK MButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, L if (wParam) { EnterCriticalSection(&csTips); if (!hwndToolTips) - hwndToolTips = CreateWindowEx(WS_EX_TOPMOST, TOOLTIPS_CLASS, "", WS_POPUP, 0, 0, 0, 0, NULL, NULL, GetModuleHandle(NULL), NULL); + hwndToolTips = CreateWindowEx(WS_EX_TOPMOST, TOOLTIPS_CLASS, _T(""), WS_POPUP, 0, 0, 0, 0, NULL, NULL, GetModuleHandle(NULL), NULL); TOOLINFO ti = { 0 }; ti.cbSize = sizeof(ti); @@ -405,7 +402,7 @@ static LRESULT CALLBACK MButtonWndProc(HWND hwndDlg, UINT msg, WPARAM wParam, L ti.uFlags = TTF_IDISHWND|TTF_SUBCLASS; ti.uId = (UINT)bct->hwnd; - ti.lpszText=(char*)wParam; + ti.lpszText = ( LPTSTR )wParam; SendMessage(hwndToolTips,TTM_ADDTOOL,0,(LPARAM)&ti); LeaveCriticalSection(&csTips); } @@ -518,9 +515,7 @@ int UnloadButtonModule(WPARAM wParam, LPARAM lParam) int LoadButtonModule(void) { - WNDCLASSEX wc; - - ZeroMemory(&wc, sizeof(wc)); + WNDCLASSEX wc = { 0 }; wc.cbSize = sizeof(wc); wc.lpszClassName = MYMIRANDABUTTONCLASS; wc.lpfnWndProc = MButtonWndProc; diff --git a/plugins/TopToolBar/common.h b/plugins/TopToolBar/common.h index 92d715701b..5bda9975c3 100644 --- a/plugins/TopToolBar/common.h +++ b/plugins/TopToolBar/common.h @@ -49,7 +49,8 @@ int ttbOptionsChanged(); int ArrangeButtons(); int RecreateWindows(); -typedef struct { +struct TopButtonInt +{ HWND hwnd; HWND hwndTip; int id; @@ -62,24 +63,23 @@ typedef struct { HICON hIconUp, hIconDn; char *pszServiceUp, *pszServiceDown; - char *tooltip; char *name; - + TCHAR *tooltip; + LPARAM lParamUp; WPARAM wParamUp; LPARAM lParamDown; WPARAM wParamDown; WORD arrangedpos; - char *UserDefinedbmUp; - char *UserDefinedbmDown; - + TCHAR *UserDefinedbmUp; + TCHAR *UserDefinedbmDown; +}; -}TopButtonInt; - -typedef struct tagSortData { +struct SortData +{ int oldpos; int arrangeval; -} SortData; +}; #define MAX_BUTTONS 64 //#define BUTTWIDTH 20 @@ -87,11 +87,12 @@ typedef struct tagSortData { //#define BUTTHEIGHT 16 #define SEPWIDTH 3 -typedef struct tagButtonOptData { +struct ButtonOptData +{ char *name; int pos; bool show; -} ButtonOptData; +}; extern bool OptionsOpened; extern HWND OptionshWnd; @@ -100,7 +101,7 @@ int OptionsPageRebuild(); void lockbut(); void ulockbut(); -//return - 0 success, -1 on error +//return - 0 success, -1 on error #define TTB_ADDSEPARATOR "TTB/AddSeparator" //wparam sepid #define TTB_REMOVESEPARATOR "TTB/RemoveSeparator" @@ -127,7 +128,7 @@ char *AS(char *str, const char *setting, char *addstr) #define TTB_ADDLBUTTON "TTB/AddLButton" #define TTB_REMOVELBUTTON "TTB/RemoveLButton" -#define MYMIRANDABUTTONCLASS "MyMIRANDABUTTONCLASS" +#define MYMIRANDABUTTONCLASS _T("MyMIRANDABUTTONCLASS") int LoadInternalButtons( HWND ); int UnLoadInternalButtons( void ); @@ -153,13 +154,12 @@ INT_PTR GetLButton(WPARAM, LPARAM); INT_PTR InsertLBut(int id); -typedef struct +struct LBUTOPT { int hframe; - char *lpath; + TCHAR *lpath; char *name; -} - LBUTOPT; +}; int LoadCLCButtonModule(void); #define BM_SETPRIVATEICON (WM_USER + 6) diff --git a/plugins/TopToolBar/launchbt.cpp b/plugins/TopToolBar/launchbt.cpp index a5becaeba7..378f92048d 100644 --- a/plugins/TopToolBar/launchbt.cpp +++ b/plugins/TopToolBar/launchbt.cpp @@ -35,10 +35,10 @@ INT_PTR GetLButton(WPARAM wParam, LPARAM lParam) return -1; LBUTOPT *lbo = ( LBUTOPT* )lParam; - if (lbo == NULL) + if (lbo == NULL) return -1; - if (LBUTS[wParam].hframe == 0) + if (LBUTS[wParam].hframe == 0) return -1; *lbo = LBUTS[wParam]; @@ -53,10 +53,10 @@ INT_PTR ModifyLButton(WPARAM wParam, LPARAM lParam) return -1; LBUTOPT *lbo = ( LBUTOPT* )lParam; - if (lbo == NULL) + if (lbo == NULL) return -1; - if (LBUTS[wParam].hframe == 0) + if (LBUTS[wParam].hframe == 0) return -1; DeleteLBut(wParam, 0); @@ -68,14 +68,14 @@ INT_PTR ModifyLButton(WPARAM wParam, LPARAM lParam) if (lbo->name != NULL) LBUTS[wParam].name = _strdup(lbo->name); if (lbo->lpath != NULL) - LBUTS[wParam].lpath = _strdup(lbo->lpath); + LBUTS[wParam].lpath = _tcsdup(lbo->lpath); LBUTS[wParam].hframe = InsertLBut(wParam); SaveAllLButs(); return 0; } -int InsertLBut(int id) +INT_PTR InsertLBut(int id) { HBITMAP DefLUp = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_LAUNCHDN)); HBITMAP DefLDn = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_LAUNCHUP)); @@ -113,56 +113,48 @@ int LoadAllLButs() char buf[255]; char buf1[10]; char fixname[255]; - int id, i; -// char *oldtb; + int id; //must be locked - memset(buf, 0, sizeof(buf)); + memset(buf, 0, SIZEOF(buf)); memset(LBUTS, 0, sizeof(LBUTS)); - for (i = 0;i 0 ) Buttons[butpos].dwFlags |= TTBBF_VISIBLE; - Buttons[butpos].UserDefinedbmDown = DBGetString(0, TTB_OPTDIR, AS(buf, Buttons[butpos].name, "_BmpDown")); - if ((Buttons[butpos].UserDefinedbmDown != NULL) && strlen(Buttons[butpos].UserDefinedbmDown) == 0) { + Buttons[butpos].UserDefinedbmDown = DBGetStringT(0, TTB_OPTDIR, AS(buf, Buttons[butpos].name, "_BmpDown")); + if ((Buttons[butpos].UserDefinedbmDown != NULL) && *Buttons[butpos].UserDefinedbmDown == 0) { free(Buttons[butpos].UserDefinedbmDown); Buttons[butpos].UserDefinedbmDown = NULL; } - Buttons[butpos].UserDefinedbmUp = DBGetString(0, TTB_OPTDIR, AS(buf, Buttons[butpos].name, "_BmpUp")); - if ((Buttons[butpos].UserDefinedbmUp != NULL) && strlen(Buttons[butpos].UserDefinedbmUp) == 0) { + Buttons[butpos].UserDefinedbmUp = DBGetStringT(0, TTB_OPTDIR, AS(buf, Buttons[butpos].name, "_BmpUp")); + if ((Buttons[butpos].UserDefinedbmUp != NULL) && *Buttons[butpos].UserDefinedbmUp == 0) { free(Buttons[butpos].UserDefinedbmUp); Buttons[butpos].UserDefinedbmUp = NULL; } @@ -245,7 +245,7 @@ static int UpdateToolTip(int bpos) bool nameexists(const char *name) { for (int i = 0; i < nButtonsCount; i++) - if (strcmp(Buttons[i].name, name) == 0) + if (strcmp(Buttons[i].name, name) == 0) return TRUE; return FALSE; @@ -258,7 +258,7 @@ HICON LoadIconFromLibrary(char *SectName, char *Name, char *Description, HICON h if (Name != NULL && *Name != 0) { char iconame[256]; - _snprintf(iconame, sizeof(iconame), "toptoolbar_%s", Name); + _snprintf(iconame, SIZEOF(iconame), "toptoolbar_%s", Name); if ( ServiceExists(MS_SKIN2_ADDICON)) { if (RegisterIt) { SKINICONDESC sid = {0}; @@ -268,12 +268,12 @@ HICON LoadIconFromLibrary(char *SectName, char *Name, char *Description, HICON h sid.pszDefaultFile = NULL; sid.pszDescription = Description; sid.hDefaultIcon = hIcon; - CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid); + CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid); if (RegistredOk) *RegistredOk = TRUE; } - return ((HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)iconame)); + return ((HICON)CallService(MS_SKIN2_GETICON, 0, (LPARAM)iconame)); } } @@ -283,9 +283,9 @@ HICON LoadIconFromLibrary(char *SectName, char *Name, char *Description, HICON h int CreateOneWindow(int ButtonPos) { if (DBGetContactSettingByte(0, TTB_OPTDIR, "UseMirandaButtonClass", UseMirandaButtonClassDefaultValue) && !(Buttons[ButtonPos].dwFlags & TTBBF_ISSEPARATOR)) - Buttons[ButtonPos].hwnd = CreateWindow(MYMIRANDABUTTONCLASS, "", BS_PUSHBUTTON|WS_CHILD|WS_TABSTOP|SS_NOTIFY, 0, 0, BUTTWIDTH, BUTTHEIGHT, hwndTopToolBar, NULL, hInst, 0); + Buttons[ButtonPos].hwnd = CreateWindow(MYMIRANDABUTTONCLASS, _T(""), BS_PUSHBUTTON|WS_CHILD|WS_TABSTOP|SS_NOTIFY, 0, 0, BUTTWIDTH, BUTTHEIGHT, hwndTopToolBar, NULL, hInst, 0); else - Buttons[ButtonPos].hwnd = CreateWindow("STATIC", "", WS_CHILD|SS_NOTIFY, 0, 0, BUTTWIDTH, BUTTHEIGHT, hwndTopToolBar, NULL, hInst, 0); + Buttons[ButtonPos].hwnd = CreateWindow( _T("STATIC"), _T(""), WS_CHILD|SS_NOTIFY, 0, 0, BUTTWIDTH, BUTTHEIGHT, hwndTopToolBar, NULL, hInst, 0); SetWindowLongPtr(Buttons[ButtonPos].hwnd, GWLP_USERDATA, Buttons[ButtonPos].id); if (DBGetContactSettingByte(0, TTB_OPTDIR, "UseFlatButton", 1)) @@ -297,30 +297,29 @@ int CreateOneWindow(int ButtonPos) INT_PTR TTBAddButton(WPARAM wParam, LPARAM lParam) { int i, retval; - TTBButtonV2 but; - if (wParam == 0) + if (wParam == 0) return -1; - if (hwndContactList == 0) + + if (hwndContactList == 0) hwndContactList = (HWND)CallService(MS_CLUI_GETHWND, 0, 0); //oops clui even now not loaded...sorry no buttons available - if (hwndContactList == 0) + if (hwndContactList == 0) return -1; lockbut(); - if (nButtonsCount == MAX_BUTTONS) + if (nButtonsCount == MAX_BUTTONS) return -1; i = nButtonsCount; - memset(&but, 0, sizeof(but)); - - if (((TTBButton*)wParam)->cbSize == sizeof(TTBButton)) + TTBButtonV2 but = { 0 }; + if (((TTBButton*)wParam)->cbSize == sizeof(TTBButton)) memcpy(&but, (void*)wParam, sizeof(TTBButton)); - if (((TTBButton*)wParam)->cbSize == sizeof(TTBButtonV2)) + if (((TTBButton*)wParam)->cbSize == sizeof(TTBButtonV2)) memcpy(&but, (void*)wParam, sizeof(TTBButtonV2)); - if ( but.name == NULL|| nameexists(but.name)) { + if ( but.name == NULL|| nameexists(but.name)) { ulockbut(); return -1; } @@ -363,18 +362,18 @@ INT_PTR TTBAddButton(WPARAM wParam, LPARAM lParam) Buttons[i].hIconDn = LoadIconFromLibrary("TopToolBar", buf, buf, but.hIconUp, TRUE, NULL); } - Buttons[i].hwndTip = CreateWindowEx(0, TOOLTIPS_CLASS, NULL, + Buttons[i].hwndTip = CreateWindowEx(0, TOOLTIPS_CLASS, NULL, WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP, - CW_USEDEFAULT, CW_USEDEFAULT, - CW_USEDEFAULT, CW_USEDEFAULT, - hwndTopToolBar, NULL, hInst, + CW_USEDEFAULT, CW_USEDEFAULT, + CW_USEDEFAULT, CW_USEDEFAULT, + hwndTopToolBar, NULL, hInst, NULL); - SetWindowPos(Buttons[i].hwndTip, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); + SetWindowPos(Buttons[i].hwndTip, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE); TOOLINFO ti = { 0 }; ti.cbSize = sizeof(ti); - ti.lpszText = ""; + ti.lpszText = _T(""); ti.hinst = hInst; ti.uFlags = TTF_IDISHWND|TTF_SUBCLASS ; ti.uId = (UINT_PTR)Buttons[i].hwnd; @@ -463,7 +462,7 @@ int ArrangeButtons() int i; int newheight, cnt, perline; - if (StopArrange == TRUE) + if (StopArrange == TRUE) return 0; BUTTHEIGHT = DBGetContactSettingByte(0, TTB_OPTDIR, "BUTTHEIGHT", 16); @@ -492,11 +491,11 @@ int ArrangeButtons() visbut++; } - if (winrc.left == 0) + if (winrc.left == 0) return 0; perline = winrc.left/(BUTTWIDTH+1); - if (perline == 0) + if (perline == 0) perline = 1; cnt = (visbut)/perline; @@ -522,7 +521,7 @@ int ArrangeButtons() InvalidateRect(Buttons[arrangedbuts[i].oldpos].hwnd, NULL, TRUE); //lastxpos += BUTTWIDTH+1; - if (i == v-1) + if (i == v-1) break; if ( !(Buttons[arrangedbuts[i+1].oldpos].dwFlags & TTBBF_VISIBLE)) continue; @@ -553,7 +552,7 @@ int ArrangeButtons() int SetButtBitmap(int pos) { int t = IMAGE_BITMAP; - char *curname = (Buttons[pos].bPushed)?(Buttons[pos].UserDefinedbmDown):(Buttons[pos].UserDefinedbmUp); + TCHAR *curname = (Buttons[pos].bPushed)?(Buttons[pos].UserDefinedbmDown):(Buttons[pos].UserDefinedbmUp); int curstyle = GetWindowLongPtr(Buttons[pos].hwnd, GWL_STYLE); curstyle &= (~SS_BITMAP); @@ -561,20 +560,20 @@ int SetButtBitmap(int pos) if (!UseIcoLib||(Buttons[pos].dwFlags&TTBBF_ISSEPARATOR)) { if (curname != NULL) { - if (strstr(curname, ".ico")) + if ( _tcsstr(curname, _T(".ico"))) t = IMAGE_ICON; - curstyle |= (t == IMAGE_ICON || UseIcoLib) ? SS_ICON : SS_BITMAP; + curstyle |= (t == IMAGE_ICON || UseIcoLib) ? SS_ICON : SS_BITMAP; SetWindowLongPtr(Buttons[pos].hwnd, GWL_STYLE, curstyle); } - else SetWindowLongPtr(Buttons[pos].hwnd, GWL_STYLE, curstyle|(Buttons[pos].hbBitmapDown == NULL?SS_ICON:SS_BITMAP)); + else SetWindowLongPtr(Buttons[pos].hwnd, GWL_STYLE, curstyle|(Buttons[pos].hbBitmapDown == NULL?SS_ICON:SS_BITMAP)); } else if (GetWindowLongPtr(Buttons[pos].hwnd, GWL_STYLE)&SS_ICON) SetWindowLongPtr(Buttons[pos].hwnd, GWL_STYLE, curstyle|SS_ICON); if ( !UseIcoLib||(Buttons[pos].dwFlags & TTBBF_ISSEPARATOR)) { if (!(Buttons[pos].dwFlags & TTBBF_DRAWBORDER)) { - if (Buttons[pos].hbBitmapDown == NULL) { + if (Buttons[pos].hbBitmapDown == NULL) { t = IMAGE_ICON; SendMessage(Buttons[pos].hwnd, STM_SETIMAGE, t, (LPARAM)((Buttons[pos].bPushed)?(Buttons[pos].hIconDn):(Buttons[pos].hIconUp))); SendMessage(Buttons[pos].hwnd, BM_SETIMAGE, t, (LPARAM)((Buttons[pos].bPushed)?(Buttons[pos].hIconDn):(Buttons[pos].hIconUp))); @@ -618,7 +617,7 @@ INT_PTR TTBGetState(WPARAM wParam, LPARAM lParam) return -1; } - int retval = (Buttons[pos].bPushed == TRUE) ? TTBST_PUSHED : TTBST_RELEASED; + int retval = (Buttons[pos].bPushed == TRUE) ? TTBST_PUSHED : TTBST_RELEASED; ulockbut(); return retval; } @@ -693,7 +692,7 @@ INT_PTR TTBSetOptions(WPARAM wParam, LPARAM lParam) switch(LOWORD(wParam)) { case TTBO_FLAGS: - if (Buttons[pos].dwFlags == lParam) + if (Buttons[pos].dwFlags == lParam) break; Buttons[pos].dwFlags = lParam; @@ -722,11 +721,11 @@ INT_PTR TTBSetOptions(WPARAM wParam, LPARAM lParam) break; case TTBO_TIPNAME: - if (lParam == 0) + if (lParam == 0) break; if (Buttons[pos].tooltip != NULL) free(Buttons[pos].tooltip); - Buttons[pos].tooltip = _strdup((LPCSTR)lParam); + Buttons[pos].tooltip = _tcsdup((LPCTSTR)lParam); UpdateToolTip(pos); retval = 1; break; @@ -780,7 +779,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) return TRUE; } -LRESULT CALLBACK TopToolBarProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) +LRESULT CALLBACK TopToolBarProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_CREATE: @@ -817,7 +816,7 @@ LRESULT CALLBACK TopToolBarProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP rcPaint = &(paintst.rcPaint); GetClientRect(hwnd, &clRect); - if (rcPaint == NULL) rcPaint = &clRect; + if (rcPaint == NULL) rcPaint = &clRect; y = -yScroll; hdcMem = CreateCompatibleDC(hdc); hBmpOsb = CreateBitmap(clRect.right, clRect.bottom, 1, GetDeviceCaps(hdc, BITSPIXEL), NULL); @@ -910,7 +909,7 @@ LRESULT CALLBACK TopToolBarProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP if (DBGetContactSettingByte(NULL, "CLUI", "ClientAreaDrag", 0)) { POINT pt; GetCursorPos(&pt); - return SendMessage(GetParent(hwnd), WM_SYSCOMMAND, SC_MOVE|HTCAPTION, MAKELPARAM(pt.x, pt.y)); + return SendMessage(GetParent(hwnd), WM_SYSCOMMAND, SC_MOVE|HTCAPTION, MAKELPARAM(pt.x, pt.y)); } return 0; @@ -918,7 +917,7 @@ LRESULT CALLBACK TopToolBarProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP return 0; case WM_COMMAND: - if ((HIWORD(wParam) == STN_CLICKED|| HIWORD(wParam) == STN_DBLCLK)) { + if ((HIWORD(wParam) == STN_CLICKED|| HIWORD(wParam) == STN_DBLCLK)) { int id = GetWindowLongPtr((HWND)lParam, GWLP_USERDATA); if (id != 0) { lockbut(); @@ -950,15 +949,15 @@ LRESULT CALLBACK TopToolBarProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP break; default: - return DefWindowProc(hwnd, msg, wParam, lParam); + return DefWindowProc(hwnd, msg, wParam, lParam); } return(TRUE); } +static TCHAR pluginname[] = _T("TopToolBar"); + int addTopToolBarWindow(HWND parent) { - char pluginname[] = "TopToolBar"; - WNDCLASS wndclass; wndclass.style = 0; wndclass.lpfnWndProc = TopToolBarProc; @@ -966,7 +965,7 @@ int addTopToolBarWindow(HWND parent) wndclass.cbWndExtra = 0; wndclass.hInstance = hInst; wndclass.hIcon = NULL; - wndclass.hCursor = LoadCursor (NULL, IDC_ARROW); + wndclass.hCursor = LoadCursor (NULL, IDC_ARROW); wndclass.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);//NULL;//(HBRUSH)(COLOR_3DFACE+1); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = pluginname; @@ -978,31 +977,26 @@ int addTopToolBarWindow(HWND parent) ttbOptionsChanged(); CLISTFrame Frame = { 0 }; - Frame.name = (char *)malloc(255); - memset(Frame.name, 0, 255); - memcpy(Frame.name, pluginname, sizeof(pluginname)); Frame.cbSize = sizeof(Frame); + Frame.tname = pluginname; Frame.hWnd = pluginwind; Frame.align = alTop; - Frame.Flags = F_VISIBLE|F_NOBORDER|F_LOCKED; + Frame.Flags = F_VISIBLE | F_NOBORDER | F_LOCKED | F_TCHAR; Frame.height = 18; - - int retval = CallService(MS_CLIST_FRAMES_ADDFRAME, (WPARAM)&Frame, 0); - free(Frame.name); - return retval; + return (int)CallService(MS_CLIST_FRAMES_ADDFRAME, (WPARAM)&Frame, 0); } VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime) { KillTimer(0, idEvent); - NotifyEventHooks(hHookTTBModuleLoaded, 0, 0); + NotifyEventHooks(hHookTTBModuleLoaded, 0, 0); } static INT_PTR OnEventFire(WPARAM wParam, LPARAM lParam) { CallService(MS_SYSTEM_REMOVEWAIT, wParam, 0); StopArrange = FALSE; - NotifyEventHooks(hHookTTBModuleLoaded, 0, 0); + NotifyEventHooks(hHookTTBModuleLoaded, 0, 0); return 0; } @@ -1031,23 +1025,12 @@ static int OnBGChange(WPARAM wParam, LPARAM lParam) static int OnmodulesLoad(WPARAM wParam, LPARAM lParam) { - int ex = 0; - - hwndContactList = (HWND)CallService(MS_CLUI_GETHWND, 0, 0); - if (!ServiceExists(MS_CLIST_FRAMES_ADDFRAME)) { - MessageBox(0, "Frames Services not found - plugin disabled.You need MultiWindow plugin.", "TopToolBar", 0); - return 0; - ex = 1; - } - if (!ServiceExists(MS_CLUI_GETHWNDTREE)) { - MessageBox(0, "MS_CLUI_GETHWNDTREE Service not found - plugin disabled", "TopToolBar", 0); + MessageBox(0, TranslateT("Frames Services not found - plugin disabled.You need MultiWindow plugin."), _T("TopToolBar"), 0); return 0; - ex = 1; } - if (ex == 1) - return 0; + hwndContactList = (HWND)CallService(MS_CLUI_GETHWND, 0, 0); OptionsOpened = false; CreateServiceFunction(MS_TTB_ADDBUTTON, TTBAddButton); @@ -1092,7 +1075,7 @@ static int OnmodulesLoad(WPARAM wParam, LPARAM lParam) ///////////////////////////////////////////////////////////////////////////////////////// -static const MUUID interfaces[] = {MIID_TTB, MIID_LAST}; +static const MUUID interfaces[] = {MIID_TTB, MIID_LAST}; extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void) { diff --git a/plugins/TopToolBar/main.rc b/plugins/TopToolBar/main.rc index 077a62be21..72857524c4 100644 --- a/plugins/TopToolBar/main.rc +++ b/plugins/TopToolBar/main.rc @@ -17,7 +17,7 @@ #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU) #ifdef _WIN32 -LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #pragma code_page(1251) #endif //_WIN32 @@ -26,9 +26,9 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL // Dialog // -IDD_OPT_BUTORDER DIALOGEX 0, 0, 300, 231 +IDD_OPT_BUTORDER DIALOGEX 0, 0, 300, 231 STYLE DS_SETFONT | WS_CHILD -FONT 8, "MS Sans Serif", 0, 0, 0x1 +FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN GROUPBOX "Buttons Order && Visibility", IDC_STATIC, 10, 0, 150, 180 CONTROL "Tree1", IDC_BUTTONORDERTREE, "SysTreeView32", TVS_NOTOOLTIPS | WS_BORDER | WS_TABSTOP, 20, 25, 132, 100 @@ -71,18 +71,18 @@ END #ifdef APSTUDIO_INVOKED GUIDELINES DESIGNINFO BEGIN - IDD_OPT_BUTORDER, DIALOG + IDD_OPT_BUTORDER, DIALOG BEGIN - VERTGUIDE, 8 - VERTGUIDE, 140 - VERTGUIDE, 158 - VERTGUIDE, 290 - VERTGUIDE, 297 - BOTTOMMARGIN, 229 - HORZGUIDE, 17 - HORZGUIDE, 38 - HORZGUIDE, 133 - HORZGUIDE, 138 + VERTGUIDE, 8 + VERTGUIDE, 140 + VERTGUIDE, 158 + VERTGUIDE, 290 + VERTGUIDE, 297 + BOTTOMMARGIN, 229 + HORZGUIDE, 17 + HORZGUIDE, 38 + HORZGUIDE, 133 + HORZGUIDE, 138 END END #endif // APSTUDIO_INVOKED @@ -96,7 +96,7 @@ END #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS) #ifdef _WIN32 -LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT #pragma code_page(1251) #endif //_WIN32 @@ -105,9 +105,9 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT // Dialog // -IDD_FRAMEPLUG2 DIALOG 0, 0, 211, 11 +IDD_FRAMEPLUG2 DIALOG 0, 0, 211, 11 STYLE DS_SETFONT | WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN -FONT 8, "MS Sans Serif" +FONT 8, "MS Sans Serif" BEGIN CONTROL 262, IDC_P2ONLINEBUTT, "Static", SS_BITMAP | SS_NOTIFY | NOT WS_VISIBLE, 55, 0, 13, 10 CONTROL 269, IDC_P2GROUPBUTT, "Static", SS_BITMAP | SS_NOTIFY | NOT WS_VISIBLE, 70, 0, 13, 10 @@ -122,10 +122,10 @@ END #ifdef APSTUDIO_INVOKED GUIDELINES DESIGNINFO BEGIN - IDD_FRAMEPLUG2, DIALOG + IDD_FRAMEPLUG2, DIALOG BEGIN - RIGHTMARGIN, 197 - BOTTOMMARGIN, 10 + RIGHTMARGIN, 197 + BOTTOMMARGIN, 10 END END #endif // APSTUDIO_INVOKED @@ -210,18 +210,18 @@ BEGIN BEGIN BLOCK "041904b0" BEGIN - VALUE "FileDescription", "ToptoolBar adds buttons in top frame for fast access." - VALUE "FileVersion", "0.7.3.1" - VALUE "InternalName", "TopToolBar" - VALUE "LegalCopyright", "© 2003-2008 Bethoven" - VALUE "OriginalFilename", "TopToolbar.dll" - VALUE "ProductName", "TopToolBar" - VALUE "ProductVersion", "0.7.3.1" + VALUE "FileDescription", "ToptoolBar adds buttons in top frame for fast access." + VALUE "FileVersion", "0.7.3.1" + VALUE "InternalName", "TopToolBar" + VALUE "LegalCopyright", "© 2003-2008 Bethoven" + VALUE "OriginalFilename", "TopToolbar.dll" + VALUE "ProductName", "TopToolBar" + VALUE "ProductVersion", "0.7.3.1" END END BLOCK "VarFileInfo" BEGIN - VALUE "Translation", 0x419, 1200 + VALUE "Translation", 0x419, 1200 END END @@ -234,7 +234,7 @@ END #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENG) #ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK #pragma code_page(1252) #endif //_WIN32 @@ -256,7 +256,7 @@ IDI_TICK ICON "icos\\notick1.ico" #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENC) #ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN #pragma code_page(1252) #endif //_WIN32 @@ -265,10 +265,10 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN // Dialog // -IDD_OPT_TTBBKG DIALOGEX 0, 0, 235, 132 +IDD_OPT_TTBBKG DIALOGEX 0, 0, 235, 132 STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_VISIBLE EXSTYLE WS_EX_CONTROLPARENT -FONT 8, "MS Shell Dlg", 0, 0, 0x1 +FONT 8, "MS Shell Dlg", 0, 0, 0x1 BEGIN GROUPBOX "TopToolBar Background", IDC_STATIC, 4, 4, 227, 124 LTEXT "Background colour:", IDC_STATIC, 12, 20, 72, 8, NOT WS_GROUP @@ -295,21 +295,21 @@ END #ifdef APSTUDIO_INVOKED GUIDELINES DESIGNINFO BEGIN - IDD_OPT_TTBBKG, DIALOG + IDD_OPT_TTBBKG, DIALOG BEGIN - LEFTMARGIN, 4 - RIGHTMARGIN, 231 - VERTGUIDE, 12 - VERTGUIDE, 22 - VERTGUIDE, 122 - TOPMARGIN, 4 - BOTTOMMARGIN, 128 - HORZGUIDE, 24 - HORZGUIDE, 40 - HORZGUIDE, 73 - HORZGUIDE, 89 - HORZGUIDE, 102 - HORZGUIDE, 115 + LEFTMARGIN, 4 + RIGHTMARGIN, 231 + VERTGUIDE, 12 + VERTGUIDE, 22 + VERTGUIDE, 122 + TOPMARGIN, 4 + BOTTOMMARGIN, 128 + HORZGUIDE, 24 + HORZGUIDE, 40 + HORZGUIDE, 73 + HORZGUIDE, 89 + HORZGUIDE, 102 + HORZGUIDE, 115 END END #endif // APSTUDIO_INVOKED diff --git a/plugins/TopToolBar/separators.cpp b/plugins/TopToolBar/separators.cpp index 28cd67857e..ae122b1b71 100644 --- a/plugins/TopToolBar/separators.cpp +++ b/plugins/TopToolBar/separators.cpp @@ -13,7 +13,7 @@ int InsertSeparator(int id) HBITMAP Separator = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_SEP)); char buf[255]; - wsprintf(buf, "%s %d", Translate("Separator"), id); + wsprintfA(buf, "%s %d", Translate("Separator"), id); TTBButton ttb = { 0 }; ttb.cbSize = sizeof(ttb); @@ -57,7 +57,7 @@ int LoadAllSeparators() _itoa(i, buf1, 10); int id = DBGetContactSettingWord(0, TTB_OPTDIR, AS(buf, "Sep", buf1), -1); - if (id == i) + if (id == i) Separators[i] = InsertSeparator(i); } return 0; @@ -86,7 +86,7 @@ INT_PTR InsertNewFreeSeparator(WPARAM wParam, LPARAM lParam) { if (SeparatorCnt < MAXSEPS) { for (int i = 0; i < MAXSEPS; i++) { - if (Separators[i] == 0) { + if (Separators[i] == 0) { Separators[i] = InsertSeparator(i); SaveAllSeparators(); return 0; diff --git a/plugins/TopToolBar/ttbopt.cpp b/plugins/TopToolBar/ttbopt.cpp index aea347c2fe..6167f3e19e 100644 --- a/plugins/TopToolBar/ttbopt.cpp +++ b/plugins/TopToolBar/ttbopt.cpp @@ -2,7 +2,7 @@ #include #pragma hdrstop -static BOOL CALLBACK DlgProcTTBBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); +static INT_PTR CALLBACK DlgProcTTBBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam); extern int ttbOptionsChanged(); extern HINSTANCE hInst; @@ -20,42 +20,41 @@ struct OrderData HTREEITEM hDragItem; }; -char *SetEndSlash(char *str) +TCHAR *SetEndSlash(TCHAR *str) { - if (str == NULL || *str == 0) + if (str == NULL || *str == 0) return NULL; - char *outs = str; - if (str[strlen(str)-1] != '\\') { - outs = (char*)malloc(strlen(str)+3); - memset(outs, 0, strlen(str)+3); - strcat(outs, str); - outs[strlen(str)] = '\\'; + TCHAR *outs = str; + if (str[_tcslen(str)-1] != '\\') { + outs = (TCHAR*)calloc( sizeof(TCHAR), _tcslen(str)+3); + _tcscat(outs, str); + outs[_tcslen(str)] = '\\'; } return outs; } -bool FileExists(char *fname) +bool FileExists(TCHAR *fname) { WIN32_FIND_DATA wfd = { 0 }; HANDLE h = FindFirstFile(fname, &wfd); - if (h == INVALID_HANDLE_VALUE) + if (h == INVALID_HANDLE_VALUE) return FALSE; FindClose(h); return TRUE; } -char *ReplaceBadChar(char *str, char bad, char toreplace) +TCHAR *ReplaceBadChar(TCHAR *str, TCHAR bad, TCHAR toreplace) { - for (int i = 0; i < strlen(str); i++) - if (str[i] == bad) + for (int i = 0; str[i] != 0; i++) + if (str[i] == bad) str[i] = toreplace; return str; } -char *ReplaceAll(char *str) +TCHAR *ReplaceAll(TCHAR *str) { ReplaceBadChar(str, '\\', '_'); ReplaceBadChar(str, '/', '_'); @@ -69,42 +68,42 @@ char *ReplaceAll(char *str) return str; } -void AssignBitmapsFromDir(char *dir) +void AssignBitmapsFromDir(TCHAR *dir) { - if (dir == NULL || *dir == 0 ) + if (dir == NULL || *dir == 0 ) return; dir = SetEndSlash(dir); lockbut(); for (int i = 0; i < nButtonsCount; i++) { - char curnameUP[512], curnameDN[512], ChangedName[512]; - strcpy(ChangedName, Buttons[i].name); + TCHAR curnameUP[512], curnameDN[512], ChangedName[512]; + _tcscpy(ChangedName, _A2T(Buttons[i].name)); ReplaceAll(ChangedName); - wsprintf(curnameUP, "%s%s_UP.bmp", dir, ChangedName); - wsprintf(curnameDN, "%s%s_DN.bmp", dir, ChangedName); + wsprintf(curnameUP, _T("%s%s_UP.bmp"), dir, ChangedName); + wsprintf(curnameDN, _T("%s%s_DN.bmp"), dir, ChangedName); if ( FileExists(curnameUP)) { if (Buttons[i].UserDefinedbmUp != NULL){free(Buttons[i].UserDefinedbmUp);} - Buttons[i].UserDefinedbmUp = _strdup(curnameUP); + Buttons[i].UserDefinedbmUp = _tcsdup(curnameUP); } if ( FileExists(curnameDN)) { if (Buttons[i].UserDefinedbmDown != NULL){free(Buttons[i].UserDefinedbmDown);} - Buttons[i].UserDefinedbmDown = _strdup(curnameDN); + Buttons[i].UserDefinedbmDown = _tcsdup(curnameDN); } - wsprintf(curnameUP, "%s%s_UP.ico", dir, ChangedName); - wsprintf(curnameDN, "%s%s_DN.ico", dir, ChangedName); + wsprintf(curnameUP, _T("%s%s_UP.ico"), dir, ChangedName); + wsprintf(curnameDN, _T("%s%s_DN.ico"), dir, ChangedName); if ( FileExists(curnameUP)) { if (Buttons[i].UserDefinedbmUp != NULL){free(Buttons[i].UserDefinedbmUp);} - Buttons[i].UserDefinedbmUp = _strdup(curnameUP); + Buttons[i].UserDefinedbmUp = _tcsdup(curnameUP); } if ( FileExists(curnameDN)) { if (Buttons[i].UserDefinedbmDown != NULL){free(Buttons[i].UserDefinedbmDown);} - Buttons[i].UserDefinedbmDown = _strdup(curnameDN); + Buttons[i].UserDefinedbmDown = _tcsdup(curnameDN); } } @@ -115,20 +114,19 @@ void AssignBitmapsFromDir(char *dir) void ApplyNewDir(HWND hwnd) { - char buf[512]; - char *buf2; - GetDlgItemText(hwnd, IDC_IMGDIR, buf, 512); - buf2 = DBGetString(0, TTB_OPTDIR, "ImgDir"); - if ( buf2 == NULL || strcmp(buf, buf2)) { - DBWriteContactSettingString(0, TTB_OPTDIR, "ImgDir", buf); + TCHAR buf[512], *buf2; + GetDlgItemText(hwnd, IDC_IMGDIR, buf, SIZEOF(buf)); + buf2 = DBGetStringT(0, TTB_OPTDIR, "ImgDir"); + if ( buf2 == NULL || lstrcmp(buf, buf2)) { + DBWriteContactSettingTString(0, TTB_OPTDIR, "ImgDir", buf); AssignBitmapsFromDir(buf); } } int BuildTree(HWND hwndDlg) { - PostMessage(GetDlgItem(hwndDlg, IDC_BMPUP), STM_SETIMAGE, IMAGE_BITMAP, 0); - PostMessage(GetDlgItem(hwndDlg, IDC_BMPDN), STM_SETIMAGE, IMAGE_BITMAP, 0); + PostMessage(GetDlgItem(hwndDlg, IDC_BMPUP), STM_SETIMAGE, IMAGE_BITMAP, 0); + PostMessage(GetDlgItem(hwndDlg, IDC_BMPDN), STM_SETIMAGE, IMAGE_BITMAP, 0); OrderData *dat = (struct OrderData*)GetWindowLongPtr(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE), GWLP_USERDATA); @@ -138,19 +136,19 @@ int BuildTree(HWND hwndDlg) tvis.item.mask = TVIF_PARAM|TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE; TreeView_DeleteAllItems(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE)); - if (nButtonsCount == 0) + if (nButtonsCount == 0) return FALSE; for (int i = 0; i < nButtonsCount; i++) { ButtonOptData *PD = (ButtonOptData*)malloc(sizeof(ButtonOptData)); - PD->name = Buttons[arrangedbuts[i].oldpos].name; PD->show = Buttons[arrangedbuts[i].oldpos].dwFlags&TTBBF_VISIBLE?TRUE:FALSE; PD->pos = arrangedbuts[i].oldpos; tvis.item.lParam = (LPARAM)PD; - tvis.item.pszText = Translate(PD->name); + tvis.item.pszText = TranslateTS( mir_a2t( PD->name)); tvis.item.iImage = tvis.item.iSelectedImage = PD->show; TreeView_InsertItem(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE), &tvis); + mir_free( tvis.item.pszText ); tvis.item.iImage = tvis.item.iSelectedImage = PD->show; } @@ -185,7 +183,7 @@ int SaveTree(HWND hwndDlg) int pos = ((ButtonOptData *)tvi.lParam)->pos; if (pos >= 0 && pos < nButtonsCount) { Buttons[pos].dwFlags &= ~(TTBBF_VISIBLE); - Buttons[pos].dwFlags |= (((ButtonOptData *)tvi.lParam)->show == TRUE ) ? TTBBF_VISIBLE : 0; + Buttons[pos].dwFlags |= (((ButtonOptData *)tvi.lParam)->show == TRUE ) ? TTBBF_VISIBLE : 0; Buttons[pos].arrangedpos = count; } @@ -202,41 +200,41 @@ void SetImagesForCurrent (HWND hwndDlg, int curselect) { int t = IMAGE_BITMAP; - PostMessage(GetDlgItem(hwndDlg, IDC_BMPUP), STM_SETIMAGE, t, 0); - PostMessage(GetDlgItem(hwndDlg, IDC_BMPDN), STM_SETIMAGE, t, 0); + PostMessage(GetDlgItem(hwndDlg, IDC_BMPUP), STM_SETIMAGE, t, 0); + PostMessage(GetDlgItem(hwndDlg, IDC_BMPDN), STM_SETIMAGE, t, 0); - char *curname = Buttons[curselect].UserDefinedbmUp; + TCHAR *curname = Buttons[curselect].UserDefinedbmUp; if (curname != NULL) { - if (strstr(curname, ".ico")) + if ( _tcsstr(curname, _T(".ico"))) t = IMAGE_ICON; int st = WS_CHILDWINDOW | SS_NOTIFY | WS_VISIBLE; - st |= (t == IMAGE_ICON) ? SS_ICON : SS_BITMAP; + st |= (t == IMAGE_ICON) ? SS_ICON : SS_BITMAP; SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_BMPUP), GWL_STYLE, st); } else { - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_BMPUP), GWL_STYLE, WS_CHILDWINDOW|WS_VISIBLE|SS_NOTIFY|(Buttons[curselect].hbBitmapDown == NULL?SS_ICON:SS_BITMAP)); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_BMPUP), GWL_STYLE, WS_CHILDWINDOW|WS_VISIBLE|SS_NOTIFY|(Buttons[curselect].hbBitmapDown == NULL?SS_ICON:SS_BITMAP)); t = IMAGE_ICON; } - PostMessage(GetDlgItem(hwndDlg, IDC_BMPUP), STM_SETIMAGE, t, (Buttons[curselect].hbBitmapUp == NULL) ? (LPARAM)Buttons[curselect].hIconUp : (LPARAM)Buttons[curselect].hbBitmapUp); + PostMessage(GetDlgItem(hwndDlg, IDC_BMPUP), STM_SETIMAGE, t, (Buttons[curselect].hbBitmapUp == NULL) ? (LPARAM)Buttons[curselect].hIconUp : (LPARAM)Buttons[curselect].hbBitmapUp); curname = Buttons[curselect].UserDefinedbmDown; if (curname != NULL) { - if (strstr(curname, ".ico")) + if ( _tcsstr(curname, _T(".ico"))) t = IMAGE_ICON; int st = WS_CHILDWINDOW | SS_NOTIFY | WS_VISIBLE; - st |= (t == IMAGE_ICON) ? SS_ICON : SS_BITMAP; + st |= (t == IMAGE_ICON) ? SS_ICON : SS_BITMAP; SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_BMPDN), GWL_STYLE, st); } else { - SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_BMPDN), GWL_STYLE, WS_CHILDWINDOW|WS_VISIBLE|SS_NOTIFY|(Buttons[curselect].hbBitmapDown == NULL?SS_ICON:SS_BITMAP)); + SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_BMPDN), GWL_STYLE, WS_CHILDWINDOW|WS_VISIBLE|SS_NOTIFY|(Buttons[curselect].hbBitmapDown == NULL?SS_ICON:SS_BITMAP)); t = IMAGE_ICON; } - PostMessage(GetDlgItem(hwndDlg, IDC_BMPDN), STM_SETIMAGE, t, (Buttons[curselect].hbBitmapDown == NULL) ? (LPARAM)Buttons[curselect].hIconDn : (LPARAM)Buttons[curselect].hbBitmapDown); + PostMessage(GetDlgItem(hwndDlg, IDC_BMPDN), STM_SETIMAGE, t, (Buttons[curselect].hbBitmapDown == NULL) ? (LPARAM)Buttons[curselect].hIconDn : (LPARAM)Buttons[curselect].hbBitmapDown); } -static BOOL CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { struct OrderData *dat = (struct OrderData*)GetWindowLongPtr(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE), GWLP_USERDATA); @@ -257,8 +255,8 @@ static BOOL CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR TreeView_SetImageList(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE), himlCheckBoxes, TVSIL_NORMAL); } - PostMessage(GetDlgItem(hwndDlg, IDC_BMPUP), STM_SETIMAGE, IMAGE_BITMAP, 0); - PostMessage(GetDlgItem(hwndDlg, IDC_BMPDN), STM_SETIMAGE, IMAGE_BITMAP, 0); + PostMessage(GetDlgItem(hwndDlg, IDC_BMPUP), STM_SETIMAGE, IMAGE_BITMAP, 0); + PostMessage(GetDlgItem(hwndDlg, IDC_BMPDN), STM_SETIMAGE, IMAGE_BITMAP, 0); SetDlgItemInt(hwndDlg, IDC_BUTTHEIGHT, DBGetContactSettingByte(0, TTB_OPTDIR, "BUTTHEIGHT", 16), FALSE); SetDlgItemInt(hwndDlg, IDC_BUTTWIDTH, DBGetContactSettingByte(0, TTB_OPTDIR, "BUTTWIDTH", 20), FALSE); CheckDlgButton(hwndDlg, IDC_USEMIRANDABUTTON, DBGetContactSettingByte(0, TTB_OPTDIR, "UseMirandaButtonClass", UseMirandaButtonClassDefaultValue)); @@ -275,7 +273,7 @@ static BOOL CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR EnableWindow(GetDlgItem(hwndDlg, IDC_EPATH), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_DELLBUTTON), FALSE); - SetDlgItemText(hwndDlg, IDC_IMGDIR, DBGetString(0, TTB_OPTDIR, "ImgDir")); + SetDlgItemText(hwndDlg, IDC_IMGDIR, DBGetStringT(0, TTB_OPTDIR, "ImgDir")); SendMessage(hwndDlg, WM_COMMAND, 0, 0); OptionshWnd = hwndDlg; } @@ -292,40 +290,37 @@ static BOOL CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR EnableWindow(GetDlgItem(hwndDlg, IDC_USEFLAT), IsDlgButtonChecked(hwndDlg, IDC_USEMIRANDABUTTON)); - if (HIWORD(wParam) == EN_CHANGE ) { - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + if (HIWORD(wParam) == EN_CHANGE ) { + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; } - if ((HIWORD(wParam) == BN_CLICKED|| HIWORD(wParam) == BN_DBLCLK)) { + if ((HIWORD(wParam) == BN_CLICKED|| HIWORD(wParam) == BN_DBLCLK)) { int ctrlid = LOWORD(wParam); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - - if (ctrlid == IDC_OPENIMGDIR) { - char buf[512]; - PCIDLIST_ABSOLUTE res; + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); - BROWSEINFO bi; - memset(&bi, 0, sizeof(bi)); + if (ctrlid == IDC_OPENIMGDIR) { + TCHAR buf[512]; + BROWSEINFO bi = { 0 }; bi.hwndOwner = hwndDlg; bi.pszDisplayName = buf; - bi.lpszTitle = Translate("Select Directory"); + bi.lpszTitle = TranslateT("Select Directory"); bi.ulFlags = BIF_RETURNONLYFSDIRS; - res = SHBrowseForFolder(&bi); + PCIDLIST_ABSOLUTE res = SHBrowseForFolder(&bi); if (res != NULL) { - if (SHGetPathFromIDList(res, buf) == TRUE) { - SetDlgItemText(hwndDlg, IDC_IMGDIR, (LPCSTR)&buf); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + if (SHGetPathFromIDList(res, buf) == TRUE) { + SetDlgItemText(hwndDlg, IDC_IMGDIR, buf); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); } } break; } - if (ctrlid == IDC_LBUTTONSET) { + if (ctrlid == IDC_LBUTTONSET) { int curselect; TVITEM tvi; tvi.hItem = TreeView_GetSelection(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE)); - if (tvi.hItem == NULL){break;} + if (tvi.hItem == NULL){break;} tvi.mask = TVIF_PARAM; TreeView_GetItem(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE), &tvi); @@ -333,12 +328,12 @@ static BOOL CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR curselect = ((ButtonOptData *)tvi.lParam)->pos; if (Buttons[curselect].dwFlags & TTBBF_ISLBUTTON) { LBUTOPT lbo = { 0 }; - char buf[256]; + TCHAR buf[256]; GetDlgItemText(hwndDlg, IDC_ENAME, buf, 255); - lbo.name = _strdup(buf); + lbo.name = _strdup( _T2A(buf)); GetDlgItemText(hwndDlg, IDC_EPATH, buf, 255); - lbo.lpath = _strdup(buf); + lbo.lpath = _tcsdup(buf); CallService(TTB_MODIFYLBUTTON, Buttons[curselect].lParamDown, (LPARAM)&lbo); free(lbo.name); @@ -347,19 +342,19 @@ static BOOL CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR break; } - if (ctrlid == IDC_ADDLBUTTON) { - if (CallService(TTB_ADDLBUTTON, 0, 0) == 0) { + if (ctrlid == IDC_ADDLBUTTON) { + if (CallService(TTB_ADDLBUTTON, 0, 0) == 0) { // BuildTree(hwndDlg); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); } break; } - if (ctrlid == IDC_DELLBUTTON) { + if (ctrlid == IDC_DELLBUTTON) { int curselect; TVITEM tvi; tvi.hItem = TreeView_GetSelection(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE)); - if (tvi.hItem == NULL) + if (tvi.hItem == NULL) break; tvi.mask = TVIF_PARAM; @@ -371,29 +366,29 @@ static BOOL CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR EnableWindow(GetDlgItem(hwndDlg, IDC_ENAME), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_EPATH), FALSE); BuildTree(hwndDlg); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); } } - if (ctrlid == IDC_ADDSEP) { - if (CallService(TTB_ADDSEPARATOR, 0, 0) == 0) { + if (ctrlid == IDC_ADDSEP) { + if (CallService(TTB_ADDSEPARATOR, 0, 0) == 0) { // BuildTree(hwndDlg); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); } break; } - if (ctrlid == IDC_REMOVESEP) { + if (ctrlid == IDC_REMOVESEP) { TVITEM tvi; memset(&tvi, 0, sizeof(tvi)); tvi.hItem = TreeView_GetSelection(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE)); - if (tvi.hItem == NULL){break;} + if (tvi.hItem == NULL){break;} //MessageBoxA(0, "GetSelItem", "log", 0); tvi.mask = TVIF_PARAM; TreeView_GetItem(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE), &tvi); - if (tvi.lParam == 0) + if (tvi.lParam == 0) break; if ( IsBadCodePtr(( FARPROC )tvi.lParam)) { @@ -404,17 +399,17 @@ static BOOL CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR int curselect = ((ButtonOptData *)tvi.lParam)->pos; if ( curselect >= 0 && curselect < nButtonsCount ) { if (Buttons[curselect].dwFlags&TTBBF_ISSEPARATOR) { - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); CallService(TTB_REMOVESEPARATOR, Buttons[curselect].lParamDown, 0); } } break; } - if (ctrlid == IDC_DEFAULT) { + if (ctrlid == IDC_DEFAULT) { TVITEM tvi; tvi.hItem = TreeView_GetSelection(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE)); - if (tvi.hItem == NULL) + if (tvi.hItem == NULL) break; tvi.mask = TVIF_PARAM; @@ -431,21 +426,21 @@ static BOOL CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR SetImagesForCurrent(hwndDlg, curselect); ulockbut(); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); } } - if ((HIWORD(wParam) == STN_CLICKED|| HIWORD(wParam) == STN_DBLCLK)) { + if ((HIWORD(wParam) == STN_CLICKED|| HIWORD(wParam) == STN_DBLCLK)) { int ctrlid = LOWORD(wParam); - if (ctrlid == IDC_BMPUP||ctrlid == IDC_BMPDN) { + if (ctrlid == IDC_BMPUP||ctrlid == IDC_BMPDN) { TVITEM tvi; tvi.hItem = TreeView_GetSelection(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE)); - if (tvi.hItem == NULL) + if (tvi.hItem == NULL) break; tvi.mask = TVIF_PARAM; TreeView_GetItem(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE), &tvi); - if (tvi.lParam == 0) + if (tvi.lParam == 0) break; int curselect = ((ButtonOptData *)tvi.lParam)->pos; @@ -476,23 +471,23 @@ static BOOL CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; ofn.nMaxFile = sizeof(filename); ofn.nMaxFileTitle = MAX_PATH; - ofn.lpstrDefExt = "bmp"; - ofn.lpstrTitle = (ctrlid == IDC_BMPUP)?Translate("Select Up Bitmap"):Translate("Select Down Bitmap"); + ofn.lpstrDefExt = _T("bmp"); + ofn.lpstrTitle = (ctrlid == IDC_BMPUP) ? TranslateT("Select Up Bitmap") : TranslateT("Select Down Bitmap"); if (GetOpenFileName(&ofn)) { lockbut(); - if (ctrlid == IDC_BMPUP){ + if (ctrlid == IDC_BMPUP){ if (Buttons[curselect].UserDefinedbmUp != NULL){free(Buttons[curselect].UserDefinedbmUp);} - Buttons[curselect].UserDefinedbmUp = _strdup(ofn.lpstrFile); + Buttons[curselect].UserDefinedbmUp = _tcsdup(ofn.lpstrFile); } - if (ctrlid == IDC_BMPDN){ + if (ctrlid == IDC_BMPDN){ if (Buttons[curselect].UserDefinedbmDown != NULL){free(Buttons[curselect].UserDefinedbmDown);} - Buttons[curselect].UserDefinedbmDown = _strdup(ofn.lpstrFile); + Buttons[curselect].UserDefinedbmDown = _tcsdup(ofn.lpstrFile); } applyuserbitmaps(curselect); SetImagesForCurrent(hwndDlg, curselect); ulockbut(); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); } } } @@ -542,7 +537,7 @@ static BOOL CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR tvi.iImage = tvi.iSelectedImage = !tvi.iImage; ((ButtonOptData *)tvi.lParam)->show = tvi.iImage; TreeView_SetItem(((LPNMHDR)lParam)->hwndFrom, &tvi); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); } } } @@ -554,7 +549,7 @@ static BOOL CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR HTREEITEM hti; hti = TreeView_GetSelection(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE)); - if (hti == NULL){break;} + if (hti == NULL){break;} tvi.mask = TVIF_HANDLE|TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_PARAM; tvi.hItem = hti; TreeView_GetItem(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE), &tvi); @@ -565,8 +560,8 @@ static BOOL CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR EnableWindow(GetDlgItem(hwndDlg, IDC_BMPDN), FALSE); SetImagesForCurrent(hwndDlg, ((ButtonOptData *)tvi.lParam)->pos); - //PostMessage(GetDlgItem(hwndDlg, IDC_BMPUP), STM_SETIMAGE, IMAGE_BITMAP, Buttons[((ButtonOptData *)tvi.lParam)->pos].hbBitmapUp); - //PostMessage(GetDlgItem(hwndDlg, IDC_BMPDN), STM_SETIMAGE, IMAGE_BITMAP, Buttons[((ButtonOptData *)tvi.lParam)->pos].hbBitmapDown); + //PostMessage(GetDlgItem(hwndDlg, IDC_BMPUP), STM_SETIMAGE, IMAGE_BITMAP, Buttons[((ButtonOptData *)tvi.lParam)->pos].hbBitmapUp); + //PostMessage(GetDlgItem(hwndDlg, IDC_BMPDN), STM_SETIMAGE, IMAGE_BITMAP, Buttons[((ButtonOptData *)tvi.lParam)->pos].hbBitmapDown); EnableWindow(GetDlgItem(hwndDlg, IDC_REMOVESEP), FALSE); if (Buttons[((ButtonOptData *)tvi.lParam)->pos].dwFlags&TTBBF_ISSEPARATOR) @@ -580,8 +575,8 @@ static BOOL CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR EnableWindow(GetDlgItem(hwndDlg, IDC_EPATH), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_DELLBUTTON), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_LBUTTONSET), FALSE); - {SetDlgItemText(hwndDlg, IDC_ENAME, "");} - {SetDlgItemText(hwndDlg, IDC_EPATH, "");} + SetDlgItemTextA(hwndDlg, IDC_ENAME, ""); + SetDlgItemTextA(hwndDlg, IDC_EPATH, ""); if (Buttons[((ButtonOptData *)tvi.lParam)->pos].dwFlags & TTBBF_ISLBUTTON) { LBUTOPT lbo = { 0 }; @@ -592,8 +587,10 @@ static BOOL CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR EnableWindow(GetDlgItem(hwndDlg, IDC_DELLBUTTON), TRUE); EnableWindow(GetDlgItem(hwndDlg, IDC_LBUTTONSET), TRUE); - if (lbo.name != NULL){SetDlgItemText(hwndDlg, IDC_ENAME, lbo.name);} - if (lbo.lpath != NULL){SetDlgItemText(hwndDlg, IDC_EPATH, lbo.lpath);} + if (lbo.name != NULL) + SetDlgItemTextA(hwndDlg, IDC_ENAME, lbo.name); + if (lbo.lpath != NULL) + SetDlgItemText(hwndDlg, IDC_EPATH, lbo.lpath); } } @@ -643,17 +640,17 @@ static BOOL CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR ScreenToClient(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE), &hti.pt); hti.pt.y -= TreeView_GetItemHeight(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE))/2; TreeView_HitTest(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE), &hti); - if (dat->hDragItem == hti.hItem) break; + if (dat->hDragItem == hti.hItem) break; tvi.mask = TVIF_HANDLE|TVIF_PARAM; tvi.hItem = hti.hItem; TreeView_GetItem(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE), &tvi); if (hti.flags&(TVHT_ONITEM|TVHT_ONITEMRIGHT)) { TVINSERTSTRUCT tvis; - char name[128]; + TCHAR name[128]; tvis.item.mask = TVIF_HANDLE|TVIF_PARAM|TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE; tvis.item.stateMask = 0xFFFFFFFF; tvis.item.pszText = name; - tvis.item.cchTextMax = sizeof(name); + tvis.item.cchTextMax = SIZEOF(name); tvis.item.hItem = dat->hDragItem; // tvis.item.iImage = tvis.item.iSelectedImage = ((ButtonOptData *)tvi.lParam)->show; @@ -664,7 +661,7 @@ static BOOL CALLBACK ButOrderOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR tvis.hParent = NULL; tvis.hInsertAfter = hti.hItem; TreeView_SelectItem(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE), TreeView_InsertItem(GetDlgItem(hwndDlg, IDC_BUTTONORDERTREE), &tvis)); - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); SaveTree(hwndDlg); } } @@ -682,7 +679,7 @@ int TTBOptInit(WPARAM wParam, LPARAM lParam) odp.pszGroup = Translate("TopToolBar"); if ( !ServiceExists(MS_BACKGROUNDCONFIG_REGISTER)) { - odp.pszTemplate = MAKEINTRESOURCE(IDD_OPT_TTBBKG); + odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_TTBBKG); odp.pszTitle = Translate("TTBBackground"); odp.pfnDlgProc = DlgProcTTBBkgOpts; odp.flags = ODPF_BOLDGROUPS; @@ -693,7 +690,7 @@ int TTBOptInit(WPARAM wParam, LPARAM lParam) odp.cbSize = sizeof(odp); odp.position = -1000000000; odp.hInstance = hInst;//GetModuleHandle(NULL); - odp.pszTemplate = MAKEINTRESOURCE(IDD_OPT_BUTORDER); + odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPT_BUTORDER); odp.pszGroup = Translate("TopToolBar"); odp.pszTitle = Translate("Buttons"); odp.pfnDlgProc = ButOrderOpts; @@ -702,7 +699,7 @@ int TTBOptInit(WPARAM wParam, LPARAM lParam) return 0; } -static BOOL CALLBACK DlgProcTTBBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK DlgProcTTBBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_INITDIALOG: @@ -715,12 +712,11 @@ static BOOL CALLBACK DlgProcTTBBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, SendDlgItemMessage(hwndDlg, IDC_SELCOLOUR, CPM_SETCOLOUR, 0, DBGetContactSettingDword(NULL, TTB_OPTDIR, "SelBkColour", TTBDEFAULT_SELBKCOLOUR)); { DBVARIANT dbv; - if (!DBGetContactSetting(NULL, TTB_OPTDIR, "BkBitmap", &dbv)) { - SetDlgItemText(hwndDlg, IDC_FILENAME, dbv.pszVal); + if ( !DBGetContactSetting(NULL, TTB_OPTDIR, "BkBitmap", &dbv)) { + SetDlgItemText(hwndDlg, IDC_FILENAME, dbv.ptszVal); DBFreeVariant(&dbv); } - } - { + WORD bmpUse = DBGetContactSettingWord(NULL, TTB_OPTDIR, "BkBmpUse", TTBDEFAULT_BKBMPUSE); CheckDlgButton(hwndDlg, IDC_STRETCHH, bmpUse&CLB_STRETCHH?BST_CHECKED:BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_STRETCHV, bmpUse&CLB_STRETCHV?BST_CHECKED:BST_UNCHECKED); @@ -728,11 +724,11 @@ static BOOL CALLBACK DlgProcTTBBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, CheckDlgButton(hwndDlg, IDC_TILEV, bmpUse&CLBF_TILEV?BST_CHECKED:BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_SCROLL, bmpUse&CLBF_SCROLL?BST_CHECKED:BST_UNCHECKED); CheckDlgButton(hwndDlg, IDC_PROPORTIONAL, bmpUse&CLBF_PROPORTIONAL?BST_CHECKED:BST_UNCHECKED); - } - { + HRESULT (STDAPICALLTYPE *MySHAutoComplete)(HWND, DWORD); - MySHAutoComplete = (HRESULT (STDAPICALLTYPE*)(HWND, DWORD))GetProcAddress(GetModuleHandle("shlwapi"), "SHAutoComplete"); - if (MySHAutoComplete) MySHAutoComplete(GetDlgItem(hwndDlg, IDC_FILENAME), 1); + MySHAutoComplete = (HRESULT (STDAPICALLTYPE*)(HWND, DWORD))GetProcAddress(GetModuleHandleA("shlwapi"), "SHAutoComplete"); + if (MySHAutoComplete) + MySHAutoComplete(GetDlgItem(hwndDlg, IDC_FILENAME), 1); } return TRUE; @@ -748,7 +744,7 @@ static BOOL CALLBACK DlgProcTTBBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, break; case WM_COMMAND: - if (LOWORD(wParam) == IDC_BROWSE) { + if (LOWORD(wParam) == IDC_BROWSE) { TCHAR str[MAX_PATH]; OPENFILENAME ofn = {0}; TCHAR filter[512]; @@ -763,18 +759,18 @@ static BOOL CALLBACK DlgProcTTBBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; ofn.nMaxFile = sizeof(str); ofn.nMaxFileTitle = MAX_PATH; - ofn.lpstrDefExt = "bmp"; + ofn.lpstrDefExt = _T("bmp"); if (!GetOpenFileName(&ofn)) break; SetDlgItemText(hwndDlg, IDC_FILENAME, str); } - else if (LOWORD(wParam) == IDC_FILENAME && HIWORD(wParam) != EN_CHANGE) + else if (LOWORD(wParam) == IDC_FILENAME && HIWORD(wParam) != EN_CHANGE) break; - if (LOWORD(wParam) == IDC_BITMAP) SendMessage(hwndDlg, WM_USER+10, 0, 0); - if (LOWORD(wParam) == IDC_FILENAME && (HIWORD(wParam) != EN_CHANGE || (HWND)lParam != GetFocus())) return 0; - SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); + if (LOWORD(wParam) == IDC_BITMAP) SendMessage(hwndDlg, WM_USER+10, 0, 0); + if (LOWORD(wParam) == IDC_FILENAME && (HIWORD(wParam) != EN_CHANGE || (HWND)lParam != GetFocus())) return 0; + SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0); break; case WM_NOTIFY: @@ -785,22 +781,20 @@ static BOOL CALLBACK DlgProcTTBBkgOpts(HWND hwndDlg, UINT msg, WPARAM wParam, DBWriteContactSettingByte(NULL, TTB_OPTDIR, "UseBitmap", (BYTE)IsDlgButtonChecked(hwndDlg, IDC_BITMAP)); { COLORREF col = SendDlgItemMessage(hwndDlg, IDC_BKGCOLOUR, CPM_GETCOLOUR, 0, 0); - if (col == TTBDEFAULT_BKCOLOUR) + if (col == TTBDEFAULT_BKCOLOUR) DBDeleteContactSetting(NULL, TTB_OPTDIR, "BkColour"); else DBWriteContactSettingDword(NULL, TTB_OPTDIR, "BkColour", col); col = SendDlgItemMessage(hwndDlg, IDC_SELCOLOUR, CPM_GETCOLOUR, 0, 0); - if (col == TTBDEFAULT_SELBKCOLOUR) + if (col == TTBDEFAULT_SELBKCOLOUR) DBDeleteContactSetting(NULL, TTB_OPTDIR, "SelBkColour"); else DBWriteContactSettingDword(NULL, TTB_OPTDIR, "SelBkColour", col); - } - { + TCHAR str[MAX_PATH]; GetDlgItemText(hwndDlg, IDC_FILENAME, str, SIZEOF(str)); - DBWriteContactSettingString(NULL, TTB_OPTDIR, "BkBitmap", str); - } - { + DBWriteContactSettingTString(NULL, TTB_OPTDIR, "BkBitmap", str); + WORD flags = 0; if (IsDlgButtonChecked(hwndDlg, IDC_STRETCHH)) flags |= CLB_STRETCHH; if (IsDlgButtonChecked(hwndDlg, IDC_STRETCHV)) flags |= CLB_STRETCHV; -- cgit v1.2.3