terminal/src/propsheet/ColorControl.cpp
pi1024e 9f95b54f2c
Change NULL to nullptr since they are pointers (#4960)
Some functions and variables are having NULL assigned to them when they are in fact pointers, so nullptr might be more accurate here.
2020-03-20 20:35:12 +00:00

71 lines
1.7 KiB
C++

// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
#include "precomp.h"
#include "ColorControl.h"
COLORREF GetColorForItem(const int itemId)
{
if (itemId >= IDD_COLOR_1 && itemId <= IDD_COLOR_16)
{
return AttrToRGB(itemId - IDD_COLOR_1);
}
else if (itemId == IDD_TERMINAL_FGCOLOR)
{
return g_fakeForegroundColor;
}
else if (itemId == IDD_TERMINAL_BGCOLOR)
{
return g_fakeBackgroundColor;
}
else if (itemId == IDD_TERMINAL_CURSOR_COLOR)
{
return g_fakeCursorColor;
}
return RGB(0xff, 0x0, 0xff);
}
void SimpleColorDoPaint(const HWND hColor, PAINTSTRUCT& ps, const int ColorId)
{
RECT rColor;
COLORREF rgbBrush;
HBRUSH hbr;
GetClientRect(hColor, &rColor);
rgbBrush = GetNearestColor(ps.hdc, GetColorForItem(ColorId));
if ((hbr = CreateSolidBrush(rgbBrush)) != nullptr)
{
InflateRect(&rColor, -1, -1);
FillRect(ps.hdc, &rColor, hbr);
DeleteObject(hbr);
}
}
// Routine Description:
// - Window proc for the color buttons
[[nodiscard]] LRESULT CALLBACK SimpleColorControlProc(const HWND hColor, const UINT wMsg, const WPARAM wParam, const LPARAM lParam)
{
PAINTSTRUCT ps;
int ColorId;
HWND hDlg;
ColorId = GetWindowLong(hColor, GWL_ID);
hDlg = GetParent(hColor);
switch (wMsg)
{
case WM_GETDLGCODE:
return DLGC_WANTARROWS | DLGC_WANTTAB;
break;
case WM_PAINT:
BeginPaint(hColor, &ps);
SimpleColorDoPaint(hColor, ps, ColorId);
EndPaint(hColor, &ps);
break;
default:
return DefWindowProc(hColor, wMsg, wParam, lParam);
break;
}
return TRUE;
}