xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/FileManager/AboutDialog.cpp (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // AboutDialog.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 "../../../../C/CpuArch.h"
6*f6dc9357SAndroid Build Coastguard Worker 
7*f6dc9357SAndroid Build Coastguard Worker #include "../../MyVersion.h"
8*f6dc9357SAndroid Build Coastguard Worker 
9*f6dc9357SAndroid Build Coastguard Worker #include "../Common/LoadCodecs.h"
10*f6dc9357SAndroid Build Coastguard Worker 
11*f6dc9357SAndroid Build Coastguard Worker #include "AboutDialog.h"
12*f6dc9357SAndroid Build Coastguard Worker #include "PropertyNameRes.h"
13*f6dc9357SAndroid Build Coastguard Worker 
14*f6dc9357SAndroid Build Coastguard Worker #include "HelpUtils.h"
15*f6dc9357SAndroid Build Coastguard Worker #include "LangUtils.h"
16*f6dc9357SAndroid Build Coastguard Worker 
17*f6dc9357SAndroid Build Coastguard Worker #ifdef Z7_LANG
18*f6dc9357SAndroid Build Coastguard Worker static const UInt32 kLangIDs[] =
19*f6dc9357SAndroid Build Coastguard Worker {
20*f6dc9357SAndroid Build Coastguard Worker   IDT_ABOUT_INFO
21*f6dc9357SAndroid Build Coastguard Worker };
22*f6dc9357SAndroid Build Coastguard Worker #endif
23*f6dc9357SAndroid Build Coastguard Worker 
24*f6dc9357SAndroid Build Coastguard Worker #define kHomePageURL TEXT("https://www.7-zip.org/")
25*f6dc9357SAndroid Build Coastguard Worker #define kHelpTopic "start.htm"
26*f6dc9357SAndroid Build Coastguard Worker 
27*f6dc9357SAndroid Build Coastguard Worker #define LLL_(quote) L##quote
28*f6dc9357SAndroid Build Coastguard Worker #define LLL(quote) LLL_(quote)
29*f6dc9357SAndroid Build Coastguard Worker 
30*f6dc9357SAndroid Build Coastguard Worker extern CCodecs *g_CodecsObj;
31*f6dc9357SAndroid Build Coastguard Worker 
OnInit()32*f6dc9357SAndroid Build Coastguard Worker bool CAboutDialog::OnInit()
33*f6dc9357SAndroid Build Coastguard Worker {
34*f6dc9357SAndroid Build Coastguard Worker   #ifdef Z7_EXTERNAL_CODECS
35*f6dc9357SAndroid Build Coastguard Worker   if (g_CodecsObj)
36*f6dc9357SAndroid Build Coastguard Worker   {
37*f6dc9357SAndroid Build Coastguard Worker     UString s;
38*f6dc9357SAndroid Build Coastguard Worker     g_CodecsObj->GetCodecsErrorMessage(s);
39*f6dc9357SAndroid Build Coastguard Worker     if (!s.IsEmpty())
40*f6dc9357SAndroid Build Coastguard Worker       MessageBoxW(GetParent(), s, L"7-Zip", MB_ICONERROR);
41*f6dc9357SAndroid Build Coastguard Worker   }
42*f6dc9357SAndroid Build Coastguard Worker   #endif
43*f6dc9357SAndroid Build Coastguard Worker 
44*f6dc9357SAndroid Build Coastguard Worker   #ifdef Z7_LANG
45*f6dc9357SAndroid Build Coastguard Worker   LangSetWindowText(*this, IDD_ABOUT);
46*f6dc9357SAndroid Build Coastguard Worker   LangSetDlgItems(*this, kLangIDs, Z7_ARRAY_SIZE(kLangIDs));
47*f6dc9357SAndroid Build Coastguard Worker   #endif
48*f6dc9357SAndroid Build Coastguard Worker   SetItemText(IDT_ABOUT_VERSION, UString("7-Zip " MY_VERSION_CPU));
49*f6dc9357SAndroid Build Coastguard Worker   SetItemText(IDT_ABOUT_DATE, LLL(MY_DATE));
50*f6dc9357SAndroid Build Coastguard Worker 
51*f6dc9357SAndroid Build Coastguard Worker   NormalizePosition();
52*f6dc9357SAndroid Build Coastguard Worker   return CModalDialog::OnInit();
53*f6dc9357SAndroid Build Coastguard Worker }
54*f6dc9357SAndroid Build Coastguard Worker 
OnHelp()55*f6dc9357SAndroid Build Coastguard Worker void CAboutDialog::OnHelp()
56*f6dc9357SAndroid Build Coastguard Worker {
57*f6dc9357SAndroid Build Coastguard Worker   ShowHelpWindow(kHelpTopic);
58*f6dc9357SAndroid Build Coastguard Worker }
59*f6dc9357SAndroid Build Coastguard Worker 
OnButtonClicked(unsigned buttonID,HWND buttonHWND)60*f6dc9357SAndroid Build Coastguard Worker bool CAboutDialog::OnButtonClicked(unsigned buttonID, HWND buttonHWND)
61*f6dc9357SAndroid Build Coastguard Worker {
62*f6dc9357SAndroid Build Coastguard Worker   LPCTSTR url;
63*f6dc9357SAndroid Build Coastguard Worker   switch (buttonID)
64*f6dc9357SAndroid Build Coastguard Worker   {
65*f6dc9357SAndroid Build Coastguard Worker     case IDB_ABOUT_HOMEPAGE: url = kHomePageURL; break;
66*f6dc9357SAndroid Build Coastguard Worker     default:
67*f6dc9357SAndroid Build Coastguard Worker       return CModalDialog::OnButtonClicked(buttonID, buttonHWND);
68*f6dc9357SAndroid Build Coastguard Worker   }
69*f6dc9357SAndroid Build Coastguard Worker 
70*f6dc9357SAndroid Build Coastguard Worker   #ifdef UNDER_CE
71*f6dc9357SAndroid Build Coastguard Worker   SHELLEXECUTEINFO s;
72*f6dc9357SAndroid Build Coastguard Worker   memset(&s, 0, sizeof(s));
73*f6dc9357SAndroid Build Coastguard Worker   s.cbSize = sizeof(s);
74*f6dc9357SAndroid Build Coastguard Worker   s.lpFile = url;
75*f6dc9357SAndroid Build Coastguard Worker   ::ShellExecuteEx(&s);
76*f6dc9357SAndroid Build Coastguard Worker   #else
77*f6dc9357SAndroid Build Coastguard Worker   ::ShellExecute(NULL, NULL, url, NULL, NULL, SW_SHOWNORMAL);
78*f6dc9357SAndroid Build Coastguard Worker   #endif
79*f6dc9357SAndroid Build Coastguard Worker 
80*f6dc9357SAndroid Build Coastguard Worker   return true;
81*f6dc9357SAndroid Build Coastguard Worker }
82