use new section name space

git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@3868 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
kichik 2005-01-14 15:13:47 +00:00
parent c70cfb5ac2
commit f558c99c2c
3 changed files with 38 additions and 27 deletions

View file

@ -303,6 +303,20 @@ FORCE_INLINE int NSISCALL ui_doinstall(void)
set_language();
#endif
{
section *sec = g_sections;
int x = num_sections;
while (x--)
{
if (sec->name_ptr)
{
GetNSISString(sec->name, sec->name_ptr);
}
sec++;
}
}
#ifdef NSIS_CONFIG_VISIBLE_SUPPORT
#ifdef NSIS_CONFIG_SILENT_SUPPORT
@ -951,23 +965,32 @@ static void NSISCALL RefreshComponents(HWND hwTree, HTREEITEM *items)
{
TVITEM item;
int i, flags, state;
section *sec;
item.mask = TVIF_STATE;
item.stateMask = TVIS_STATEIMAGEMASK | TVIS_EXPANDED | TVIS_BOLD;
for (i = 0; i < num_sections; i++)
for (i = 0, sec = g_sections; i < num_sections; i++, sec++)
{
if (!items[i])
{
continue;
}
flags = g_sections[i].flags;
flags = sec->flags;
item.hItem = items[i];
item.mask = TVIF_STATE;
item.state = (flags & SF_BOLD) << 1; // (SF_BOLD << 1) == 16 == TVIS_BOLD
item.state |= flags & SF_EXPAND; // TVIS_EXPANDED == SF_EXPAND
if (flags & SF_NAMECHG)
{
item.mask |= TVIF_TEXT;
item.pszText = sec->name;
sec->flags &= ~SF_NAMECHG;
}
if (flags & SF_PSELECTED)
{
state = 3;
@ -1111,7 +1134,7 @@ static BOOL CALLBACK SelProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
{
section *sec=sections+x;
if (sec->name_ptr)
if (sec->name[0])
{
TVINSERTSTRUCT tv;
@ -1120,7 +1143,7 @@ static BOOL CALLBACK SelProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
tv.item.mask = TVIF_PARAM | TVIF_TEXT | TVIF_STATE;
tv.item.stateMask = TVIS_EXPANDED;
tv.item.lParam = x;
tv.item.pszText = GetNSISStringTT(sec->name_ptr);
tv.item.pszText = sec->name;
tv.item.state = sec->flags & SF_EXPAND; // TVIS_EXPANDED == SF_EXPAND
@ -1165,22 +1188,6 @@ static BOOL CALLBACK SelProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lPar
uMsg = WM_IN_UPDATEMSG;
}
if (uMsg == WM_NOTIFY_SECTEXT) // update text
{
int x = wParam;
int ns = lParam;
TVITEM tv;
tv.hItem = hTreeItems[x];
if (tv.hItem)
{
tv.mask = TVIF_TEXT;
tv.pszText = GetNSISStringTT(ns);
TreeView_SetItem(hwndTree1, &tv);
}
}
if (uMsg == WM_NOTIFY || uMsg == WM_TREEVIEW_KEYHACK)
{
LPNMHDR lpnmh = (LPNMHDR) lParam;
@ -1403,7 +1410,7 @@ static DWORD WINAPI install_thread(LPVOID p)
if (s->flags&SF_SELECTED)
#endif
{
log_printf2("Section: \"%s\"",GetNSISStringTT(s->name_ptr));
log_printf2("Section: \"%s\"",s->name);
if (ExecuteCodeSegment(s->code,progresswnd))
{
g_exec_flags.abort++;
@ -1413,7 +1420,7 @@ static DWORD WINAPI install_thread(LPVOID p)
#ifdef NSIS_CONFIG_COMPONENTPAGE
else
{
log_printf2("Skipping section: \"%s\"",GetNSISStringTT(s->name_ptr));
log_printf2("Skipping section: \"%s\"",name);
}
#endif
s++;

View file

@ -1461,7 +1461,7 @@ static int NSISCALL ExecuteEntry(entry *entry_)
if (!parm2)
{
// getting text
GetNSISString(var1,res);
mystrcpy(var1,sec->name);
}
else
{
@ -1479,9 +1479,13 @@ static int NSISCALL ExecuteEntry(entry *entry_)
}
else
{
// setting text, send the message to do it
SendMessage(g_SectionHack,WM_NOTIFY_SECTEXT,x,parm1);
// setting text
GetNSISString(sec->name,parm4);
sec->flags|=SF_NAMECHG;
// parm1 is zero so name_ptr will be set to zero
// if name_ptr is zero, it won't be used after .onInit
}
((int*)sec)[parm2]=parm1;
if (parm3) // update flags

View file

@ -5193,8 +5193,8 @@ int CEXEBuild::doCommand(int which_token, LineParser &line)
case TOK_SECTIONSETTEXT:
ent.which=EW_SECTIONSET;
ent.offsets[0]=add_string(line.gettoken_str(1));
ent.offsets[1]=add_string(line.gettoken_str(2));
ent.offsets[2]=SECTION_FIELD_SET(name_ptr);
ent.offsets[4]=add_string(line.gettoken_str(2));
SCRIPT_MSG("SectionSetText: %s->%s\n",line.gettoken_str(1),line.gettoken_str(2));
return add_entry(&ent);
case TOK_SECTIONGETTEXT: