Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

173 lines
3.9 KiB

#include "headers.hxx"
#include "UpdatesRequiredPage.hpp"
#include "resource.h"
#include "common.hpp"
#include "AnalisysResults.hpp"
UpdatesRequiredPage::UpdatesRequiredPage
(
const String& reportName_,
AnalisysResults &results_
)
:
reportName(reportName_),
results(results_),
WizardPage
(
IDD_UPDATES_REQUIRED,
IDS_UPDATES_REQUIRED_PAGE_TITLE,
IDS_UPDATES_REQUIRED_PAGE_SUBTITLE,
true
)
{
LOG_CTOR(UpdatesRequiredPage);
}
UpdatesRequiredPage::~UpdatesRequiredPage()
{
LOG_DTOR(UpdatesRequiredPage);
}
// WizardPage overrides
bool
UpdatesRequiredPage::OnSetActive()
{
LOG_FUNCTION(UpdatesRequiredPage::OnSetActive);
Win::PropSheet_SetWizButtons(Win::GetParent(hwnd),
PSWIZB_NEXT | PSWIZB_BACK);
return true;
}
bool
UpdatesRequiredPage::OnCommand(
HWND /*windowFrom*/,
unsigned controlIdFrom,
unsigned code
)
{
LOG_FUNCTION(UpdatesRequiredPage::OnCommand);
switch (controlIdFrom)
{
case IDC_VIEW_DETAILS:
{
if (code == BN_CLICKED)
{
ShowReport();
}
}
}
return true;
}
bool
UpdatesRequiredPage::OnWizBack()
{
LOG_FUNCTION(UpdatesRequiredPage::OnWizBack);
GetWizard().SetNextPageID(hwnd,IDD_ANALISYS);
return true;
}
void
UpdatesRequiredPage::OnInit()
{
LOG_FUNCTION(UpdatesRequiredPage::OnInit);
long created = results.createW2KObjects.size() +
results.createXPObjects.size();
long updated = results.objectActions.size();
long containers = results.createContainers.size();
String sCreated,sUpdated;
if( containers==0)
{
sCreated = String::format(
String::load(IDS_NUMBER_FORMAT).c_str(),
created,
String::load(IDS_OBJECTS).c_str()
);
}
else
{
sCreated = String::format(
String::load(IDS_CREATED_FORMAT).c_str(),
created,
String::load(IDS_OBJECTS).c_str(),
String::load(IDS_AND).c_str(),
containers,
String::load(IDS_CONTAINERS).c_str()
);
}
sUpdated = String::format(
String::load(IDS_NUMBER_FORMAT).c_str(),
updated,
String::load(IDS_VALUES).c_str()
);
Win::SetDlgItemText( hwnd,IDC_CREATE_OBJECTS, sCreated);
Win::SetDlgItemText( hwnd,IDC_UPDATE_OBJECTS, sUpdated);
HFONT
bulletFont = CreateFont(
0,
0,
0,
0,
FW_NORMAL,
0,
0,
0,
SYMBOL_CHARSET,
OUT_CHARACTER_PRECIS,
CLIP_CHARACTER_PRECIS,
PROOF_QUALITY,
VARIABLE_PITCH|FF_DONTCARE,
L"Marlett");
if (bulletFont)
{
Win::SetDlgItemText(hwnd,IDC_BULLET1,L"h");
Win::SetDlgItemText(hwnd,IDC_BULLET2,L"h");
Win::SetWindowFont(Win::GetDlgItem(hwnd, IDC_BULLET1), bulletFont, true);
Win::SetWindowFont(Win::GetDlgItem(hwnd, IDC_BULLET2), bulletFont, true);
}
};
// This function is void because if we cannot show
// the report, this is not a fatal error
void
UpdatesRequiredPage::ShowReport()
{
LOG_FUNCTION(UpdatesRequiredPage::ShowReport);
HRESULT hr=S_OK;
do
{
hr=Notepad(reportName);
BREAK_ON_FAILED_HRESULT(hr);
} while(0);
if (FAILED(hr))
{
ShowError(hr,error);
}
LOG_HRESULT(hr);
}