1*f6dc9357SAndroid Build Coastguard Worker // MessagesDialog.cpp
2*f6dc9357SAndroid Build Coastguard Worker
3*f6dc9357SAndroid Build Coastguard Worker #include "StdAfx.h"
4*f6dc9357SAndroid Build Coastguard Worker
5*f6dc9357SAndroid Build Coastguard Worker #include "../../../Common/IntToString.h"
6*f6dc9357SAndroid Build Coastguard Worker
7*f6dc9357SAndroid Build Coastguard Worker #include "../../../Windows/ResourceString.h"
8*f6dc9357SAndroid Build Coastguard Worker
9*f6dc9357SAndroid Build Coastguard Worker #include "MessagesDialog.h"
10*f6dc9357SAndroid Build Coastguard Worker
11*f6dc9357SAndroid Build Coastguard Worker #include "LangUtils.h"
12*f6dc9357SAndroid Build Coastguard Worker
13*f6dc9357SAndroid Build Coastguard Worker #include "ProgressDialog2Res.h"
14*f6dc9357SAndroid Build Coastguard Worker
15*f6dc9357SAndroid Build Coastguard Worker using namespace NWindows;
16*f6dc9357SAndroid Build Coastguard Worker
AddMessageDirect(LPCWSTR message)17*f6dc9357SAndroid Build Coastguard Worker void CMessagesDialog::AddMessageDirect(LPCWSTR message)
18*f6dc9357SAndroid Build Coastguard Worker {
19*f6dc9357SAndroid Build Coastguard Worker const unsigned i = (unsigned)_messageList.GetItemCount();
20*f6dc9357SAndroid Build Coastguard Worker wchar_t sz[16];
21*f6dc9357SAndroid Build Coastguard Worker ConvertUInt32ToString(i, sz);
22*f6dc9357SAndroid Build Coastguard Worker _messageList.InsertItem(i, sz);
23*f6dc9357SAndroid Build Coastguard Worker _messageList.SetSubItem(i, 1, message);
24*f6dc9357SAndroid Build Coastguard Worker }
25*f6dc9357SAndroid Build Coastguard Worker
AddMessage(LPCWSTR message)26*f6dc9357SAndroid Build Coastguard Worker void CMessagesDialog::AddMessage(LPCWSTR message)
27*f6dc9357SAndroid Build Coastguard Worker {
28*f6dc9357SAndroid Build Coastguard Worker UString s = message;
29*f6dc9357SAndroid Build Coastguard Worker while (!s.IsEmpty())
30*f6dc9357SAndroid Build Coastguard Worker {
31*f6dc9357SAndroid Build Coastguard Worker const int pos = s.Find(L'\n');
32*f6dc9357SAndroid Build Coastguard Worker if (pos < 0)
33*f6dc9357SAndroid Build Coastguard Worker break;
34*f6dc9357SAndroid Build Coastguard Worker AddMessageDirect(s.Left(pos));
35*f6dc9357SAndroid Build Coastguard Worker s.DeleteFrontal((unsigned)pos + 1);
36*f6dc9357SAndroid Build Coastguard Worker }
37*f6dc9357SAndroid Build Coastguard Worker AddMessageDirect(s);
38*f6dc9357SAndroid Build Coastguard Worker }
39*f6dc9357SAndroid Build Coastguard Worker
OnInit()40*f6dc9357SAndroid Build Coastguard Worker bool CMessagesDialog::OnInit()
41*f6dc9357SAndroid Build Coastguard Worker {
42*f6dc9357SAndroid Build Coastguard Worker #ifdef Z7_LANG
43*f6dc9357SAndroid Build Coastguard Worker LangSetWindowText(*this, IDD_MESSAGES);
44*f6dc9357SAndroid Build Coastguard Worker LangSetDlgItems(*this, NULL, 0);
45*f6dc9357SAndroid Build Coastguard Worker SetItemText(IDOK, LangString(IDS_CLOSE));
46*f6dc9357SAndroid Build Coastguard Worker #endif
47*f6dc9357SAndroid Build Coastguard Worker _messageList.Attach(GetItem(IDL_MESSAGE));
48*f6dc9357SAndroid Build Coastguard Worker _messageList.SetUnicodeFormat();
49*f6dc9357SAndroid Build Coastguard Worker
50*f6dc9357SAndroid Build Coastguard Worker _messageList.InsertColumn(0, L"", 30);
51*f6dc9357SAndroid Build Coastguard Worker _messageList.InsertColumn(1, LangString(IDS_MESSAGE), 600);
52*f6dc9357SAndroid Build Coastguard Worker
53*f6dc9357SAndroid Build Coastguard Worker FOR_VECTOR (i, *Messages)
54*f6dc9357SAndroid Build Coastguard Worker AddMessage((*Messages)[i]);
55*f6dc9357SAndroid Build Coastguard Worker
56*f6dc9357SAndroid Build Coastguard Worker _messageList.SetColumnWidthAuto(0);
57*f6dc9357SAndroid Build Coastguard Worker _messageList.SetColumnWidthAuto(1);
58*f6dc9357SAndroid Build Coastguard Worker NormalizeSize();
59*f6dc9357SAndroid Build Coastguard Worker return CModalDialog::OnInit();
60*f6dc9357SAndroid Build Coastguard Worker }
61*f6dc9357SAndroid Build Coastguard Worker
OnSize(WPARAM,int xSize,int ySize)62*f6dc9357SAndroid Build Coastguard Worker bool CMessagesDialog::OnSize(WPARAM /* wParam */, int xSize, int ySize)
63*f6dc9357SAndroid Build Coastguard Worker {
64*f6dc9357SAndroid Build Coastguard Worker int mx, my;
65*f6dc9357SAndroid Build Coastguard Worker GetMargins(8, mx, my);
66*f6dc9357SAndroid Build Coastguard Worker int bx, by;
67*f6dc9357SAndroid Build Coastguard Worker GetItemSizes(IDOK, bx, by);
68*f6dc9357SAndroid Build Coastguard Worker int y = ySize - my - by;
69*f6dc9357SAndroid Build Coastguard Worker int x = xSize - mx - bx;
70*f6dc9357SAndroid Build Coastguard Worker
71*f6dc9357SAndroid Build Coastguard Worker InvalidateRect(NULL);
72*f6dc9357SAndroid Build Coastguard Worker
73*f6dc9357SAndroid Build Coastguard Worker MoveItem(IDOK, x, y, bx, by);
74*f6dc9357SAndroid Build Coastguard Worker _messageList.Move(mx, my, xSize - mx * 2, y - my * 2);
75*f6dc9357SAndroid Build Coastguard Worker return false;
76*f6dc9357SAndroid Build Coastguard Worker }
77