208 lines
6.2 KiB
C++
208 lines
6.2 KiB
C++
#include "pch.hxx" // pch
|
|
#pragma hdrstop
|
|
|
|
#include "resource.h"
|
|
#include "pgIconSz.h"
|
|
|
|
CIconSizePg::CIconSizePg(
|
|
LPPROPSHEETPAGE ppsp
|
|
) : WizardPage(ppsp, IDS_LKPREV_ICONTITLE, IDS_LKPREV_ICONTITLE)
|
|
{
|
|
m_dwPageId = IDD_PREV_ICON1;
|
|
ppsp->pszTemplate = MAKEINTRESOURCE(m_dwPageId);
|
|
m_himageNormalSmall = 0;
|
|
m_himageNormalLarge = 0;
|
|
m_himageLargeSmall = 0;
|
|
m_himageLargeLarge = 0;
|
|
m_himageExLargeSmall = 0;
|
|
m_himageExLargeLarge = 0;
|
|
}
|
|
|
|
|
|
CIconSizePg::~CIconSizePg(
|
|
VOID
|
|
)
|
|
{
|
|
if(m_himageNormalSmall)
|
|
ImageList_Destroy(m_himageNormalSmall);
|
|
if(m_himageNormalLarge)
|
|
ImageList_Destroy(m_himageNormalLarge);
|
|
if(m_himageLargeSmall)
|
|
ImageList_Destroy(m_himageLargeSmall);
|
|
if(m_himageLargeLarge)
|
|
ImageList_Destroy(m_himageLargeLarge);
|
|
if(m_himageExLargeSmall)
|
|
ImageList_Destroy(m_himageExLargeSmall);
|
|
if(m_himageExLargeLarge)
|
|
ImageList_Destroy(m_himageExLargeLarge);
|
|
}
|
|
|
|
LRESULT
|
|
CIconSizePg::OnInitDialog(
|
|
HWND hwnd,
|
|
WPARAM wParam,
|
|
LPARAM lParam
|
|
)
|
|
{
|
|
|
|
m_himageNormalSmall = ImageList_LoadBitmap(g_hInstDll, MAKEINTRESOURCE(IDB_ICON_NORMAL_SMALL), 16, 10, RGB(255, 0, 0));
|
|
m_himageNormalLarge = ImageList_LoadBitmap(g_hInstDll, MAKEINTRESOURCE(IDB_ICON_NORMAL_LARGE), 32, 10, RGB(255, 0, 0));
|
|
m_himageLargeSmall = ImageList_LoadBitmap(g_hInstDll, MAKEINTRESOURCE(IDB_ICON_NORMAL_SMALL), 16, 10, RGB(255, 0, 0));
|
|
m_himageLargeLarge = ImageList_LoadBitmap(g_hInstDll, MAKEINTRESOURCE(IDB_ICON_LARGE_LARGE), 48, 10, RGB(255, 0, 0));
|
|
m_himageExLargeSmall = ImageList_LoadBitmap(g_hInstDll, MAKEINTRESOURCE(IDB_ICON_NORMAL_SMALL), 16, 10, RGB(255, 0, 0));
|
|
m_himageExLargeLarge = ImageList_LoadBitmap(g_hInstDll, MAKEINTRESOURCE(IDB_ICON_EXLARGE_LARGE), 64, 10, RGB(255, 0, 0));
|
|
|
|
|
|
m_hwndList = GetDlgItem(m_hwnd, IDC_LIST1);
|
|
|
|
ListView_SetImageList(m_hwndList, m_himageNormalSmall, LVSIL_SMALL);
|
|
ListView_SetImageList(m_hwndList, m_himageNormalLarge, LVSIL_NORMAL);
|
|
|
|
Button_SetCheck(GetDlgItem(m_hwnd, IDC_PREVIEW_LARGE), TRUE);
|
|
Button_SetCheck(GetDlgItem(m_hwnd, IDC_ICON_NORMAL), TRUE);
|
|
|
|
LV_ITEM lvi;
|
|
memset(&lvi, 0, sizeof(lvi));
|
|
lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
|
|
|
|
|
|
int rgnStringIds[] = { IDS_ICONPREV_ITEM1,
|
|
IDS_ICONPREV_ITEM2,
|
|
IDS_ICONPREV_ITEM3,
|
|
IDS_ICONPREV_ITEM4,
|
|
IDS_ICONPREV_ITEM5,
|
|
IDS_ICONPREV_ITEM6,
|
|
};
|
|
|
|
TCHAR sz[50];
|
|
for(int i=0;i<6;i++)
|
|
{
|
|
LoadString(g_hInstDll, rgnStringIds[i], sz, ARRAYSIZE(sz));
|
|
lvi.iItem = i;
|
|
lvi.pszText = sz;
|
|
lvi.cchTextMax = lstrlen(lvi.pszText);
|
|
lvi.iImage = i;
|
|
lvi.lParam = i;
|
|
ListView_InsertItem(m_hwndList, &lvi);
|
|
}
|
|
|
|
#if 0 // JMC: Maybe set the background color to the desktop color
|
|
ListView_SetBkColor(m_hwndList, RGB(0, 0, 0));
|
|
ListView_SetTextBkColor(m_hwndList, RGB(0, 0, 0));
|
|
ListView_SetTextColor(m_hwndList, RGB(255, 255, 255));
|
|
#endif
|
|
|
|
UpdateControls();
|
|
return 1;
|
|
}
|
|
|
|
|
|
void CIconSizePg::UpdateControls()
|
|
{
|
|
}
|
|
|
|
// Default Sort Function
|
|
int CALLBACK SimpleCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
|
|
{
|
|
if(lParam1 > lParam2)
|
|
return 1;
|
|
if(lParam1 < lParam2)
|
|
return -1;
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
LRESULT
|
|
CIconSizePg::OnCommand(
|
|
HWND hwnd,
|
|
WPARAM wParam,
|
|
LPARAM lParam
|
|
)
|
|
{
|
|
LRESULT lResult = 1;
|
|
|
|
WORD wNotifyCode = HIWORD(wParam);
|
|
WORD wCtlID = LOWORD(wParam);
|
|
HWND hwndCtl = (HWND)lParam;
|
|
|
|
|
|
DWORD dwStyle;
|
|
|
|
// Fake item that will be added and removed to make sure the scroll bar
|
|
// shows correctly after changing views
|
|
LV_ITEM lviFakeItem;
|
|
memset(&lviFakeItem, 0, sizeof(lviFakeItem));
|
|
lviFakeItem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
|
|
lviFakeItem.iItem = ListView_GetItemCount(m_hwndList);
|
|
lviFakeItem.pszText = __TEXT("");
|
|
lviFakeItem.cchTextMax = lstrlen(lviFakeItem.pszText);
|
|
lviFakeItem.iImage = 0;
|
|
lviFakeItem.lParam = lviFakeItem.iItem;
|
|
|
|
|
|
switch(wCtlID)
|
|
{
|
|
case IDC_PREVIEW_LARGE:
|
|
// Switch to large view
|
|
dwStyle = GetWindowLong(m_hwndList, GWL_STYLE);
|
|
dwStyle &= ~LVS_SMALLICON;
|
|
dwStyle |= LVS_ICON;
|
|
SetWindowLong(m_hwndList, GWL_STYLE, dwStyle);
|
|
// Add and remove a fake item to make sure the scroll bar is set correctly.
|
|
ListView_InsertItem(m_hwndList, &lviFakeItem);
|
|
ListView_DeleteItem(m_hwndList, lviFakeItem.iItem);
|
|
|
|
break;
|
|
case IDC_PREVIEW_SMALL:
|
|
dwStyle = GetWindowLong(m_hwndList, GWL_STYLE);
|
|
dwStyle &= ~LVS_ICON;
|
|
dwStyle |= LVS_SMALLICON;
|
|
SetWindowLong(m_hwndList, GWL_STYLE, dwStyle);
|
|
// Add and remove a fake item to make sure the scroll bar is set correctly.
|
|
ListView_InsertItem(m_hwndList, &lviFakeItem);
|
|
ListView_DeleteItem(m_hwndList, lviFakeItem.iItem);
|
|
break;
|
|
case IDC_ICON_NORMAL:
|
|
ListView_SetImageList(m_hwndList, m_himageNormalSmall, LVSIL_SMALL);
|
|
ListView_SetImageList(m_hwndList, m_himageNormalLarge, LVSIL_NORMAL);
|
|
break;
|
|
case IDC_ICON_LARGE:
|
|
ListView_SetImageList(m_hwndList, m_himageLargeSmall, LVSIL_SMALL);
|
|
ListView_SetImageList(m_hwndList, m_himageLargeLarge, LVSIL_NORMAL);
|
|
break;
|
|
case IDC_ICON_EXLARGE:
|
|
ListView_SetImageList(m_hwndList, m_himageExLargeSmall, LVSIL_SMALL);
|
|
ListView_SetImageList(m_hwndList, m_himageExLargeLarge, LVSIL_NORMAL);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
ListView_SortItems(m_hwndList, SimpleCompareFunc, 0);
|
|
ListView_Update(m_hwndList, 0);
|
|
|
|
return lResult;
|
|
}
|
|
|
|
LRESULT
|
|
CIconSizePg::OnPSN_WizNext(
|
|
HWND hwnd,
|
|
INT idCtl,
|
|
LPPSHNOTIFY pnmh
|
|
)
|
|
{
|
|
int nIconSize = 32;
|
|
|
|
if(Button_GetCheck(GetDlgItem(m_hwnd, IDC_ICON_LARGE)))
|
|
nIconSize = 48;
|
|
else if(Button_GetCheck(GetDlgItem(m_hwnd, IDC_ICON_LARGE)))
|
|
nIconSize = 64;
|
|
|
|
g_Options.m_schemePreview.m_nIconSize = nIconSize;
|
|
g_Options.ApplyPreview();
|
|
|
|
return WizardPage::OnPSN_WizNext(hwnd, idCtl, pnmh);
|
|
}
|
|
|