Banner now "works" with the MUI too
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2083 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
6f3fdd6650
commit
ca8fbc5bec
5 changed files with 49 additions and 2 deletions
|
@ -2,16 +2,36 @@
|
|||
#include "../exdll/exdll.h"
|
||||
#include "../../Source/exehead/resource.h"
|
||||
|
||||
// Turn a pair of chars into a word
|
||||
// Turn four chars into a dword
|
||||
#ifdef __BIG_ENDIAN__ // Not very likely, but, still...
|
||||
#define CHAR2_TO_WORD(a,b) (((WORD)(b))|((a)<<8))
|
||||
#define CHAR4_TO_DWORD(a,b,c,d) (((DWORD)CHAR2_TO_WORD(c,d))|(CHAR2_TO_WORD(a,b)<<16))
|
||||
#else
|
||||
#define CHAR2_TO_WORD(a,b) (((WORD)(a))|((b)<<8))
|
||||
#define CHAR4_TO_DWORD(a,b,c,d) (((DWORD)CHAR2_TO_WORD(a,b))|(CHAR2_TO_WORD(c,d)<<16))
|
||||
#endif
|
||||
|
||||
HINSTANCE hInstance;
|
||||
HWND hwBanner;
|
||||
|
||||
char buf[1024];
|
||||
|
||||
unsigned int myatoi(char *s);
|
||||
|
||||
BOOL CALLBACK bannerProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
if (uMsg == WM_INITDIALOG)
|
||||
{
|
||||
popstring(buf);
|
||||
while (*(int*)buf == CHAR4_TO_DWORD('/','s','e','t')) {
|
||||
unsigned int id;
|
||||
popstring(buf);
|
||||
id = myatoi(buf);
|
||||
popstring(buf);
|
||||
SetDlgItemText(hwndDlg,id,buf);
|
||||
popstring(buf);
|
||||
}
|
||||
SetWindowText(hwndDlg,buf);
|
||||
SetDlgItemText(hwndDlg,IDC_STR,buf);
|
||||
}
|
||||
|
@ -38,4 +58,19 @@ void __declspec(dllexport) destroy(HWND hwndParent, int string_size, char *varia
|
|||
BOOL WINAPI _DllMainCRTStartup(HANDLE hInst, ULONG ul_reason_for_call, LPVOID lpReserved)
|
||||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
unsigned int myatoi(char *s)
|
||||
{
|
||||
unsigned int v=0;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
unsigned int c=*s++;
|
||||
if (c >= '0' && c <= '9') c-='0';
|
||||
else break;
|
||||
v*=10;
|
||||
v+=c;
|
||||
}
|
||||
return v;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue