Two new control types: Icon and Bitmap

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@912 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2002-09-04 18:14:34 +00:00
parent dd6f4dea41
commit f8a6be6635

View file

@ -139,6 +139,8 @@ char *STRDUP(const char *c)
#define FIELD_CHECKBOX (7) #define FIELD_CHECKBOX (7)
#define FIELD_RADIOBUTTON (8) #define FIELD_RADIOBUTTON (8)
#define FIELD_LISTBOX (9) #define FIELD_LISTBOX (9)
#define FIELD_ICON (10)
#define FIELD_BITMAP (11)
// general flags // general flags
#define FLAG_BOLD (0x1) #define FLAG_BOLD (0x1)
@ -561,6 +563,10 @@ bool ReadSettings(LPSTR pszFilename) {
pFields[nIdx].nType = FIELD_CHECKBOX; pFields[nIdx].nType = FIELD_CHECKBOX;
} else if (!stricmp(pszResult, "RADIOBUTTON")) { } else if (!stricmp(pszResult, "RADIOBUTTON")) {
pFields[nIdx].nType = FIELD_RADIOBUTTON; pFields[nIdx].nType = FIELD_RADIOBUTTON;
} else if (!stricmp(pszResult, "ICON")) {
pFields[nIdx].nType = FIELD_ICON;
} else if (!stricmp(pszResult, "BITMAP")) {
pFields[nIdx].nType = FIELD_BITMAP;
} else { } else {
continue; continue;
} }
@ -918,6 +924,14 @@ extern "C" void __declspec(dllexport) dialog(HWND hwndParent, int string_size,
} }
strcpy(szFieldClass, "BUTTON"); strcpy(szFieldClass, "BUTTON");
break; break;
case FIELD_ICON:
dwStyle = WS_GROUP | WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS | WS_TABSTOP | SS_ICON;
strcpy(szFieldClass, "STATIC");
break;
case FIELD_BITMAP:
dwStyle = WS_GROUP | WS_VISIBLE | WS_CHILD | WS_CLIPSIBLINGS | WS_TABSTOP | SS_BITMAP;
strcpy(szFieldClass, "STATIC");
break;
default: default:
continue; continue;
} }
@ -985,7 +999,23 @@ extern "C" void __declspec(dllexport) dialog(HWND hwndParent, int string_size,
SendMessage(pFields[nIdx].hwnd, CB_SETCURSEL, nItem, 0); SendMessage(pFields[nIdx].hwnd, CB_SETCURSEL, nItem, 0);
} }
} }
} } else if (pFields[nIdx].nType == FIELD_BITMAP || pFields[nIdx].nType == FIELD_ICON) {
WPARAM nImageType = pFields[nIdx].nType == FIELD_BITMAP ? IMAGE_BITMAP : IMAGE_ICON;
SendMessage(
pFields[nIdx].hwnd,
STM_SETIMAGE,
nImageType,
pFields[nIdx].pszText?
(LPARAM)LoadImage(
0,
pFields[nIdx].pszText,
nImageType,
pFields[nIdx].rect.right-pFields[nIdx].rect.left,
pFields[nIdx].rect.bottom-pFields[nIdx].rect.top,
LR_LOADFROMFILE
):(LPARAM)LoadIcon(GetModuleHandle(0), MAKEINTRESOURCE(103))
);
}
} }
} }