fixing bugs #32765, 32693, 21034, 33164.

affects only windows
This commit is contained in:
ssu%netscape.com 2000-04-05 02:13:50 +00:00
Родитель 4a53bf302d
Коммит 5b922c7317
12 изменённых файлов: 1016 добавлений и 290 удалений

Просмотреть файл

@ -40,16 +40,15 @@ if($ENV{MOZ_SRC} eq "")
exit(1);
}
$DEPTH = "$ENV{MOZ_SRC}\\mozilla";
$cwdBuilder = "$DEPTH\\xpinstall\\wizard\\windows\\builder";
$cwdBuilder =~ s/\//\\/g; # convert slashes to backslashes for Dos commands to work
$cwdDist = GetCwd("dist", $DEPTH, $cwdBuilder);
$cwdDistWin = GetCwd("distwin", $DEPTH, $cwdBuilder);
$cwdInstall = GetCwd("install", $DEPTH, $cwdBuilder);
$cwdPackager = GetCwd("packager", $DEPTH, $cwdBuilder);
$verPartial = "5.0.0.";
$ver = $verPartial . GetVersion($DEPTH);
$ftpStr = "ftp://not.needed.com/because/the/xpi/files/will/be/located/in/the/same/dir/as/the/installer";
$DEPTH = "$ENV{MOZ_SRC}\\mozilla";
$cwdBuilder = "$DEPTH\\xpinstall\\wizard\\windows\\builder";
$cwdBuilder =~ s/\//\\/g; # convert slashes to backslashes for Dos commands to work
$cwdDist = GetCwd("dist", $DEPTH, $cwdBuilder);
$cwdDistWin = GetCwd("distwin", $DEPTH, $cwdBuilder);
$cwdInstall = GetCwd("install", $DEPTH, $cwdBuilder);
$cwdPackager = GetCwd("packager", $DEPTH, $cwdBuilder);
$verPartial = "5.0.0.";
$ver = $verPartial . GetVersion($DEPTH);
if(-e "$cwdDist\\stage")
{
@ -60,7 +59,7 @@ mkdir("$cwdDist\\stage", 775);
system("perl $cwdPackager\\pkgcp.pl -s $cwdDistWin -d $cwdDist\\stage -f $cwdPackager\\packages-win -o dos -v");
chdir("$cwdPackager\\windows");
system("perl makeall.pl $ver $ftpStr $cwdDist\\stage $cwdDistWin\\install");
system("perl makeall.pl $ver $cwdDist\\stage $cwdDistWin\\install");
chdir($cwdBuilder);
# Copy the .xpi files to the same directory as setup.exe.

Просмотреть файл

@ -30,9 +30,7 @@ Requirements:
Preferably, perl version 5.004 or newer should be used.
2. Mozilla\xpinstall\wizard\windows needs to be built.
a. to build it, MFC must be installed with VC6
b. set MOZ_MFC=1 in the build environment
c. run nmake -f makefile.win from the above directory
a. run nmake -f makefile.win from the above directory
Build.pl requires no parameters. When it finishes, it will have created a

Просмотреть файл

@ -32,6 +32,7 @@
static WNDPROC OldListBoxWndProc;
static BOOL gbProcessingXpnstallFiles;
static DWORD gdwACFlag;
void AskCancelDlg(HWND hDlg)
{
@ -608,28 +609,24 @@ LRESULT CALLBACK DlgProcSetupType(HWND hDlg, UINT msg, WPARAM wParam, LONG lPara
dwSetupType = ST_RADIO0;
dwTempSetupType = dwSetupType;
SiCNodeSetItemsSelected(diSetupType.stSetupType0.dwCItems, diSetupType.stSetupType0.dwCItemsSelected);
SiCNodeSetItemsSelected(diSetupType.stSetupType0.dwAItems, diSetupType.stSetupType0.dwAItemsSelected);
}
else if(IsDlgButtonChecked(hDlg, IDC_RADIO_ST1) == BST_CHECKED)
{
dwSetupType = ST_RADIO1;
dwTempSetupType = dwSetupType;
SiCNodeSetItemsSelected(diSetupType.stSetupType1.dwCItems, diSetupType.stSetupType1.dwCItemsSelected);
SiCNodeSetItemsSelected(diSetupType.stSetupType1.dwAItems, diSetupType.stSetupType1.dwAItemsSelected);
}
else if(IsDlgButtonChecked(hDlg, IDC_RADIO_ST2) == BST_CHECKED)
{
dwSetupType = ST_RADIO2;
dwTempSetupType = dwSetupType;
SiCNodeSetItemsSelected(diSetupType.stSetupType2.dwCItems, diSetupType.stSetupType2.dwCItemsSelected);
SiCNodeSetItemsSelected(diSetupType.stSetupType2.dwAItems, diSetupType.stSetupType2.dwAItemsSelected);
}
else if(IsDlgButtonChecked(hDlg, IDC_RADIO_ST3) == BST_CHECKED)
{
dwSetupType = ST_RADIO3;
dwTempSetupType = dwSetupType;
SiCNodeSetItemsSelected(diSetupType.stSetupType3.dwCItems, diSetupType.stSetupType3.dwCItemsSelected);
SiCNodeSetItemsSelected(diSetupType.stSetupType3.dwAItems, diSetupType.stSetupType3.dwAItemsSelected);
}
/* set the next dialog to be shown depending on the
@ -660,16 +657,18 @@ LRESULT CALLBACK DlgProcSetupType(HWND hDlg, UINT msg, WPARAM wParam, LONG lPara
return(0);
}
void DrawCheck(LPDRAWITEMSTRUCT lpdis)
void DrawCheck(LPDRAWITEMSTRUCT lpdis, DWORD dwACFlag)
{
siC *siCTemp = NULL;
HDC hdcMem;
HBITMAP hbmpCheckBox;
siCTemp = SiCNodeGetObject(lpdis->itemID, FALSE);
siCTemp = SiCNodeGetObject(lpdis->itemID, FALSE, dwACFlag);
if(siCTemp != NULL)
{
if(siCTemp->dwAttributes & SIC_SELECTED)
if(siCTemp->dwAttributes & SIC_DISABLED)
hbmpCheckBox = hbmpBoxCheckedDisabled;
else if(siCTemp->dwAttributes & SIC_SELECTED)
hbmpCheckBox = hbmpBoxChecked;
else
hbmpCheckBox = hbmpBoxUnChecked;
@ -701,7 +700,9 @@ void lbAddItem(HWND hList, siC *siCComponent)
DWORD dwItem;
dwItem = SendMessage(hList, LB_ADDSTRING, 0, (LPARAM)siCComponent->szDescriptionShort);
if(siCComponent->dwAttributes & SIC_SELECTED)
if(siCComponent->dwAttributes & SIC_DISABLED)
SendMessage(hList, LB_SETITEMDATA, dwItem, (LPARAM)hbmpBoxCheckedDisabled);
else if(siCComponent->dwAttributes & SIC_SELECTED)
SendMessage(hList, LB_SETITEMDATA, dwItem, (LPARAM)hbmpBoxChecked);
else
SendMessage(hList, LB_SETITEMDATA, dwItem, (LPARAM)hbmpBoxUnChecked);
@ -726,47 +727,52 @@ void InvalidateLBCheckbox(HWND hwndListBox)
InvalidateRect(hwndListBox, &rcCheckArea, TRUE);
}
void SunJavaDependencyHack(DWORD dwIndex, BOOL bSelected)
void SunJavaDependencyHack(DWORD dwIndex, BOOL bSelected, DWORD dwACFlag)
{
DWORD dwPatchIndex;
siC *siCTemp = NULL;
siCTemp = SiCNodeGetObject(dwIndex, FALSE);
siCTemp = SiCNodeGetObject(dwIndex, FALSE, dwACFlag);
if(lstrcmpi("Sun Java 2", siCTemp->szDescriptionShort) == 0)
{
if((dwPatchIndex = SiCNodeGetIndexDS("Sun Java 2 Patch")) != -1)
SiCNodeSetAttributes(dwPatchIndex, SIC_SELECTED, bSelected, TRUE);
SiCNodeSetAttributes(dwPatchIndex, SIC_SELECTED, bSelected, TRUE, AC_ALL);
}
}
void ToggleCheck(HWND hwndListBox, DWORD dwIndex)
void ToggleCheck(HWND hwndListBox, DWORD dwIndex, DWORD dwACFlag)
{
BOOL bMoreToResolve;
LPSTR szToggledDescriptionShort = NULL;
DWORD dwAttributes;
// Checks to see if the checkbox is checked or not checked, and
// toggles the node attributes appropriately.
if(SiCNodeGetAttributes(dwIndex, FALSE) & SIC_SELECTED)
dwAttributes = SiCNodeGetAttributes(dwIndex, FALSE, dwACFlag);
if(!(dwAttributes & SIC_DISABLED))
{
if(dwAttributes & SIC_SELECTED)
{
SiCNodeSetAttributes(dwIndex, SIC_SELECTED, FALSE, FALSE);
szToggledDescriptionShort = SiCNodeGetDescriptionShort(dwIndex, FALSE);
SiCNodeSetAttributes(dwIndex, SIC_SELECTED, FALSE, FALSE, dwACFlag);
szToggledDescriptionShort = SiCNodeGetDescriptionShort(dwIndex, FALSE, dwACFlag);
ResolveDependees(szToggledDescriptionShort);
SunJavaDependencyHack(dwIndex, FALSE);
SunJavaDependencyHack(dwIndex, FALSE, dwACFlag);
}
else
{
SiCNodeSetAttributes(dwIndex, SIC_SELECTED, TRUE, FALSE);
SiCNodeSetAttributes(dwIndex, SIC_SELECTED, TRUE, FALSE, dwACFlag);
bMoreToResolve = ResolveDependencies(dwIndex);
while(bMoreToResolve)
bMoreToResolve = ResolveDependencies(-1);
szToggledDescriptionShort = SiCNodeGetDescriptionShort(dwIndex, FALSE);
szToggledDescriptionShort = SiCNodeGetDescriptionShort(dwIndex, FALSE, dwACFlag);
ResolveDependees(szToggledDescriptionShort);
SunJavaDependencyHack(dwIndex, TRUE);
SunJavaDependencyHack(dwIndex, TRUE, dwACFlag);
}
InvalidateLBCheckbox(hwndListBox);
InvalidateLBCheckbox(hwndListBox);
}
}
// ************************************************************************
@ -792,12 +798,35 @@ WNDPROC SubclassWindow( HWND hWnd, WNDPROC NewWndProc)
// ************************************************************************
LRESULT CALLBACK NewListBoxWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
DWORD dwPosX;
DWORD dwPosY;
DWORD dwIndex;
DWORD dwPosX;
DWORD dwPosY;
DWORD dwIndex;
#ifdef XXX_SSU_DISABLED_FOR_NOW
LPDRAWITEMSTRUCT lpdis;
PAINTSTRUCT ps;
HDC hdc;
#endif
switch(uMsg)
{
#ifdef XXX_SSU_DISABLED_FOR_NOW
case WM_DRAWITEM:
lpdis = (LPDRAWITEMSTRUCT)lParam;
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// Add any drawing code here...
// PaintGradientShade(hWnd, hdc);
// OutputSetupTitle(hdc);
EndPaint(hWnd, &ps);
// bReturn = FALSE;
break;
#endif
case WM_CHAR:
/* check for the space key */
if((TCHAR)wParam == 32)
@ -806,7 +835,7 @@ LRESULT CALLBACK NewListBoxWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM l
LB_GETCURSEL,
0,
0);
ToggleCheck(hWnd, dwIndex);
ToggleCheck(hWnd, dwIndex, gdwACFlag);
}
break;
@ -822,7 +851,7 @@ LRESULT CALLBACK NewListBoxWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM l
LB_ITEMFROMPOINT,
0,
(LPARAM)MAKELPARAM(dwPosX, dwPosY)));
ToggleCheck(hWnd, dwIndex);
ToggleCheck(hWnd, dwIndex, gdwACFlag);
}
}
break;
@ -835,24 +864,24 @@ LRESULT CALLBACK DlgProcSelectComponents(HWND hDlg, UINT msg, WPARAM wParam, LON
{
BOOL bReturn = FALSE;
siC *siCTemp;
DWORD dwCurrentItem;
DWORD dwArrayIndex;
DWORD dwIndex;
DWORD dwItems = MAX_BUF;
DWORD dwItemsSelected[MAX_BUF];
HWND hwndLBComponents;
RECT rDlg;
// RECT rLBComponentSize;
// RECT rListBox;
TCHAR tchBuffer[MAX_BUF];
TEXTMETRIC tm;
DWORD y;
// HDC hdcComponentSize;
LPDRAWITEMSTRUCT lpdis;
// RECT rTemp;
ULONGLONG ullDSBuf;
char szBuf[MAX_BUF];
#ifdef XXX_SSU_COMPONENT_SIZE
RECT rTemp;
HDC hdcComponentSize;
RECT rLBComponentSize;
RECT rListBox;
#endif
hwndLBComponents = GetDlgItem(hDlg, IDC_LIST_COMPONENTS);
switch(msg)
@ -864,20 +893,20 @@ LRESULT CALLBACK DlgProcSelectComponents(HWND hDlg, UINT msg, WPARAM wParam, LON
siCTemp = siComponents;
if(siCTemp != NULL)
{
if(!(siCTemp->dwAttributes & SIC_INVISIBLE))
if((!(siCTemp->dwAttributes & SIC_INVISIBLE)) && (!(siCTemp->dwAttributes & SIC_ADDITIONAL)))
lbAddItem(hwndLBComponents, siCTemp);
siCTemp = siCTemp->Next;
while((siCTemp != siComponents) && (siCTemp != NULL))
{
if(!(siCTemp->dwAttributes & SIC_INVISIBLE))
if((!(siCTemp->dwAttributes & SIC_INVISIBLE)) && (!(siCTemp->dwAttributes & SIC_ADDITIONAL)))
lbAddItem(hwndLBComponents, siCTemp);
siCTemp = siCTemp->Next;
}
SetFocus(hwndLBComponents);
SendMessage(hwndLBComponents, LB_SETCURSEL, 0, 0);
SetDlgItemText(hDlg, IDC_STATIC_DESCRIPTION, SiCNodeGetDescriptionLong(0, FALSE));
SetDlgItemText(hDlg, IDC_STATIC_DESCRIPTION, SiCNodeGetDescriptionLong(0, FALSE, AC_COMPONENTS));
}
if(GetClientRect(hDlg, &rDlg))
@ -894,6 +923,7 @@ LRESULT CALLBACK DlgProcSelectComponents(HWND hDlg, UINT msg, WPARAM wParam, LON
lstrcat(szBuf, " K");
SetDlgItemText(hDlg, IDC_SPACE_AVAILABLE, szBuf);
gdwACFlag = AC_COMPONENTS;
OldListBoxWndProc = SubclassWindow(hwndLBComponents, (WNDPROC)NewListBoxWndProc);
break;
@ -905,9 +935,11 @@ LRESULT CALLBACK DlgProcSelectComponents(HWND hDlg, UINT msg, WPARAM wParam, LON
break;
SendMessage(lpdis->hwndItem, LB_GETTEXT, lpdis->itemID, (LPARAM)tchBuffer);
// GetClientRect(lpdis->hwndItem, &rTemp);
// hdcComponentSize = GetDC(lpdis->hwndItem);
// SelectObject(hdcComponentSize, GetCurrentObject(lpdis->hDC, OBJ_FONT));
#ifdef XXX_SSU_COMPONENT_SIZE
GetClientRect(lpdis->hwndItem, &rTemp);
hdcComponentSize = GetDC(lpdis->hwndItem);
SelectObject(hdcComponentSize, GetCurrentObject(lpdis->hDC, OBJ_FONT));
#endif
if((lpdis->itemAction & ODA_FOCUS) && (lpdis->itemState & ODS_SELECTED))
{
@ -917,20 +949,38 @@ LRESULT CALLBACK DlgProcSelectComponents(HWND hDlg, UINT msg, WPARAM wParam, LON
if(lpdis->itemAction & ODA_FOCUS)
{
siCTemp = SiCNodeGetObject(lpdis->itemID, FALSE, AC_COMPONENTS);
if((lpdis->itemState & ODS_SELECTED) &&
!(lpdis->itemState & ODS_FOCUS))
{
SetTextColor(lpdis->hDC, GetSysColor(COLOR_WINDOWTEXT));
SetBkColor(lpdis->hDC, GetSysColor(COLOR_WINDOW));
// SetTextColor(hdcComponentSize, GetSysColor(COLOR_WINDOWTEXT));
// SetBkColor(hdcComponentSize, GetSysColor(COLOR_WINDOW));
if(siCTemp->dwAttributes & SIC_DISABLED)
SetTextColor(lpdis->hDC, GetSysColor(COLOR_GRAYTEXT));
else
{
SetTextColor(lpdis->hDC, GetSysColor(COLOR_WINDOWTEXT));
SetBkColor(lpdis->hDC, GetSysColor(COLOR_WINDOW));
#ifdef XXX_SSU_COMPONENT_SIZE
SetTextColor(hdcComponentSize, GetSysColor(COLOR_WINDOWTEXT));
SetBkColor(hdcComponentSize, GetSysColor(COLOR_WINDOW));
#endif
}
}
else
{
SetTextColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
SetBkColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHT));
// SetTextColor(hdcComponentSize, GetSysColor(COLOR_HIGHLIGHTTEXT));
// SetBkColor(hdcComponentSize, GetSysColor(COLOR_HIGHLIGHT));
if(siCTemp->dwAttributes & SIC_DISABLED)
SetTextColor(lpdis->hDC, GetSysColor(COLOR_GRAYTEXT));
else
{
SetTextColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
SetBkColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHT));
#ifdef XXX_SSU_COMPONENT_SIZE
SetTextColor(hdcComponentSize, GetSysColor(COLOR_HIGHLIGHTTEXT));
SetBkColor(hdcComponentSize, GetSysColor(COLOR_HIGHLIGHT));
#endif
}
}
}
@ -949,8 +999,8 @@ LRESULT CALLBACK DlgProcSelectComponents(HWND hDlg, UINT msg, WPARAM wParam, LON
strlen(tchBuffer),
NULL);
#ifdef XXX_SSU
siCTemp = SiCNodeGetObject(lpdis->itemID, FALSE);
#ifdef XXX_SSU_COMPONENT_SIZE
siCTemp = SiCNodeGetObject(lpdis->itemID, FALSE, AC_COMPONENTS);
_ui64toa(siCTemp->ullInstallSizeArchive, tchBuffer, 10);
lstrcat(tchBuffer, " K");
@ -982,7 +1032,7 @@ LRESULT CALLBACK DlgProcSelectComponents(HWND hDlg, UINT msg, WPARAM wParam, LON
#endif
}
DrawCheck(lpdis);
DrawCheck(lpdis, AC_COMPONENTS);
// draw the focus rect on the selected item
if((lpdis->itemAction & ODA_FOCUS) &&
@ -991,7 +1041,10 @@ LRESULT CALLBACK DlgProcSelectComponents(HWND hDlg, UINT msg, WPARAM wParam, LON
DrawFocusRect(lpdis->hDC, &(lpdis->rcItem));
}
// ReleaseDC(lpdis->hwndItem, hdcComponentSize);
#ifdef XXX_SSU_COMPONENT_SIZE
ReleaseDC(lpdis->hwndItem, hdcComponentSize);
#endif
bReturn = TRUE;
/* update the disk space required info in the dialog. It is already
@ -1013,23 +1066,10 @@ LRESULT CALLBACK DlgProcSelectComponents(HWND hDlg, UINT msg, WPARAM wParam, LON
case IDC_LIST_COMPONENTS:
/* to update the long description for each component the user selected */
if((dwIndex = SendMessage(hwndLBComponents, LB_GETCURSEL, 0, 0)) != LB_ERR)
SetDlgItemText(hDlg, IDC_STATIC_DESCRIPTION, SiCNodeGetDescriptionLong(dwIndex, FALSE));
SetDlgItemText(hDlg, IDC_STATIC_DESCRIPTION, SiCNodeGetDescriptionLong(dwIndex, FALSE, AC_COMPONENTS));
break;
case IDWIZNEXT:
dwItems = ListView_GetItemCount(hwndLBComponents);
dwArrayIndex = 0;
for(dwCurrentItem = 0; dwCurrentItem < dwItems; dwCurrentItem++)
{
if(ListView_GetCheckState(hwndLBComponents, dwCurrentItem))
{
dwItemsSelected[dwArrayIndex] = dwCurrentItem;
++dwArrayIndex;
}
}
SiCNodeSetItemsSelected(dwItems, dwItemsSelected);
DestroyWindow(hDlg);
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
break;
@ -1052,25 +1092,18 @@ LRESULT CALLBACK DlgProcSelectComponents(HWND hDlg, UINT msg, WPARAM wParam, LON
return(bReturn);
}
LRESULT CALLBACK DlgProcSelectAdditions(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam)
LRESULT CALLBACK DlgProcSelectAdditionalComponents(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam)
{
BOOL bReturn = FALSE;
siC *siCTemp;
DWORD dwCurrentItem;
DWORD dwArrayIndex;
DWORD dwIndex;
DWORD dwItems = MAX_BUF;
DWORD dwItemsSelected[MAX_BUF];
HWND hwndLBComponents;
RECT rDlg;
RECT rLBComponentSize;
RECT rListBox;
TCHAR tchBuffer[MAX_BUF];
TEXTMETRIC tm;
DWORD y;
HDC hdcComponentSize;
LPDRAWITEMSTRUCT lpdis;
RECT rTemp;
ULONGLONG ullDSBuf;
char szBuf[MAX_BUF];
@ -1079,32 +1112,31 @@ LRESULT CALLBACK DlgProcSelectAdditions(HWND hDlg, UINT msg, WPARAM wParam, LONG
switch(msg)
{
case WM_INITDIALOG:
SetWindowText(hDlg, diSelectComponents.szTitle);
SetDlgItemText(hDlg, IDC_MESSAGE0, diSelectComponents.szMessage0);
SetWindowText(hDlg, diSelectAdditionalComponents.szTitle);
SetDlgItemText(hDlg, IDC_MESSAGE0, diSelectAdditionalComponents.szMessage0);
siCTemp = siComponents;
if(siCTemp != NULL)
{
if(!(siCTemp->dwAttributes & SIC_INVISIBLE))
if((!(siCTemp->dwAttributes & SIC_INVISIBLE)) && (siCTemp->dwAttributes & SIC_ADDITIONAL))
lbAddItem(hwndLBComponents, siCTemp);
siCTemp = siCTemp->Next;
while((siCTemp != siComponents) && (siCTemp != NULL))
{
if(!(siCTemp->dwAttributes & SIC_INVISIBLE))
if((!(siCTemp->dwAttributes & SIC_INVISIBLE)) && (siCTemp->dwAttributes & SIC_ADDITIONAL))
lbAddItem(hwndLBComponents, siCTemp);
siCTemp = siCTemp->Next;
}
SetFocus(hwndLBComponents);
SendMessage(hwndLBComponents, LB_SETCURSEL, 0, 0);
SetDlgItemText(hDlg, IDC_STATIC_DESCRIPTION, SiCNodeGetDescriptionLong(0, FALSE));
SetDlgItemText(hDlg, IDC_STATIC_DESCRIPTION, SiCNodeGetDescriptionLong(0, FALSE, AC_ADDITIONAL_COMPONENTS));
}
if(GetClientRect(hDlg, &rDlg))
SetWindowPos(hDlg, HWND_TOP, (dwScreenX/2)-(rDlg.right/2), (dwScreenY/2)-(rDlg.bottom/2), 0, 0, SWP_NOSIZE);
#ifdef XXX_SSU
/* update the disk space available info in the dialog. GetDiskSpaceAvailable()
returns value in kbytes */
ullDSBuf = GetDiskSpaceAvailable(sgProduct.szPath);
@ -1114,9 +1146,9 @@ LRESULT CALLBACK DlgProcSelectAdditions(HWND hDlg, UINT msg, WPARAM wParam, LONG
lstrcat(szBuf, " - ");
lstrcat(szBuf, tchBuffer);
lstrcat(szBuf, " K");
SetDlgItemText(hDlg, IDC_STATIC_DRIVE_SPACE_AVAILABLE, szBuf);
#endif
SetDlgItemText(hDlg, IDC_SPACE_AVAILABLE, szBuf);
gdwACFlag = AC_ADDITIONAL_COMPONENTS;
OldListBoxWndProc = SubclassWindow(hwndLBComponents, (WNDPROC)NewListBoxWndProc);
break;
@ -1128,10 +1160,6 @@ LRESULT CALLBACK DlgProcSelectAdditions(HWND hDlg, UINT msg, WPARAM wParam, LONG
break;
SendMessage(lpdis->hwndItem, LB_GETTEXT, lpdis->itemID, (LPARAM)tchBuffer);
GetClientRect(lpdis->hwndItem, &rTemp);
hdcComponentSize = GetDC(lpdis->hwndItem);
SelectObject(hdcComponentSize, GetCurrentObject(lpdis->hDC, OBJ_FONT));
if((lpdis->itemAction & ODA_FOCUS) && (lpdis->itemState & ODS_SELECTED))
{
// remove the focus rect on the previous selected item
@ -1140,20 +1168,28 @@ LRESULT CALLBACK DlgProcSelectAdditions(HWND hDlg, UINT msg, WPARAM wParam, LONG
if(lpdis->itemAction & ODA_FOCUS)
{
siCTemp = SiCNodeGetObject(lpdis->itemID, FALSE, AC_ADDITIONAL_COMPONENTS);
if((lpdis->itemState & ODS_SELECTED) &&
!(lpdis->itemState & ODS_FOCUS))
{
SetTextColor(lpdis->hDC, GetSysColor(COLOR_WINDOWTEXT));
SetBkColor(lpdis->hDC, GetSysColor(COLOR_WINDOW));
SetTextColor(hdcComponentSize, GetSysColor(COLOR_WINDOWTEXT));
SetBkColor(hdcComponentSize, GetSysColor(COLOR_WINDOW));
if(siCTemp->dwAttributes & SIC_DISABLED)
SetTextColor(lpdis->hDC, GetSysColor(COLOR_GRAYTEXT));
else
{
SetTextColor(lpdis->hDC, GetSysColor(COLOR_WINDOWTEXT));
SetBkColor(lpdis->hDC, GetSysColor(COLOR_WINDOW));
}
}
else
{
SetTextColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
SetBkColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHT));
SetTextColor(hdcComponentSize, GetSysColor(COLOR_HIGHLIGHTTEXT));
SetBkColor(hdcComponentSize, GetSysColor(COLOR_HIGHLIGHT));
if(siCTemp->dwAttributes & SIC_DISABLED)
SetTextColor(lpdis->hDC, GetSysColor(COLOR_GRAYTEXT));
else
{
SetTextColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
SetBkColor(lpdis->hDC, GetSysColor(COLOR_HIGHLIGHT));
}
}
}
@ -1171,39 +1207,9 @@ LRESULT CALLBACK DlgProcSelectAdditions(HWND hDlg, UINT msg, WPARAM wParam, LONG
tchBuffer,
strlen(tchBuffer),
NULL);
siCTemp = SiCNodeGetObject(lpdis->itemID, FALSE);
_ui64toa(siCTemp->ullInstallSizeArchive, tchBuffer, 10);
lstrcat(tchBuffer, " K");
/* calculate clipping region. The region being the entire listbox window */
GetClientRect(hwndLBComponents, &rListBox);
if(lpdis->rcItem.bottom > rListBox.bottom)
rLBComponentSize.bottom = rListBox.bottom - 1;
else
rLBComponentSize.bottom = lpdis->rcItem.bottom - 1;
rLBComponentSize.left = lpdis->rcItem.right - 50;
rLBComponentSize.right = lpdis->rcItem.right;
if(lpdis->rcItem.top < rListBox.top)
rLBComponentSize.top = rListBox.top + 1;
else
rLBComponentSize.top = lpdis->rcItem.top + 1;
/* set text alignment */
SetTextAlign(hdcComponentSize, TA_RIGHT);
/* output string */
ExtTextOut(hdcComponentSize,
lpdis->rcItem.right - 3,
y,
ETO_OPAQUE | ETO_CLIPPED,
&(rLBComponentSize),
tchBuffer,
strlen(tchBuffer),
NULL);
}
DrawCheck(lpdis);
DrawCheck(lpdis, AC_ADDITIONAL_COMPONENTS);
// draw the focus rect on the selected item
if((lpdis->itemAction & ODA_FOCUS) &&
@ -1212,20 +1218,16 @@ LRESULT CALLBACK DlgProcSelectAdditions(HWND hDlg, UINT msg, WPARAM wParam, LONG
DrawFocusRect(lpdis->hDC, &(lpdis->rcItem));
}
ReleaseDC(lpdis->hwndItem, hdcComponentSize);
bReturn = TRUE;
/* update the disk space required info in the dialog. It is already
in Kilobytes */
ullDSBuf = GetDiskSpaceRequired(DSR_DOWNLOAD_SIZE);
_ui64toa(ullDSBuf, tchBuffer, 10);
// ParsePath(sgProduct.szPath, szBuf, sizeof(szBuf), PP_ROOT_ONLY);
// RemoveBackSlash(szBuf);
// lstrcat(szBuf, " - ");
lstrcpy(szBuf, tchBuffer);
lstrcat(szBuf, " K");
SetDlgItemText(hDlg, IDC_STATIC_DRIVE_SPACE_REQUIRED, szBuf);
SetDlgItemText(hDlg, IDC_DOWNLOAD_SIZE, szBuf);
break;
case WM_COMMAND:
@ -1234,23 +1236,10 @@ LRESULT CALLBACK DlgProcSelectAdditions(HWND hDlg, UINT msg, WPARAM wParam, LONG
case IDC_LIST_COMPONENTS:
/* to update the long description for each component the user selected */
if((dwIndex = SendMessage(hwndLBComponents, LB_GETCURSEL, 0, 0)) != LB_ERR)
SetDlgItemText(hDlg, IDC_STATIC_DESCRIPTION, SiCNodeGetDescriptionLong(dwIndex, FALSE));
SetDlgItemText(hDlg, IDC_STATIC_DESCRIPTION, SiCNodeGetDescriptionLong(dwIndex, FALSE, AC_ADDITIONAL_COMPONENTS));
break;
case IDWIZNEXT:
dwItems = ListView_GetItemCount(hwndLBComponents);
dwArrayIndex = 0;
for(dwCurrentItem = 0; dwCurrentItem < dwItems; dwCurrentItem++)
{
if(ListView_GetCheckState(hwndLBComponents, dwCurrentItem))
{
dwItemsSelected[dwArrayIndex] = dwCurrentItem;
++dwArrayIndex;
}
}
SiCNodeSetItemsSelected(dwItems, dwItemsSelected);
DestroyWindow(hDlg);
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
break;
@ -1479,6 +1468,82 @@ LRESULT CALLBACK DlgProcProgramFolder(HWND hDlg, UINT msg, WPARAM wParam, LONG l
return(0);
}
LRESULT CALLBACK DlgProcSiteSelector(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam)
{
RECT rDlg;
HWND hwndCBSiteSelector;
int iIndex;
ssi *ssiTemp;
char szCBDefault[MAX_BUF];
hwndCBSiteSelector = GetDlgItem(hDlg, IDC_SITE_SELECTOR);
switch(msg)
{
case WM_INITDIALOG:
SetWindowText(hDlg, diSiteSelector.szTitle);
SetDlgItemText(hDlg, IDC_MESSAGE0, diSiteSelector.szMessage0);
if(GetClientRect(hDlg, &rDlg))
SetWindowPos(hDlg, HWND_TOP, (dwScreenX/2)-(rDlg.right/2), (dwScreenY/2)-(rDlg.bottom/2), 0, 0, SWP_NOSIZE);
ssiTemp = ssiSiteSelector;
do
{
if(ssiTemp == NULL)
break;
SendMessage(hwndCBSiteSelector, CB_ADDSTRING, 0, (LPARAM)(ssiTemp->szDescription));
ssiTemp = ssiTemp->Next;
} while(ssiTemp != ssiSiteSelector);
if((szSiteSelectorDescription == NULL) || (*szSiteSelectorDescription == '\0'))
{
if((NS_LoadString(hSetupRscInst, IDS_CB_DEFAULT, szCBDefault, MAX_BUF) == WIZ_OK) &&
((iIndex = SendMessage(hwndCBSiteSelector, CB_SELECTSTRING, -1, (LPARAM)szCBDefault)) != CB_ERR))
SendMessage(hwndCBSiteSelector, CB_SETCURSEL, (WPARAM)iIndex, 0);
else
SendMessage(hwndCBSiteSelector, CB_SETCURSEL, 0, 0);
}
else if((iIndex = SendMessage(hwndCBSiteSelector, CB_SELECTSTRING, -1, (LPARAM)szSiteSelectorDescription) != CB_ERR))
SendMessage(hwndCBSiteSelector, CB_SETCURSEL, (WPARAM)iIndex, 0);
else
SendMessage(hwndCBSiteSelector, CB_SETCURSEL, 0, 0);
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
LPSTR szSsiDomain = NULL;
case IDWIZNEXT:
iIndex = SendMessage(hwndCBSiteSelector, CB_GETCURSEL, 0, 0);
SendMessage(hwndCBSiteSelector, CB_GETLBTEXT, (WPARAM)iIndex, (LPARAM)szSiteSelectorDescription);
DestroyWindow(hDlg);
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
break;
case IDWIZBACK:
iIndex = SendMessage(hwndCBSiteSelector, CB_GETCURSEL, 0, 0);
SendMessage(hwndCBSiteSelector, CB_GETLBTEXT, (WPARAM)iIndex, (LPARAM)szSiteSelectorDescription);
DestroyWindow(hDlg);
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
break;
case IDCANCEL:
AskCancelDlg(hDlg);
break;
default:
break;
}
break;
}
return(0);
}
LRESULT CALLBACK DlgProcStartInstall(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam)
{
RECT rDlg;
@ -1726,8 +1791,6 @@ void DlgSequenceNext()
break;
case DLG_SETUP_TYPE:
/* depending on what the users chooses, the Select Components dialog */
/* might not be the next dialog in the sequence. */
dwWizardState = DLG_SELECT_COMPONENTS;
gbProcessingXpnstallFiles = FALSE;
if(diSelectComponents.bShowDialog)
@ -1737,6 +1800,15 @@ void DlgSequenceNext()
break;
case DLG_SELECT_COMPONENTS:
dwWizardState = DLG_SELECT_ADDITIONAL_COMPONENTS;
gbProcessingXpnstallFiles = FALSE;
if((diSelectAdditionalComponents.bShowDialog) && (GetAdditionalComponentsCount() > 0))
InstantiateDialog(dwWizardState, diSelectAdditionalComponents.szTitle, DlgProcSelectAdditionalComponents);
else
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
break;
case DLG_SELECT_ADDITIONAL_COMPONENTS:
dwWizardState = DLG_WINDOWS_INTEGRATION;
gbProcessingXpnstallFiles = FALSE;
if(diWindowsIntegration.bShowDialog)
@ -1777,6 +1849,15 @@ void DlgSequenceNext()
break;
case DLG_PROGRAM_FOLDER:
dwWizardState = DLG_SITE_SELECTOR;
gbProcessingXpnstallFiles = FALSE;
if(diSiteSelector.bShowDialog)
InstantiateDialog(dwWizardState, diSiteSelector.szTitle, DlgProcSiteSelector);
else
PostMessage(hWndMain, WM_COMMAND, IDWIZNEXT, 0);
break;
case DLG_SITE_SELECTOR:
dwWizardState = DLG_START_INSTALL;
gbProcessingXpnstallFiles = FALSE;
if(diStartInstall.bShowDialog)
@ -1856,9 +1937,18 @@ void DlgSequencePrev()
switch(dwWizardState)
{
case DLG_START_INSTALL:
dwWizardState = DLG_SITE_SELECTOR;
gbProcessingXpnstallFiles = FALSE;
if(diSiteSelector.bShowDialog)
InstantiateDialog(dwWizardState, diSiteSelector.szTitle, DlgProcSiteSelector);
else
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
break;
case DLG_SITE_SELECTOR:
dwWizardState = DLG_PROGRAM_FOLDER;
gbProcessingXpnstallFiles = FALSE;
if(diStartInstall.bShowDialog)
if(diProgramFolder.bShowDialog)
InstantiateDialog(dwWizardState, diProgramFolder.szTitle, DlgProcProgramFolder);
else
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
@ -1877,8 +1967,15 @@ void DlgSequencePrev()
break;
case DLG_WINDOWS_INTEGRATION:
/* depending on what the users chooses, the Select Components dialog */
/* might not be the next dialog in the sequence. */
dwWizardState = DLG_SELECT_ADDITIONAL_COMPONENTS;
gbProcessingXpnstallFiles = FALSE;
if((diSelectAdditionalComponents.bShowDialog) && (GetAdditionalComponentsCount() > 0))
InstantiateDialog(dwWizardState, diSelectAdditionalComponents.szTitle, DlgProcSelectAdditionalComponents);
else
PostMessage(hWndMain, WM_COMMAND, IDWIZBACK, 0);
break;
case DLG_SELECT_ADDITIONAL_COMPONENTS:
dwWizardState = DLG_SELECT_COMPONENTS;
gbProcessingXpnstallFiles = FALSE;
if(diSelectComponents.bShowDialog)

Просмотреть файл

@ -30,13 +30,16 @@ LRESULT CALLBACK DlgProcWelcome(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam
LRESULT CALLBACK DlgProcLicense(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
LRESULT CALLBACK DlgProcSetupType(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
LRESULT CALLBACK DlgProcSelectComponents(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
LRESULT CALLBACK DlgProcSelectAdditionalComponents(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
LRESULT CALLBACK DlgProcWindowsIntegration(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
LRESULT CALLBACK DlgProcProgramFolder(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
LRESULT CALLBACK DlgProcSiteSelector(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
LRESULT CALLBACK DlgProcStartInstall(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
LRESULT CALLBACK DlgProcReboot(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
LRESULT CALLBACK DlgProcMessage(HWND hDlg, UINT msg, WPARAM wParam, LONG lParam);
LRESULT CALLBACK NewListBoxWndProc( HWND, UINT, WPARAM, LPARAM);
void ToggleCheck(HWND hwndListBox, DWORD dwIndex, DWORD dwACFlag);
void AskCancelDlg(HWND hDlg);
void lbAddItem(HWND hList, siC *siCComponent);
void InstantiateDialog(DWORD dwDlgID, LPSTR szTitle, WNDPROC wpDlgProc);
@ -46,11 +49,10 @@ void PaintGradientShade(HWND hWnd, HDC hdc);
BOOL BrowseForDirectory(HWND hDlg, char *szCurrDir);
LRESULT CALLBACK BrowseHookProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
void ShowMessage(LPSTR szMessage, BOOL bShow);
void DrawCheck(LPDRAWITEMSTRUCT lpdis);
void DrawCheck(LPDRAWITEMSTRUCT lpdis, DWORD dwACFlag);
void InvalidateLBCheckbox(HWND hwndListBox);
void ProcessWindowsMessages(void);
void CheckWizardStateCustom(DWORD dwDefault);
void SunJavaDependencyHack(DWORD dwIndex, BOOL bSelected);
void SunJavaDependencyHack(DWORD dwIndex, BOOL bSelected, DWORD dwACFlag);
#endif

Просмотреть файл

@ -34,6 +34,7 @@ extern HINSTANCE hSDInst;
extern HINSTANCE hXPIStubInst;
extern HBITMAP hbmpBoxChecked;
extern HBITMAP hbmpBoxCheckedDisabled;
extern HBITMAP hbmpBoxUnChecked;
extern HANDLE hAccelTable;
@ -55,6 +56,8 @@ extern LPSTR szSetupDir;
extern LPSTR szTempDir;
extern LPSTR szFileIniConfig;
extern LPSTR szSiteSelectorDescription;
extern DWORD dwWizardState;
extern DWORD dwSetupType;
extern DWORD dwOSType;
@ -74,12 +77,15 @@ extern diW diWelcome;
extern diL diLicense;
extern diST diSetupType;
extern diSC diSelectComponents;
extern diSC diSelectAdditionalComponents;
extern diWI diWindowsIntegration;
extern diPF diProgramFolder;
extern diSS diSiteSelector;
extern diSI diStartInstall;
extern diR diReboot;
extern siSD siSDObject;
extern siCF siCFCoreFile;
extern siC *siComponents;
extern ssi *ssiSiteSelector;
#endif

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -64,6 +64,7 @@ HRESULT InitDlgSelectComponents(diSC *diDialog, DWORD dwSM);
HRESULT InitDlgWindowsIntegration(diWI *diDialog);
HRESULT InitDlgProgramFolder(diPF *diDialog);
HRESULT InitDlgStartInstall(diSI *diDialog);
HRESULT InitDlgSiteSelector(diSS *diDialog);
HRESULT InitSDObject(void);
void DeInitSDObject(void);
siC *CreateSiCNode(void);
@ -72,18 +73,19 @@ void SiCNodeDelete(siC *siCTemp);
siCD *CreateSiCDepNode(void);
void SiCDepNodeDelete(siCD *siCDepTemp);
void SiCDepNodeInsert(siCD **siCDepHead, siCD *siCDepTemp);
HRESULT SiCNodeGetAttributes(DWORD dwIndex, BOOL bIncludeInvisible);
void SiCNodeSetAttributes(DWORD dwIndex, DWORD dwAttributes, BOOL bSet, BOOL bIncludeInvisible);
HRESULT SiCNodeGetAttributes(DWORD dwIndex, BOOL bIncludeInvisible, DWORD dwACFlag);
void SiCNodeSetAttributes(DWORD dwIndex, DWORD dwAttributes, BOOL bSet, BOOL bIncludeInvisible, DWORD dwACFlag);
void SiCNodeSetItemsSelected(DWORD dwItems, DWORD *dwItemsSelected);
char *SiCNodeGetDescriptionShort(DWORD dwIndex, BOOL bIncludeInvisible);
char *SiCNodeGetDescriptionLong(DWORD dwIndex, BOOL bIncludeInvisible);
siC *SiCNodeGetObject(DWORD dwIndex, BOOL bIncludeInvisibleObjs);
ULONGLONG SiCNodeGetInstallSize(DWORD dwIndex, BOOL bIncludeInvisible);
ULONGLONG SiCNodeGetInstallSizeSystem(DWORD dwIndex, BOOL bIncludeInvisible);
ULONGLONG SiCNodeGetInstallSizeArchive(DWORD dwIndex, BOOL bIncludeInvisible);
char *SiCNodeGetDescriptionShort(DWORD dwIndex, BOOL bIncludeInvisible, DWORD dwACFlag);
char *SiCNodeGetDescriptionLong(DWORD dwIndex, BOOL bIncludeInvisible, DWORD dwACFlag);
siC *SiCNodeGetObject(DWORD dwIndex, BOOL bIncludeInvisibleObjs, DWORD dwACFlag);
ULONGLONG SiCNodeGetInstallSize(DWORD dwIndex, BOOL bIncludeInvisible, DWORD dwACFlag);
ULONGLONG SiCNodeGetInstallSizeSystem(DWORD dwIndex, BOOL bIncludeInvisible, DWORD dwACFlag);
ULONGLONG SiCNodeGetInstallSizeArchive(DWORD dwIndex, BOOL bIncludeInvisible, DWORD dwACFlag);
void InitSiComponents(char *szFileIni);
HRESULT ParseComponentAttributes(char *szBuf);
void InitSiComponents(char *szFileIni);
void InitSiteSelector(char *szFileIni);
void DeInitSiCDependencies(siCD *siCDDependencies);
BOOL ResolveDependencies(DWORD dwIndex);
BOOL ResolveComponentDependency(siCD *siCDInDependency);
@ -100,6 +102,7 @@ void DeInitDlgSelectComponents(diSC *diDialog);
void DeInitDlgWindowsIntegration(diWI *diDialog);
void DeInitDlgProgramFolder(diPF *diDialog);
void DeInitDlgStartInstall(diSI *diDialog);
void DeInitDlgSiteSelector(diSS *diDialog);
void DetermineOSVersion(void);
void DeInitSiComponents(void);
void DeInitSetupGeneral(void);
@ -110,15 +113,21 @@ HRESULT GetConfigIni(void);
void CleanTempFiles(void);
void OutputSetupTitle(HDC hDC);
HRESULT SdArchives(LPSTR szFileIdi, LPSTR szDownloadDir);
HRESULT RetrieveArchives(void);
DWORD NumberOfArchivesToDownload(void);
long RetrieveArchives(void);
long RetrieveRedirectFile(void);
/* HRESULT SmartUpdateJars(void); */
void ParsePath(LPSTR szInput, LPSTR szOutput, DWORD dwLength, DWORD dwType);
void RemoveBackSlash(LPSTR szInput);
void AppendBackSlash(LPSTR szInput, DWORD dwInputSize);
void RemoveSlash(LPSTR szInput);
void AppendSlash(LPSTR szInput, DWORD dwInputSize);
BOOL DeleteIdiGetConfigIni(void);
BOOL DeleteIdiGetArchives(void);
BOOL DeleteIdiGetRedirect(void);
BOOL DeleteIdiFileIniConfig(void);
void DeleteArchives(void);
BOOL DeleteIniRedirect(void);
HRESULT LaunchApps(void);
HRESULT FileExists(LPSTR szFile);
int ExtractDirEntries(char* directory,void* vZip);
@ -152,6 +161,12 @@ BOOL GetFileVersion(LPSTR szFile, verBlock *vbVersion);
BOOL CheckLegacy(HWND hDlg);
int CompareVersion(verBlock vbVersionOld, verBlock vbVersionNew);
COLORREF DecryptFontColor(LPSTR szColor);
ssi *CreateSsiSiteSelectorNode();
void SsiSiteSelectorNodeInsert(ssi **ssiHead, ssi *ssiTemp);
void SsiSiteSelectorNodeDelete(ssi *ssiTemp);
ssi* SsiGetNode(LPSTR szDescription);
void UpdateSiteSelector(void);
DWORD GetAdditionalComponentsCount(void);
BOOL bSDInit;

Просмотреть файл

@ -34,6 +34,7 @@ HINSTANCE hSDInst;
HINSTANCE hXPIStubInst;
HBITMAP hbmpBoxChecked;
HBITMAP hbmpBoxCheckedDisabled;
HBITMAP hbmpBoxUnChecked;
HANDLE hAccelTable;
@ -55,6 +56,8 @@ LPSTR szSetupDir;
LPSTR szTempDir;
LPSTR szFileIniConfig;
LPSTR szSiteSelectorDescription;
DWORD dwWizardState;
DWORD dwSetupType;
DWORD dwOSType;
@ -74,13 +77,16 @@ diW diWelcome;
diL diLicense;
diST diSetupType;
diSC diSelectComponents;
diSC diSelectAdditionalComponents;
diWI diWindowsIntegration;
diPF diProgramFolder;
diSS diSiteSelector;
diSI diStartInstall;
diR diReboot;
siSD siSDObject;
siCF siCFCoreFile;
siC *siComponents;
ssi *ssiSiteSelector;
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow)
{

Просмотреть файл

@ -60,6 +60,8 @@ typedef int PRInt32;
#define FILE_INI_CONFIG "config.ini"
#define FILE_IDI_GETCONFIGINI "getconfigini.idi"
#define FILE_IDI_GETARCHIVES "getarchives.idi"
#define FILE_IDI_GETREDIRECT "getredirect.idi"
#define FILE_INI_REDIRECT "redirect.ini"
/* PP: Parse Path */
#define PP_FILENAME_ONLY 1
@ -115,6 +117,14 @@ typedef int PRInt32;
#define SIC_LAUNCHAPP 4
#define SIC_DOWNLOAD_REQUIRED 8
#define SIC_DOWNLOAD_ONLY 16
#define SIC_ADDITIONAL 32
#define SIC_DISABLED 64
/* AC: Additional Components */
#define AC_NONE 0
#define AC_COMPONENTS 1
#define AC_ADDITIONAL_COMPONENTS 2
#define AC_ALL 3
/* OS: Operating System */
#define OS_WIN95_DEBUTE 1
@ -162,7 +172,7 @@ typedef struct stStruct
DWORD dwCItems;
DWORD dwCItemsSelected[MAX_BUF]; /* components */
DWORD dwAItems;
DWORD dwAItemsSelected[MAX_BUF]; /* additions */
// DWORD dwAItemsSelected[MAX_BUF]; /* additions */
LPSTR szDescriptionShort;
LPSTR szDescriptionLong;
} st;
@ -215,6 +225,13 @@ typedef struct dlgProgramFolder
LPSTR szMessage0;
} diPF;
typedef struct dlgSiteSelector
{
BOOL bShowDialog;
LPSTR szTitle;
LPSTR szMessage0;
} diSS;
typedef struct dlgStartInstall
{
BOOL bShowDialog;
@ -303,4 +320,13 @@ struct sinfoComponent
siC *Prev;
};
typedef struct ssInfo ssi;
struct ssInfo
{
LPSTR szDescription;
LPSTR szDomain;
ssi *Next;
ssi *Prev;
};
#endif

Просмотреть файл

@ -132,14 +132,14 @@ void GetTotalArchivesToInstall(void)
dwIndex0 = 0;
dwTotalArchives = 0;
siCObject = SiCNodeGetObject(dwIndex0, TRUE);
siCObject = SiCNodeGetObject(dwIndex0, TRUE, AC_ALL);
while(siCObject)
{
if((siCObject->dwAttributes & SIC_SELECTED) && !(siCObject->dwAttributes & SIC_LAUNCHAPP))
++dwTotalArchives;
++dwIndex0;
siCObject = SiCNodeGetObject(dwIndex0, TRUE);
siCObject = SiCNodeGetObject(dwIndex0, TRUE, AC_ALL);
}
}
@ -179,7 +179,7 @@ HRESULT SmartUpdateJars()
dwCurrentArchive = 0;
dwTotalArchives = (dwTotalArchives * 2) + 1;
bBarberBar = FALSE;
siCObject = SiCNodeGetObject(dwIndex0, TRUE);
siCObject = SiCNodeGetObject(dwIndex0, TRUE, AC_ALL);
while(siCObject)
{
/* launch smartupdate engine for earch jar to be installed */
@ -250,7 +250,7 @@ HRESULT SmartUpdateJars()
}
++dwIndex0;
siCObject = SiCNodeGetObject(dwIndex0, TRUE);
siCObject = SiCNodeGetObject(dwIndex0, TRUE, AC_ALL);
}
pfnXpiExit();

Просмотреть файл

@ -5,11 +5,6 @@
#include "winresrc.h"
#ifdef IDC_STATIC
#undef IDC_STATIC
#endif
#define IDC_STATIC (-1)
#define IDS_ERROR_DIALOG_CREATE 1
#define IDS_ERROR_FAILED 2
#define IDS_ERROR_FILE_NOT_FOUND 3
@ -64,7 +59,6 @@
#define IDC_CHECK2 1023
#define IDC_LIST2 1023
#define IDC_LIST 1023
#define WINVER 0x400
#define IDC_CHECK3 1024
#define IDC_EDIT_LICENSE 1024
#define IDC_CHECK0 1025
@ -91,6 +85,7 @@
#define IDC_BUTTON1 1055
#define IDC_README 1055
#define IDC_DOWNLOAD_SIZE 1058
#define IDC_SITE_SELECTOR 1059
#define DLG_WELCOME 2001
#define DLG_LICENSE 2002
#define DLG_SETUP_TYPE 2003
@ -102,8 +97,11 @@
#define DLG_START_INSTALL 2008
#define DLG_EXTRACTING 2009
#define DLG_RESTART 10206
#define DLG_SITE_SELECTOR 10207
#define DLG_SELECT_ADDITIONAL_COMPONENTS 10208
#define IDB_BOX_CHECKED 10304
#define IDB_BOX_UNCHECKED 10306
#define IDB_BOX_CHECKED_DISABLED 10307
#define IDC_RADIO_TYPICAL 11007
#define IDC_RADIO_ST0 11007
#define IDC_RADIO_CUSTOM 11008
@ -118,6 +116,8 @@
#define IDS_MSG_CREATE_DIRECTORY 11015
#define IDS_STR_CREATE_DIRECTORY 11016
#define IDS_ERROR_PROGRAM_FOLDER_NAME 11017
#define IDS_CB_DEFAULT 11018
#define IDC_STATIC -1
// Next default values for new objects
//
@ -126,7 +126,7 @@
#define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 112
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1059
#define _APS_NEXT_CONTROL_VALUE 1061
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

Просмотреть файл

@ -1,5 +1,6 @@
//Microsoft Developer Studio generated resource script.
//
#define WINVER 0x400
#include "setuprsc.h"
@ -145,15 +146,15 @@ BEGIN
WS_EX_STATICEDGE
END
DLG_PROGRAM_FOLDER DIALOG DISCARDABLE 51, 56, 316, 205
DLG_PROGRAM_FOLDER DIALOGEX 51, 56, 316, 205
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Sans Serif"
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
EDITTEXT IDC_EDIT_PROGRAM_FOLDER,101,64,204,12,ES_AUTOHSCROLL
LISTBOX IDC_LIST,101,94,204,77,LBS_SORT | LBS_NOINTEGRALHEIGHT |
WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
PUSHBUTTON "< &Back",IDWIZBACK,134,186,53,14
DEFPUSHBUTTON "&Install",IDWIZNEXT,188,186,53,14
DEFPUSHBUTTON "&Next",IDWIZNEXT,188,186,53,14
PUSHBUTTON "&Cancel",IDCANCEL,252,186,53,14
LTEXT "",IDC_MESSAGE0,101,11,204,33,NOT WS_GROUP
LTEXT "&Program Folder:",IDC_STATIC,101,54,105,8
@ -247,6 +248,49 @@ BEGIN
CONTROL "",IDC_GAUGE_ARCHIVE,"GaugeArchive",0x0,9,21,175,11
END
DLG_SITE_SELECTOR DIALOGEX 51, 56, 315, 205
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
DEFPUSHBUTTON "&Install",IDWIZNEXT,188,186,53,14
PUSHBUTTON "&Cancel",IDCANCEL,252,186,53,14
COMBOBOX IDC_SITE_SELECTOR,101,49,198,124,CBS_DROPDOWNLIST |
CBS_SORT | CBS_NOINTEGRALHEIGHT | WS_VSCROLL |
WS_TABSTOP
PUSHBUTTON "< &Back",IDWIZBACK,134,186,53,14
LTEXT "Select the region you wish to download from, or leave it on Default for Setup to automatically determine the best place to download from releative to where you are.",
IDC_MESSAGE0,101,11,204,33,NOT WS_GROUP
CONTROL 108,-1,"Static",SS_BITMAP,11,11,80,160,WS_EX_CLIENTEDGE
CONTROL "",-1,"Static",SS_ETCHEDHORZ,11,179,295,1,
WS_EX_STATICEDGE
END
DLG_SELECT_ADDITIONAL_COMPONENTS DIALOGEX 51, 56, 316, 205
STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Sans Serif", 0, 0, 0x1
BEGIN
PUSHBUTTON "< &Back",IDWIZBACK,134,186,53,14
DEFPUSHBUTTON "&Next >",IDWIZNEXT,188,186,53,14
PUSHBUTTON "&Cancel",IDCANCEL,252,186,53,14
LTEXT "",IDC_MESSAGE0,101,10,204,19,NOT WS_GROUP
LTEXT "&Additional Components",IDC_STATIC,101,32,125,8
GROUPBOX "Description",IDC_STATIC,101,115,204,22
LTEXT "",IDC_STATIC_DESCRIPTION,106,124,195,8
GROUPBOX "",IDC_STATIC,101,140,204,33
LTEXT "",IDC_DOWNLOAD_SIZE,105,160,92,8,NOT WS_GROUP
LTEXT "",IDC_SPACE_AVAILABLE,206,160,94,8,NOT WS_GROUP
CONTROL 108,IDC_STATIC,"Static",SS_BITMAP,11,11,83,162,
WS_EX_CLIENTEDGE
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,11,179,295,1,
WS_EX_STATICEDGE
LISTBOX IDC_LIST_COMPONENTS,101,42,204,67,LBS_OWNERDRAWFIXED |
LBS_HASSTRINGS | LBS_USETABSTOPS | LBS_NOINTEGRALHEIGHT |
WS_VSCROLL | WS_HSCROLL | WS_GROUP | WS_TABSTOP
LTEXT "",IDC_STATIC,241,32,63,8,0,WS_EX_RIGHT
LTEXT "Total download size:",IDC_STATIC,105,148,92,9
LTEXT "Space Available:",IDC_STATIC,206,148,94,9
END
/////////////////////////////////////////////////////////////////////////////
//
@ -265,6 +309,7 @@ IDI_SETUP ICON DISCARDABLE "setup.ico"
IDB_BOX_UNCHECKED BITMAP FIXED IMPURE "box_unch.bmp"
IDB_BOX_CHECKED BITMAP FIXED IMPURE "box_chec.bmp"
IDB_BITMAP_WELCOME BITMAP DISCARDABLE "bitmap1.bmp"
IDB_BOX_CHECKED_DISABLED BITMAP FIXED IMPURE "box_ch_d.bmp"
/////////////////////////////////////////////////////////////////////////////
//
@ -338,6 +383,7 @@ BEGIN
"The following directory does not exist:%sWould you like to create it?"
IDS_STR_CREATE_DIRECTORY "Create Directory?"
IDS_ERROR_PROGRAM_FOLDER_NAME "Invalid program folder name entered."
IDS_CB_DEFAULT "Default"
END
#endif // English (U.S.) resources