mirror of
https://github.com/Ylianst/MeshAgent
synced 2025-12-16 16:23:25 +00:00
Added ability to specify alternate colors for windows installer UI
This commit is contained in:
@@ -991,6 +991,32 @@ int wmain(int argc, char* wargv[])
|
|||||||
|
|
||||||
|
|
||||||
#ifndef _MINCORE
|
#ifndef _MINCORE
|
||||||
|
COLORREF gBKCOLOR = RGB(0, 0, 0);
|
||||||
|
COLORREF gFGCOLOR = RGB(0, 0, 0);
|
||||||
|
COLORREF GDIP_RGB(COLORREF c)
|
||||||
|
{
|
||||||
|
unsigned char _r = (c & 0xFF);
|
||||||
|
unsigned char _g = ((c >> 8) & 0xFF);
|
||||||
|
unsigned char _b = ((c >> 16) & 0xFF);
|
||||||
|
return (RGB(_b, _g, _r));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
uint32_t ColorFromMSH(char *c)
|
||||||
|
{
|
||||||
|
uint32_t ret = RGB(0, 54, 105);
|
||||||
|
size_t len = strnlen_s(c, 12);
|
||||||
|
parser_result *pr = ILibParseString(c, 0, len, ",", 1);
|
||||||
|
if (pr->NumResults == 3)
|
||||||
|
{
|
||||||
|
pr->FirstResult->data[pr->FirstResult->datalength] = 0;
|
||||||
|
pr->FirstResult->NextResult->data[pr->FirstResult->NextResult->datalength] = 0;
|
||||||
|
pr->LastResult->data[pr->LastResult->datalength] = 0;
|
||||||
|
ret = RGB(atoi(pr->FirstResult->data), atoi(pr->FirstResult->NextResult->data), atoi(pr->LastResult->data));
|
||||||
|
}
|
||||||
|
ILibDestructParserResults(pr);
|
||||||
|
return(ret);
|
||||||
|
}
|
||||||
|
|
||||||
WCHAR *Dialog_GetTranslationEx(void *ctx, char *utf8)
|
WCHAR *Dialog_GetTranslationEx(void *ctx, char *utf8)
|
||||||
{
|
{
|
||||||
@@ -1044,7 +1070,7 @@ HBITMAP GetScaledImage(char *raw, size_t rawLen, int w, int h)
|
|||||||
s = __GdipSetSmoothingMode(g, SmoothingModeAntiAlias);
|
s = __GdipSetSmoothingMode(g, SmoothingModeAntiAlias);
|
||||||
s = __GdipSetInterpolationMode(g, InterpolationModeBicubic);
|
s = __GdipSetInterpolationMode(g, InterpolationModeBicubic);
|
||||||
s = __GdipDrawImageRectI(g, bm, 0, 0, w, h);
|
s = __GdipDrawImageRectI(g, bm, 0, 0, w, h);
|
||||||
s = __GdipCreateHBITMAPFromBitmap(nb, &hbm, RGB(105, 54, 0));
|
s = __GdipCreateHBITMAPFromBitmap(nb, &hbm, GDIP_RGB(gBKCOLOR));
|
||||||
s = __GdipDisposeImage(bm);
|
s = __GdipDisposeImage(bm);
|
||||||
ILibMemory_Free(decoded);
|
ILibMemory_Free(decoded);
|
||||||
return(hbm);
|
return(hbm);
|
||||||
@@ -1063,7 +1089,7 @@ INT_PTR CALLBACK DialogHandler(HWND hDlg, UINT message, WPARAM wParam, LPARAM lP
|
|||||||
case WM_CTLCOLORDLG: {
|
case WM_CTLCOLORDLG: {
|
||||||
// Set the background of the dialog box to blue
|
// Set the background of the dialog box to blue
|
||||||
if (DialogBackgroundBrush == NULL) {
|
if (DialogBackgroundBrush == NULL) {
|
||||||
DialogBackgroundBrush = CreateSolidBrush(RGB(0, 54, 105));
|
DialogBackgroundBrush = CreateSolidBrush(gBKCOLOR);
|
||||||
}
|
}
|
||||||
return (INT_PTR)DialogBackgroundBrush;
|
return (INT_PTR)DialogBackgroundBrush;
|
||||||
}
|
}
|
||||||
@@ -1072,7 +1098,7 @@ INT_PTR CALLBACK DialogHandler(HWND hDlg, UINT message, WPARAM wParam, LPARAM lP
|
|||||||
if ((HWND)lParam == GetDlgItem(hDlg, IDC_STATIC_LEFTTEXT))
|
if ((HWND)lParam == GetDlgItem(hDlg, IDC_STATIC_LEFTTEXT))
|
||||||
{
|
{
|
||||||
SetBkMode((HDC)wParam, TRANSPARENT);
|
SetBkMode((HDC)wParam, TRANSPARENT);
|
||||||
SetTextColor((HDC)wParam, RGB(255, 255, 255));
|
SetTextColor((HDC)wParam, gFGCOLOR);
|
||||||
return (INT_PTR)GetStockObject(NULL_BRUSH);
|
return (INT_PTR)GetStockObject(NULL_BRUSH);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -1156,6 +1182,11 @@ INT_PTR CALLBACK DialogHandler(HWND hDlg, UINT message, WPARAM wParam, LPARAM lP
|
|||||||
RECT r;
|
RECT r;
|
||||||
GetWindowRect(GetDlgItem(hDlg, IDC_IMAGE), &r);
|
GetWindowRect(GetDlgItem(hDlg, IDC_IMAGE), &r);
|
||||||
|
|
||||||
|
char *bkcolor = Duktape_GetStringPropertyValue(g_dialogCtx, -1, "bkcolor", "0,54,105");
|
||||||
|
char *fgcolor = Duktape_GetStringPropertyValue(g_dialogCtx, -1, "fgcolor", "255,255,255");
|
||||||
|
gBKCOLOR = ColorFromMSH(bkcolor);
|
||||||
|
gFGCOLOR = ColorFromMSH(fgcolor);
|
||||||
|
|
||||||
duk_size_t rawLen;
|
duk_size_t rawLen;
|
||||||
char *imageraw = Duktape_GetStringPropertyValue(g_dialogCtx, -1, "image", NULL);
|
char *imageraw = Duktape_GetStringPropertyValue(g_dialogCtx, -1, "image", NULL);
|
||||||
if (imageraw != NULL)
|
if (imageraw != NULL)
|
||||||
@@ -1344,14 +1375,14 @@ INT_PTR CALLBACK DialogHandler2(HWND hDlg, UINT message, WPARAM wParam, LPARAM l
|
|||||||
case WM_CTLCOLORDLG: {
|
case WM_CTLCOLORDLG: {
|
||||||
// Set the background of the dialog box to blue
|
// Set the background of the dialog box to blue
|
||||||
if (DialogBackgroundBrush == NULL) {
|
if (DialogBackgroundBrush == NULL) {
|
||||||
DialogBackgroundBrush = CreateSolidBrush(RGB(0, 54, 105));
|
DialogBackgroundBrush = CreateSolidBrush(gBKCOLOR);
|
||||||
}
|
}
|
||||||
return (INT_PTR)DialogBackgroundBrush;
|
return (INT_PTR)DialogBackgroundBrush;
|
||||||
}
|
}
|
||||||
case WM_CTLCOLORSTATIC: {
|
case WM_CTLCOLORSTATIC: {
|
||||||
// Set the left text to white over transparent
|
// Set the left text to white over transparent
|
||||||
SetBkMode((HDC)wParam, TRANSPARENT);
|
SetBkMode((HDC)wParam, TRANSPARENT);
|
||||||
SetTextColor((HDC)wParam, RGB(255, 255, 255));
|
SetTextColor((HDC)wParam, gFGCOLOR);
|
||||||
return (INT_PTR)GetStockObject(NULL_BRUSH);
|
return (INT_PTR)GetStockObject(NULL_BRUSH);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1376,6 +1407,7 @@ INT_PTR CALLBACK DialogHandler2(HWND hDlg, UINT message, WPARAM wParam, LPARAM l
|
|||||||
serverurl = Duktape_GetStringPropertyValue(g_dialogCtx, -1, "MeshServer", NULL);
|
serverurl = Duktape_GetStringPropertyValue(g_dialogCtx, -1, "MeshServer", NULL);
|
||||||
displayName = Duktape_GetStringPropertyValue(g_dialogCtx, -1, "displayName", NULL);
|
displayName = Duktape_GetStringPropertyValue(g_dialogCtx, -1, "displayName", NULL);
|
||||||
meshServiceName = Duktape_GetStringPropertyValue(g_dialogCtx, -1, "meshServiceName", "Mesh Agent");
|
meshServiceName = Duktape_GetStringPropertyValue(g_dialogCtx, -1, "meshServiceName", "Mesh Agent");
|
||||||
|
char *bkcolor = Duktape_GetStringPropertyValue(g_dialogCtx, -1, "bkcolor", "0,0,0");
|
||||||
|
|
||||||
// Set text in the dialog box
|
// Set text in the dialog box
|
||||||
if (strnlen_s(meshid, 255) > 50) { meshid += 2; meshid[42] = 0; }
|
if (strnlen_s(meshid, 255) > 50) { meshid += 2; meshid[42] = 0; }
|
||||||
|
|||||||
Reference in New Issue
Block a user